Installation¶
Lancez AKKO sur votre machine locale en moins de 10 minutes avec Helm et k3d.
Prérequis¶
Avant de commencer, assurez-vous d'avoir les outils suivants installés :
| Outil | Version minimum | Fonction |
|---|---|---|
| Docker Desktop | 4.30+ | Runtime de conteneurs (ou containerd sur Linux) |
| kubectl | 1.28+ | CLI Kubernetes |
| Helm | 3.14+ | Gestionnaire de packages pour Kubernetes |
| k3d | 5.6+ | Kubernetes local léger (encapsule k3s) |
| Git | 2.30+ | Cloner le dépôt |
| OS | -- | macOS (ARM ou Intel) ou Linux |
Tout installer sur macOS
Sur Linux, suivez les instructions d'installation officielles de chaque outil ou utilisez le gestionnaire de paquets de votre distribution.
Configuration système requise¶
| Ressource | Minimum | Recommandé |
|---|---|---|
| RAM | 8 Go | 16 Go (requis pour le profil governance) |
| Mémoire Docker | 8 Go | 16 Go |
| Disque | 20 Go | 40 Go (images + volumes persistants) |
| CPU | 4 cœurs | 8 cœurs |
Mémoire Docker Desktop
L'allocation mémoire par défaut de Docker Desktop (2 Go) n'est pas suffisante. Allez dans Docker Desktop > Settings > Resources et définissez la mémoire à au moins 8 Go pour les services de base, ou 16 Go si vous prévoyez d'activer le profil governance (OpenMetadata + OpenSearch).
Installation rapide¶
Deux commandes pour passer de zéro à une plateforme de données souveraine pleinement opérationnelle :
1. Cloner le dépôt¶
2. Déployer AKKO¶
Le script de déploiement crée le cluster k3d, construit les 12 images personnalisées, les importe, génère les secrets, et exécute l'installation Helm complète avec tous les fichiers de valeurs requis (values-dev.yaml, values-domain.yaml, values-dev-secrets.yaml) et le realm Keycloak.
Le premier déploiement prend du temps
Le tout premier lancement télécharge environ 15 Go d'images de conteneurs et construit 12 images personnalisées. Les déploiements suivants sont bien plus rapides puisque les images sont en cache. Comptez 10 à 15 minutes au premier lancement selon votre connexion internet.
Vérifier l'installation¶
Vérifier l'état des pods¶
Tous les pods devraient atteindre le statut Running ou Completed dans les 2 à 3 minutes. Vous devriez voir 25+ pods.
Ouvrir le cockpit¶
Naviguez vers :
Le cockpit est le portail central. Il affiche des cartes d'état de santé pour chaque service. Toutes les cartes devraient passer au vert dans les 1 à 2 minutes suivant le démarrage.
URLs des services
Tous les services sont accessibles via des sous-domaines *.akko.local via l'ingress Traefik :
| Service | URL |
|---|---|
| Cockpit | https://akko.local |
| JupyterHub | https://lab.akko.local |
| Superset | https://bi.akko.local |
| Airflow | https://orchestrator.akko.local |
| Trino | https://federation.akko.local |
| Interface Spark | https://compute.akko.local |
| Console stockage objet | https://storage.akko.local |
| Dashboards | https://metrics.akko.local |
| Prometheus | https://prometheus.akko.local |
| Ollama | https://ollama.akko.local |
| Polaris | https://polaris.akko.local |
| Keycloak | https://identity.akko.local |
| Traefik | https://traefik.akko.local |
| AKKO Docs | https://docs.akko.local |
| OpenMetadata | https://catalog.akko.local (governance) |
Configuration de domaine personnalisé¶
Par défaut, AKKO utilise *.akko.local. Pour utiliser un domaine personnalisé, exécutez le script de génération de domaine :
Cela génère values-domain.yaml et realm-domain.json avec toutes les URLs mises à jour. Puis redéployez :
Toutes les règles d'ingress, les URIs de redirection Keycloak, et les URLs de services seront automatiquement mises à jour vers *.monentreprise.internal.
Résolution DNS
Pour le développement local, ajoutez des entrées dans /etc/hosts :
echo '127.0.0.1 akko.local cockpit.akko.local identity.akko.local lab.akko.local bi.akko.local orchestrator.akko.local federation.akko.local compute.akko.local minio.akko.local polaris.akko.local grafana.akko.local prometheus.akko.local catalog.akko.local docs.akko.local experiments.akko.local ollama.akko.local traefik.akko.local' | sudo tee -a /etc/hosts
Alternativement, utilisez un outil DNS wildcard comme dnsmasq pour résoudre tous les sous-domaines *.akko.local.
Certificats TLS¶
Auto-signé (par défaut)¶
AKKO génère un certificat auto-signé wildcard pour *.akko.local lors du déploiement. Ceci convient au développement local et aux environnements isolés.
Apporter votre propre certificat¶
Pour utiliser votre propre certificat TLS, créez un Secret Kubernetes et référencez-le dans vos valeurs :
kubectl create secret tls akko-tls \
--cert=chemin/vers/tls.crt \
--key=chemin/vers/tls.key \
-n akko
cert-manager (production)¶
Pour les déploiements en production avec des certificats Let's Encrypt automatiques, installez cert-manager et configurez un ClusterIssuer. Consultez le guide Déploiement Kubernetes pour des instructions détaillées.
Safari et les certificats auto-signés¶
Comme AKKO utilise des certificats TLS auto-signés pour le développement local, Safari (et les autres navigateurs) afficheront un avertissement de sécurité lors de la première visite.
Approuver le certificat sur macOS
Pour éviter les avertissements répétés dans Safari :
- Exportez le certificat depuis le cluster :
- Ouvrez Trousseau d'accès (Keychain Access)
- Glissez
akko.crtdans le trousseau Système - Double-cliquez sur le certificat importé
- Développez Confiance et réglez Lors de l'utilisation de ce certificat sur Toujours approuver
- Fermez et redémarrez Safari
Dans Chrome ou Firefox, vous pouvez simplement cliquer sur « Avancé » puis « Continuer » sur chaque
domaine *.akko.local.
Profil Governance¶
Pour activer OpenMetadata (catalogue de données) et OpenSearch, mettez à jour avec les flags governance :
helm upgrade akko helm/akko/ \
-f helm/examples/values-dev.yaml \
--set-file akko-keycloak.realm.data=helm/examples/realm-akko-k3d.json \
--set openmetadata.enabled=true \
--set akko-opensearch.enabled=true
Le profil governance nécessite 16 Go+
OpenMetadata Server (~1 Go) + OpenSearch (~512 Mo heap + mémoire native) provoqueront des redémarrages OOM si Docker Desktop est configuré avec moins de 16 Go de RAM.
Désinstallation¶
Supprimer le release AKKO :
Pour supprimer également toutes les données persistantes (réinitialisation complète) :
Pour supprimer entièrement le cluster k3d :
Problèmes courants¶
Conflits de port sur 80 ou 443
k3d mappe les ports 80 et 443 du cluster vers votre hôte. Si un autre processus (Apache, Nginx, un autre cluster k3d) utilise ces ports, la création du cluster échouera. Vérifiez avec :
Arrêtez le processus en conflit avant d'exécuter k3d-create.sh.
Pods bloqués en Pending ou CrashLoopBackOff
Vérifiez les événements du pod pour plus de détails :
Causes courantes : mémoire insuffisante (augmentez l'allocation Docker Desktop),
erreurs de téléchargement d'images (relancez build-images.sh), ou PVCs manquants.
Erreurs mémoire Docker ou OOM kills
Si des services redémarrent en boucle, vérifiez l'allocation mémoire de Docker Desktop. Les workers Spark et OpenMetadata sont gourmands en mémoire. Augmentez à 8 Go minimum (16 Go pour le profil governance).
kubectl ne peut pas se connecter au cluster
Assurez-vous que votre kubeconfig pointe vers le cluster k3d :
Si le cluster a été supprimé, recréez-le avec k3d-create.sh.
Prochaines étapes¶
- Déploiement Kubernetes -- Configuration Helm avancée, tuning production, et configurations multi-nœuds
- Architecture -- Comment les services se connectent