Aller au contenu

Déployer AKKO sur Google GKE

GKE 1.30+ est une cible AKKO supportée. Cluster Standard recommandé en production (Autopilot fonctionne pour le dev mais a des garde-fous de ressources qui peuvent nécessiter des ajustements pour OpenMetadata).

Prérequis

Élément Version
GKE 1.30+ (Standard cluster, 3 × e2-standard-4 minimum)
Persistent Disk CSI activé (défaut)
GCE Ingress ou cert-manager + ingress-nginx
Workload Identity activé à la création du cluster
cert-manager 1.16+ (ou managed certs GCP)
kubectl + CLI gcloud configurés
Helm ≥ 3.14

Installation en une commande

AKKO_DOMAIN=akko.client.example \
AKKO_VERSION=2026.04 \
AKKO_VALUES_EXTRA=helm/examples/values-gke.yaml \
  bash deploy-from-harbor.sh

Spécificités GKE

Stockage

premium-rwo = pd-ssd (RWO, SSD). Pour un bon rapport prix/perf, utiliser standard-rwo (pd-balanced). Filestore pour RWX est dispo mais cher ; non requis par AKKO 2026.04.

Ingress

GKE Ingress (défaut) provisionne un Cloud Load Balancer par Ingress. Pour partager un LB, grouper les routes sous un seul Ingress. Les certificats managés GCP sont supportés :

ingressAnnotations:
  networking.gke.io/managed-certificates: "akko-cert"

Workload Identity

Pour les pods nécessitant des API GCP (Cloud Storage, BigQuery, Vertex AI) :

gcloud iam service-accounts create akko-platform \
  --project <projet>

gcloud iam service-accounts add-iam-policy-binding \
  akko-platform@<projet>.iam.gserviceaccount.com \
  --role roles/iam.workloadIdentityUser \
  --member "serviceAccount:<projet>.svc.id.goog[akko/akko-minio]"

Annoter le SA :

akko-minio:
  serviceAccount:
    annotations:
      iam.gke.io/gcp-service-account: "akko-platform@<projet>.iam.gserviceaccount.com"

Miroir Artifact Registry

gcloud auth configure-docker <région>-docker.pkg.dev
for img in cockpit postgres spark notebook trino ai-service mlflow \
           airflow dbt mcp-trino mcp-openmetadata docs aden \
           catalog-manager; do
  skopeo copy \
    docker://harbor.akko-ai.com/akko/akko-${img}:2026.04 \
    docker://<région>-docker.pkg.dev/<projet>/akko/akko-${img}:2026.04
done

Surcharger global.image.registry: <région>-docker.pkg.dev/<projet>/akko.

Autopilot — limitations

Si vous visez Autopilot : certains sub-charts demandent des champs securityContext qu'Autopilot refuse (privileged, host ports, etc.). AKKO 2026.04 est restricted-PSS-safe partout sauf directory service + Dashboards (tous deux désactivés par défaut sur les overlays cloud — ADR-020 les remplace par des alternatives Apache 2.0).

Vérifier

kubectl -n akko get pods
kubectl -n akko get ingress
gcloud compute addresses list --global
kubectl -n akko exec svc/akko-trino -c trino -- trino --execute "SHOW CATALOGS"

Dépannage

Symptôme Cause Correctif
Adresse Ingress vide > 5 min Managed cert en cours de provisioning kubectl describe managedcertificate -n akko
PVC Pending Quota PD atteint dans la région Console GCP → IAM → Quotas
Pod Unauthorized sur GCS Binding Workload Identity manquant Re-lancer le add-iam-policy-binding pour le SA
Pull Artifact Registry 403 Le SA du node GKE manque roles/artifactregistry.reader gcloud iam service-accounts add-iam-policy-binding <node-sa>