Aller au contenu
Conteneurs & Orchestration high

Installer CAST AI Anywhere

15 min de lecture

logo cast AI

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
MéthodeUsageAvantage
Console (recommandé)Premier déploiement, découverteScript généré, tout-en-un
Helm manuelProduction, Infrastructure as CodeContrôle des versions et values
APICI/CD, multi-clustersAutomatisation complète
OutilVersion minimumVérification
kubectl1.18+kubectl version --client
helm3.14.0+ (si Helm manuel)helm version --short
curl-curl --version
  • 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
RégionURL
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

CAST AI collecte les métriques CPU/mémoire via metrics-server. Vérifiez qu’il est installé :

Fenêtre de terminal
kubectl get deployment metrics-server -n kube-system
Fenêtre de terminal
kubectl get nodes

Tous les nœuds doivent être en état Ready.

Quelle que soit la méthode, vous aurez besoin de ces informations (générées depuis la console) :

VariableDescriptionOù la trouver
CASTAI_API_KEYClé d’authentification APIConsole → API Access Keys
CASTAI_CLUSTER_IDIdentifiant unique du clusterConsole → Cluster → Settings
CASTAI_API_URLEndpoint API (US ou EU)https://api.cast.ai ou https://api.eu.cast.ai

C’est la méthode la plus simple pour un premier déploiement. CAST AI génère un script personnalisé pour votre cluster.

  1. Connectez-vous à console.cast.ai

  2. Cliquez sur “Connect cluster” en haut à droite

  3. Sélectionnez “Anywhere” comme provider

    Cette option fonctionne pour tous les clusters non-AWS/GCP/Azure (OKS, OVH, Scaleway, on-prem, bare-metal).

  4. Nommez votre cluster (exemple : production-oks, demo-cluster)

  5. 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
  6. Copiez et exécutez le script

console onboarding

Selon la documentation Anywhere, le script installe ces composants dans le namespace castai-agent :

ComposantRôle
castai-agentCollecte les métriques, synchronise avec l’API
cluster-controllerApplique les recommandations, gère les CRDs
workload-autoscalerCalcule les recommandations VPA
workload-autoscaler-exporterExpose les métriques Prometheus
evictorConsolidation des pods (optionnel)

Pour un contrôle complet des versions et de la configuration, installez chaque composant via Helm.

Fenêtre de terminal
# Récupérez ces valeurs depuis la console CAST AI
export 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.ai
Fenêtre de terminal
helm repo add castai-helm https://castai.github.io/helm-charts
helm repo update castai-helm
Fenêtre de terminal
kubectl create namespace castai-agent

Installez les composants dans cet ordre (dépendances) :

L’agent collecte les métriques et synchronise avec l’API CAST AI :

Fenêtre de terminal
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 5m

Vérification :

Fenêtre de terminal
kubectl get pods -n castai-agent -l app.kubernetes.io/name=castai-agent
ChartObligatoireDescription
castai-agentCollecte métriques
castai-cluster-controllerApplique recommandations
castai-workload-autoscalerGénère recommandations
castai-workload-autoscaler-exporterMétriques Prometheus
castai-evictorConsolidation (optionnel)
castai-pod-mutatorPod Mutations (feature séparée)

Documentation Helm charts


Pour l’automatisation CI/CD ou le déploiement multi-clusters, utilisez l’API CAST AI.

Fenêtre de terminal
# Variables
CASTAI_API_KEY="votre-api-key"
CASTAI_CLUSTER_ID="votre-cluster-id"
CASTAI_API_URL="https://api.cast.ai"
# Récupérer le script d'onboarding
curl -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écuter
less castai-onboarding.sh
# Exécuter
bash castai-onboarding.sh

Pour une approche Infrastructure as Code, CAST AI fournit :

Documentation API Reference


Fenêtre de terminal
kubectl get pods -n castai-agent

Tous les pods doivent être Running :

NAME READY STATUS RESTARTS AGE
castai-agent-xxxxx-xxxxx 2/2 Running 0 5m
castai-cluster-controller-xxxxx-xxxxx 2/2 Running 0 5m
castai-workload-autoscaler-xxxxx-xxxxx 1/1 Running 0 5m
castai-workload-autoscaler-exporter-xxxxx-xxxxx 1/1 Running 0 5m
Fenêtre de terminal
kubectl get crd recommendations.autoscaling.cast.ai
  1. Allez sur console.cast.ai
  2. Votre cluster doit apparaître avec le statut “Connected” (icône verte)
  3. Après quelques minutes, les workloads apparaissent dans Workload Optimization
Fenêtre de terminal
# Toutes les images CAST AI
kubectl get pods -n castai-agent -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[*].image}{"\n"}{end}'

Avant de chercher une erreur spécifique, vérifiez ces points :

VérificationCommandeAttendu
Pods runningkubectl get pods -n castai-agentTous en Running
Logs sans erreurkubectl logs -n castai-agent -l app.kubernetes.io/name=castai-agent --tail=20Pas d’erreurs répétées
CRD présentkubectl get crd recommendations.autoscaling.cast.aiCRD listé
Connectivité APIVoir test ci-dessousConnexion établie

Test de connectivité vers l’API :

Fenêtre de terminal
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.ai

Résultat attendu : 302 (redirect vers la console — confirme que l’API est joignable)

Symptôme : Pods en CrashLoopBackOff

Diagnostic :

Fenêtre de terminal
kubectl logs -n castai-agent -l app.kubernetes.io/name=castai-agent --tail=50

Causes et solutions :

ErreurCauseSolution
invalid API keyClé incorrecte ou expiréeRégénérer depuis la console
connection refusedPas de connectivité réseauVérifier firewall, proxy, DNS
certificate errorProxy HTTPS interceptantConfigurer certificat CA
cluster not foundCLUSTER_ID incorrectVérifier l’ID dans la console

Pour supprimer CAST AI Anywhere :

Fenêtre de terminal
# Supprimer les releases Helm
helm uninstall castai-agent -n castai-agent
helm uninstall castai-cluster-controller -n castai-agent
helm uninstall castai-workload-autoscaler -n castai-agent
helm uninstall castai-workload-autoscaler-exporter -n castai-agent
helm uninstall castai-evictor -n castai-agent 2>/dev/null || true
helm uninstall castai-pod-mutator -n castai-agent 2>/dev/null || true
# Supprimer le namespace
kubectl delete namespace castai-agent
# Supprimer les webhooks orphelins
kubectl delete mutatingwebhookconfigurations -l app.kubernetes.io/managed-by=castai 2>/dev/null || true

  • 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)

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.