
Ce guide vous permet d’installer CAST AI Anywhere sur votre cluster Kubernetes. Vous choisirez parmi trois méthodes selon votre contexte : onboarding console (rapide), Helm manuel (contrôle), ou API (automatisation CI/CD).
Ce que vous apprendrez :
- Vérifier les prérequis (metrics-server, connectivité)
- Choisir la bonne méthode d’installation
- Installer et valider les composants CAST AI
- Diagnostiquer les problèmes courants
Choisir votre méthode d’installation
Section intitulée « Choisir votre méthode d’installation »| Méthode | Usage | Avantage |
|---|---|---|
| Console (recommandé) | Premier déploiement, découverte | Script généré, tout-en-un |
| Helm manuel | Production, Infrastructure as Code | Contrôle des versions et values |
| API | CI/CD, multi-clusters | Automatisation complète |
Prérequis
Section intitulée « Prérequis »Outils requis
Section intitulée « Outils requis »| Outil | Version minimum | Vérification |
|---|---|---|
kubectl | 1.18+ | kubectl version --client |
helm | 3.14.0+ (si Helm manuel) | helm version --short |
curl | - | curl --version |
Accès requis
Section intitulée « Accès requis »- Cluster Kubernetes fonctionnel avec accès cluster-admin
- Connectivité réseau vers l’API CAST AI (port 443)
- Compte CAST AI gratuit sur console.cast.ai
Endpoints API CAST AI
Section intitulée « Endpoints API CAST AI »| Région | URL |
|---|---|
| Global (US) | https://api.cast.ai |
| Europe (EU) | https://api.eu.cast.ai |
Choisissez l’endpoint selon votre région ou vos exigences de résidence des données. Documentation AI Enabler
Vérifier metrics-server
Section intitulée « Vérifier metrics-server »CAST AI collecte les métriques CPU/mémoire via metrics-server. Vérifiez qu’il est installé :
kubectl get deployment metrics-server -n kube-systemVérifier l’accès au cluster
Section intitulée « Vérifier l’accès au cluster »kubectl get nodesTous les nœuds doivent être en état Ready.
Variables d’environnement
Section intitulée « Variables d’environnement »Quelle que soit la méthode, vous aurez besoin de ces informations (générées depuis la console) :
| Variable | Description | Où la trouver |
|---|---|---|
CASTAI_API_KEY | Clé d’authentification API | Console → API Access Keys |
CASTAI_CLUSTER_ID | Identifiant unique du cluster | Console → Cluster → Settings |
CASTAI_API_URL | Endpoint API (US ou EU) | https://api.cast.ai ou https://api.eu.cast.ai |
Méthode 1 : Console (recommandé)
Section intitulée « Méthode 1 : Console (recommandé) »C’est la méthode la plus simple pour un premier déploiement. CAST AI génère un script personnalisé pour votre cluster.
-
Connectez-vous à console.cast.ai
-
Cliquez sur “Connect cluster” en haut à droite
-
Sélectionnez “Anywhere” comme provider
Cette option fonctionne pour tous les clusters non-AWS/GCP/Azure (OKS, OVH, Scaleway, on-prem, bare-metal).
-
Nommez votre cluster (exemple :
production-oks,demo-cluster) -
Cliquez sur “Generate script”
CAST AI génère un script d’onboarding personnalisé contenant :
- Votre
CASTAI_API_KEY - Votre
CASTAI_CLUSTER_ID - Les charts Helm préconfigurés
- Votre
-
Copiez et exécutez le script

Ce que le script installe
Section intitulée « Ce que le script installe »Selon la documentation Anywhere, le script installe ces composants dans le namespace castai-agent :
| Composant | Rôle |
|---|---|
| castai-agent | Collecte les métriques, synchronise avec l’API |
| cluster-controller | Applique les recommandations, gère les CRDs |
| workload-autoscaler | Calcule les recommandations VPA |
| workload-autoscaler-exporter | Expose les métriques Prometheus |
| evictor | Consolidation des pods (optionnel) |
Méthode 2 : Helm manuel
Section intitulée « Méthode 2 : Helm manuel »Pour un contrôle complet des versions et de la configuration, installez chaque composant via Helm.
Préparer les variables
Section intitulée « Préparer les variables »# Récupérez ces valeurs depuis la console CAST AIexport CASTAI_API_KEY="votre-api-key"export CASTAI_CLUSTER_ID="votre-cluster-id"export CASTAI_API_URL="https://api.cast.ai" # ou https://api.eu.cast.aiAjouter le repository Helm
Section intitulée « Ajouter le repository Helm »helm repo add castai-helm https://castai.github.io/helm-chartshelm repo update castai-helmCréer le namespace
Section intitulée « Créer le namespace »kubectl create namespace castai-agentInstaller les composants
Section intitulée « Installer les composants »Installez les composants dans cet ordre (dépendances) :
L’agent collecte les métriques et synchronise avec l’API CAST AI :
helm upgrade --install castai-agent castai-helm/castai-agent \ --namespace castai-agent \ --set apiKey="$CASTAI_API_KEY" \ --set apiURL="$CASTAI_API_URL" \ --set provider=anywhere \ --wait --timeout 5mVérification :
kubectl get pods -n castai-agent -l app.kubernetes.io/name=castai-agentLe cluster-controller applique les recommandations et gère les CRDs :
helm upgrade --install castai-cluster-controller castai-helm/castai-cluster-controller \ --namespace castai-agent \ --set castai.apiKey="$CASTAI_API_KEY" \ --set castai.apiURL="$CASTAI_API_URL" \ --set castai.clusterID="$CASTAI_CLUSTER_ID" \ --wait --timeout 5mVérification :
kubectl get pods -n castai-agent -l app.kubernetes.io/name=castai-cluster-controllerLe workload-autoscaler génère les recommandations. Installez aussi l’exporter :
# Workload Autoscalerhelm upgrade --install castai-workload-autoscaler castai-helm/castai-workload-autoscaler \ --namespace castai-agent \ --set castai.apiKey="$CASTAI_API_KEY" \ --set castai.apiURL="$CASTAI_API_URL" \ --set castai.clusterID="$CASTAI_CLUSTER_ID" \ --wait --timeout 5m
# Workload Autoscaler Exporter (métriques Prometheus)helm upgrade --install castai-workload-autoscaler-exporter castai-helm/castai-workload-autoscaler-exporter \ --namespace castai-agent \ --set castai.apiKey="$CASTAI_API_KEY" \ --set castai.clusterID="$CASTAI_CLUSTER_ID" \ --wait --timeout 5mVérification :
kubectl get pods -n castai-agent -l app.kubernetes.io/name=castai-workload-autoscalerkubectl get pods -n castai-agent -l app.kubernetes.io/name=castai-workload-autoscaler-exporterL’evictor permet la consolidation des pods sur moins de nœuds :
helm upgrade --install castai-evictor castai-helm/castai-evictor \ --namespace castai-agent \ --set castai.apiKey="$CASTAI_API_KEY" \ --set castai.clusterID="$CASTAI_CLUSTER_ID" \ --wait --timeout 5mRécapitulatif des charts
Section intitulée « Récapitulatif des charts »| Chart | Obligatoire | Description |
|---|---|---|
castai-agent | ✅ | Collecte métriques |
castai-cluster-controller | ✅ | Applique recommandations |
castai-workload-autoscaler | ✅ | Génère recommandations |
castai-workload-autoscaler-exporter | ✅ | Métriques Prometheus |
castai-evictor | ❌ | Consolidation (optionnel) |
castai-pod-mutator | ❌ | Pod Mutations (feature séparée) |
Méthode 3 : API (automatisation)
Section intitulée « Méthode 3 : API (automatisation) »Pour l’automatisation CI/CD ou le déploiement multi-clusters, utilisez l’API CAST AI.
Récupérer le script d’onboarding via API
Section intitulée « Récupérer le script d’onboarding via API »# VariablesCASTAI_API_KEY="votre-api-key"CASTAI_CLUSTER_ID="votre-cluster-id"CASTAI_API_URL="https://api.cast.ai"
# Récupérer le script d'onboardingcurl -s "$CASTAI_API_URL/v1/kubernetes/external-clusters/$CASTAI_CLUSTER_ID/onboarding-script" \ -H "X-API-Key: $CASTAI_API_KEY" \ -o castai-onboarding.sh
# Inspecter avant d'exécuterless castai-onboarding.sh
# Exécuterbash castai-onboarding.shIntégration GitOps / Terraform
Section intitulée « Intégration GitOps / Terraform »Pour une approche Infrastructure as Code, CAST AI fournit :
- Terraform provider : terraform-provider-castai
- ArgoCD / Flux : Déployez les charts Helm via GitOps
Validation de l’installation
Section intitulée « Validation de l’installation »Vérifier les pods
Section intitulée « Vérifier les pods »kubectl get pods -n castai-agentTous les pods doivent être Running :
NAME READY STATUS RESTARTS AGEcastai-agent-xxxxx-xxxxx 2/2 Running 0 5mcastai-cluster-controller-xxxxx-xxxxx 2/2 Running 0 5mcastai-workload-autoscaler-xxxxx-xxxxx 1/1 Running 0 5mcastai-workload-autoscaler-exporter-xxxxx-xxxxx 1/1 Running 0 5mVérifier le CRD Recommendation
Section intitulée « Vérifier le CRD Recommendation »kubectl get crd recommendations.autoscaling.cast.aiVérifier dans la console
Section intitulée « Vérifier dans la console »- Allez sur console.cast.ai
- Votre cluster doit apparaître avec le statut “Connected” (icône verte)
- Après quelques minutes, les workloads apparaissent dans Workload Optimization
Vérifier les versions
Section intitulée « Vérifier les versions »# Toutes les images CAST AIkubectl get pods -n castai-agent -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[*].image}{"\n"}{end}'Troubleshooting
Section intitulée « Troubleshooting »Checklist de diagnostic
Section intitulée « Checklist de diagnostic »Avant de chercher une erreur spécifique, vérifiez ces points :
| Vérification | Commande | Attendu |
|---|---|---|
| Pods running | kubectl get pods -n castai-agent | Tous en Running |
| Logs sans erreur | kubectl logs -n castai-agent -l app.kubernetes.io/name=castai-agent --tail=20 | Pas d’erreurs répétées |
| CRD présent | kubectl get crd recommendations.autoscaling.cast.ai | CRD listé |
| Connectivité API | Voir test ci-dessous | Connexion établie |
Test de connectivité vers l’API :
kubectl run test-api --rm --restart=Never --image=curlimages/curl --attach -- \ curl -s -o /dev/null -w "%{http_code}" --connect-timeout 5 https://api.cast.aiRésultat attendu : 302 (redirect vers la console — confirme que l’API est joignable)
Problèmes courants
Section intitulée « Problèmes courants »Symptôme : Pods en CrashLoopBackOff
Diagnostic :
kubectl logs -n castai-agent -l app.kubernetes.io/name=castai-agent --tail=50Causes et solutions :
| Erreur | Cause | Solution |
|---|---|---|
invalid API key | Clé incorrecte ou expirée | Régénérer depuis la console |
connection refused | Pas de connectivité réseau | Vérifier firewall, proxy, DNS |
certificate error | Proxy HTTPS interceptant | Configurer certificat CA |
cluster not found | CLUSTER_ID incorrect | Vérifier l’ID dans la console |
Symptôme : Les pods ne sont pas mutés (pas de nouvelles requests/limits)
Checklist webhook :
-
MutatingWebhookConfiguration présent ?
Fenêtre de terminal kubectl get mutatingwebhookconfigurations | grep castai -
Service du webhook accessible ?
Fenêtre de terminal kubectl get svc -n castai-agent | grep mutatorkubectl get endpoints -n castai-agent | grep mutator -
NetworkPolicies bloquantes ?
Fenêtre de terminal kubectl get networkpolicies -n castai-agent -
Logs du webhook ?
Fenêtre de terminal kubectl logs -n castai-agent -l app.kubernetes.io/name=castai-workload-autoscaler --tail=50
Si le webhook n’est pas accessible depuis l’API server, consultez la documentation réseau de votre CNI (Calico, Cilium, etc.).
Symptôme : Pod castai-agent-cpvpa en erreur
Le Cluster Proportional Vertical Autoscaler ajuste automatiquement les ressources de l’agent selon la taille du cluster. Documentation Hosted components
Diagnostic :
kubectl logs -n castai-agent -l app=castai-agent-cpvpa --tail=20Pour désactiver (si problème persistant) :
Consultez les values du chart castai-agent pour l’option de désactivation :
helm show values castai-helm/castai-agent | grep -i cpvpaOu consultez la documentation troubleshooting composants.
Symptôme : Le cluster n’apparaît pas dans la console
Vérifications :
-
L’agent envoie des données ?
Fenêtre de terminal kubectl logs -n castai-agent -l app.kubernetes.io/name=castai-agent --tail=30 | grep -i "sync\|send\|connect" -
Bon endpoint API ?
Vérifiez que
CASTAI_API_URLcorrespond à votre région (US vs EU). -
Cluster ID correct ?
Fenêtre de terminal kubectl get configmap -n castai-agent castai-agent -o yaml | grep -i cluster
Désinstallation
Section intitulée « Désinstallation »Pour supprimer CAST AI Anywhere :
# Supprimer les releases Helmhelm uninstall castai-agent -n castai-agenthelm uninstall castai-cluster-controller -n castai-agenthelm uninstall castai-workload-autoscaler -n castai-agenthelm uninstall castai-workload-autoscaler-exporter -n castai-agenthelm uninstall castai-evictor -n castai-agent 2>/dev/null || truehelm uninstall castai-pod-mutator -n castai-agent 2>/dev/null || true
# Supprimer le namespacekubectl delete namespace castai-agent
# Supprimer les webhooks orphelinskubectl delete mutatingwebhookconfigurations -l app.kubernetes.io/managed-by=castai 2>/dev/null || trueÀ retenir
Section intitulée « À retenir »- Trois méthodes : Console (simple), Helm (contrôle), API (automatisation)
- Console recommandée pour un premier déploiement : script généré et personnalisé
- Helm manuel : n’oubliez pas le
workload-autoscaler-exporter - metrics-server requis (installé automatiquement par le script console)
- Sécurité : ne pas versionner les clés, inspecter les scripts avant exécution
- Validation : tous les pods
Running+ cluster “Connected” dans la console - 24h+ pour des recommandations fiables (full confidence)
Prochaines étapes
Section intitulée « Prochaines étapes »Ressources
Section intitulée « Ressources »- Getting started with CAST AI Anywhere — Documentation officielle
- Helm charts — Liste des charts disponibles
- Components troubleshooting — Diagnostic des composants
- API Reference — Documentation API