kubectl-ai - Assistant IA pour Kubernetes
kubectl-ai est un assistant alimenté par IA pour Kubernetes (de Google Cloud) qui interprète les demandes en langage naturel et les traduit en opérations kubectl. Il peut expliquer ce qui s’exécute, générer des manifestes, diagnostiquer les pods défaillants et enchaîner les investigations multi-étapes — s’exécutant en tant qu’agent interactif ou commande unique. Il est agnostique du modèle : Gemini, OpenAI, ou un modèle local via Ollama, ce qui compte quand vous préféreriez ne pas envoyer les détails du cluster à une API hébergée.
L’agent peut exécuter les opérations du cluster. Examinez ce qu’il propose avant d’approuver n’importe quoi de destructif, et préférez les contextes en lecture seule lors de l’exploration.
Installation
| Méthode | Commande |
|---|
| Script d’installation | curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash |
| Krew | kubectl krew install ai |
| Homebrew | brew install kubectl-ai |
| Binaire | télécharger depuis GitHub Releases |
| Vérifier | kubectl-ai --version |
Configuration du Modèle
| Backend | Configuration |
|---|
| Gemini | export GEMINI_API_KEY=... (par défaut) |
| OpenAI | export OPENAI_API_KEY=... et --llm-provider=openai |
| Ollama (local) | --llm-provider=ollama --model=llama3.1 |
| Azure OpenAI | vars env du fournisseur + point de terminaison |
| Grok / autres | drapeaux du fournisseur supportés |
# Entièrement local — aucune donnée du cluster ne quitte la machine
kubectl-ai --llm-provider=ollama --model=gemma3:12b
Modes d’Utilisation
| Mode | Commande |
|---|
| Interactif | kubectl-ai (session de chat) |
| Unique | kubectl-ai "list pods not in Running state" |
| Entrée piped | cat error.log | kubectl-ai "what is failing here?" |
| En tant que plugin | kubectl ai "scale the api deployment to 5" |
Ce qu’il Gère Bien
| Tâche | Exemple d’invite |
|---|
| Inspection | « quels pods ont redémarré au cours de la dernière heure ? » |
| Diagnostic | « pourquoi le déploiement checkout n’est-il pas prêt ? » |
| Génération de manifeste | « créer un déploiement pour nginx avec 3 réplicas et un service » |
| Explication | « expliquer ce que fait ce CRD » |
| Triage multi-étapes | « trouver les pods défaillants et afficher leurs logs récents » |
| Calcul de ressources | « quels namespaces utilisent le plus de demandes CPU ? » |
Commandes de Session Interactif
| Commande | Fait |
|---|
models | Lister les modèles disponibles |
model <name> | Changer de modèle en mi-session |
clear | Réinitialiser la conversation |
exit / quit | Quitter la session |
| Suivis | Demander en contexte : « montre-moi maintenant ses logs » |
Contrôles de Sécurité
| Contrôle | Objectif |
|---|
| Invites de confirmation | Approuver les commandes avant l’exécution |
--quiet | Non-interactif (scripting; utiliser avec prudence) |
| Contexte kubeconfig en lecture seule | Garde-fou le plus solide |
| Scoping de namespace | Limiter le rayon d’impact |
| Revoir le YAML généré | Avant kubectl apply |
La mesure de sécurité la plus fiable n’est pas un drapeau — c’est de pointer l’outil sur un contexte dont les credentials ne peuvent pas muter la production.
Intégration MCP
kubectl-ai peut opérer en tant que serveur ou client MCP, exposant les opérations Kubernetes en tant qu’outils à d’autres clients IA (ou consommant des outils MCP externes lors d’une session).
| Mode | Drapeau |
|---|
| Serveur MCP | --mcp-server |
| Client MCP | configurer les serveurs MCP externes |
Flux de Travail Pratique
# Triage d'un service défaillant, modèle local hébergé
kubectl-ai --llm-provider=ollama --model=llama3.1
> why are pods in the payments namespace crashlooping?
> show me the last 50 log lines from the worst offender
> what would you change in the resource limits?
Traitez la sortie comme une suggestion informée, pas comme une autorité — vérifiez la sortie kubectl sous-jacente qu’elle cite.
kubectl-ai vs Outils Associés
| Aspect | kubectl-ai | k9s | kubectl + docs |
|---|
| Interface | Langage naturel | TUI | Commandes manuelles |
| Aide au diagnostic | Oui (raisonnement) | Inspection visuelle | Votre propre connaissance |
| Option de modèle local | Oui (Ollama) | N/A | N/A |
| Meilleur pour | Explication/diagnostic, brouillon YAML | Navigation cluster rapide | Contrôle précis |
Complète k9s pour la navigation et kubectl pour les opérations exactes.
Ressources