1. Introduction
kubectl-ai
est une interface intelligente optimisée par l'IA qui traduit l'intention de l'utilisateur en opérations Kubernetes précises, ce qui rend la gestion de Kubernetes plus accessible et efficace.
Objectifs de l'atelier
- Vous allez travailler avec
kubectl-ai
, un outil d'assistance Kubernetes optimisé par l'IA, pour gérer un cluster GKE.
Points abordés
- Vous allez créer un cluster GKE et configurer
kubectl-ai.
. - Vous effectuerez des tâches Kubernetes telles que la gestion, la création et la correction de ressources avec des clusters et des ressources de dépannage.
Prérequis
- Navigateur Web Chrome
- Un compte Gmail
- Un projet Cloud pour lequel la facturation est activée
- Une clé API Gemini
Dans cet atelier de programmation, nous partons du principe que l'utilisateur possède des connaissances de base sur Kubernetes.
2. Avant de commencer
Créer un projet
- Dans la console Google Cloud, sur la page du sélecteur de projet, sélectionnez ou créez un projet Google Cloud.
- Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet .
- Vous allez utiliser Cloud Shell, un environnement de ligne de commande exécuté dans Google Cloud et fourni avec bq. Cliquez sur "Activer Cloud Shell" en haut de la console Google Cloud.
- Une fois connecté à Cloud Shell, vérifiez que vous êtes déjà authentifié et que le projet est défini sur votre ID de projet à l'aide de la commande suivante :
gcloud auth list
- Exécutez la commande suivante dans Cloud Shell pour vérifier que la commande gcloud connaît votre projet.
gcloud config list project
- Si votre projet n'est pas défini, utilisez la commande suivante pour le définir :
gcloud config set project <YOUR_PROJECT_ID>
- Activez les API requises à l'aide de la commande ci-dessous. Cette opération peut prendre quelques minutes. Veuillez patienter.
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
compute.googleapis.com \
container.googleapis.com
Si la commande s'exécute correctement, un message semblable à celui ci-dessous s'affiche :
Operation "operations/..." finished successfully.
Si vous oubliez d'activer une API, vous pourrez toujours le faire au cours de l'implémentation.
Consultez la documentation pour connaître les commandes gcloud ainsi que leur utilisation.
3. Configurer un cluster GKE
Dans cette étape, nous allons configurer un cluster GKE dans lequel nous exécuterons nos commandes. Assurez-vous d'avoir suivi les étapes précédentes, d'avoir configuré l'ID de projet approprié et d'avoir activé les services requis dans votre projet Google Cloud.
Créer un cluster GKE
Exécutez la commande suivante fournie dans Cloud Shell. Si vous souhaitez créer le cluster dans une autre zone, n'hésitez pas à remplacer la valeur --zone
par celle de la zone souhaitée.
gcloud container clusters create my-gke-cluster \
--num-nodes 2 \
--machine-type e2-standard-4 \
--zone us-central1-a
Cette opération peut prendre un certain temps. Veuillez patienter. Une fois l'opération terminée, un résultat semblable à celui-ci doit s'afficher :
Note: Your Pod address range (`--cluster-ipv4-cidr`) can accommodate at most 1008 node(s).
Creating cluster my-gke-cluster in us-central1-a... Cluster is being health-checked (Kubernetes Control Plane is healthy)...done.
Created [https://container.googleapis.com/v1/projects/YOUR_PROJECT_ID/zones/us-central1-a/clusters/my-gke-cluster].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/us-central1-a/my-gke-cluster?project=YOUR_PROJECT_ID
kubeconfig entry generated for my-gke-cluster.
NAME: my-gke-cluster
LOCATION: us-central1-a
MASTER_VERSION: 1.33.4-gke.1350000
MASTER_IP: 34.59.221.183
MACHINE_TYPE: e2-standard-4
NODE_VERSION: 1.33.4-gke.1350000
NUM_NODES: 2
STATUS: RUNNING
STACK_TYPE: IPV4
Vérifier les détails du cluster GKE
Commençons par récupérer les identifiants du cluster :
gcloud container clusters get-credentials my-gke-cluster \
--zone us-central1-a
Vous devriez obtenir un résultat semblable à ce qui suit :
Fetching cluster endpoint and auth data.
kubeconfig entry generated for my-gke-cluster.
Ensuite, vérifions les détails du cluster :
kubectl get nodes
Le résultat doit ressembler à ceci :
NAME STATUS ROLES AGE VERSION
gke-my-gke-cluster-default-pool-c63d5936-2f1z Ready <none> 2m58s v1.33.4-gke.1350000
gke-my-gke-cluster-default-pool-c63d5936-fqtl Ready <none> 3m2s v1.33.4-gke.1350000
Enfin, validons l'espace de noms du cluster :
kubectl get namespaces
Le résultat doit ressembler à ceci :
NAME STATUS AGE
default Active 6m16s
gke-managed-cim Active 4m21s
gke-managed-system Active 4m6s
gke-managed-volumepopulator Active 4m
gmp-public Active 3m40s
gmp-system Active 3m41s
kube-node-lease Active 6m16s
kube-public Active 6m16s
kube-system Active 6m16s
4. Installer la CLI kubectl-ai
Nous allons utiliser la méthode d'installation rapide (recommandée) pour installer kubectl-ai CLI
.
Saisissez la commande suivante dans Cloud Shell :
curl -sSL https://raw.githubusercontent.com/GoogleCloudPlatform/kubectl-ai/main/install.sh | bash
Le kubectl-ai CLI
sera alors téléchargé et installé. À la fin de l'opération, le message suivant devrait s'afficher :
✅ kubectl-ai installed successfully! Run 'kubectl-ai --help' to get started.
Pour vérifier si la commande kubectl-ai
fonctionne, exécutez la commande suivante :
kubectl-ai
Remarque : La commande ci-dessus renverra l'erreur indiquant que
creating llm client: GEMINI_API_KEY environment variable not set
Notez que kubectl-ai est compatible avec les modèles d'IA de gemini
, vertexai
, azopenai
, openai
, grok
, bedrock
et les fournisseurs de LLM locaux tels que ollama
et llama.cpp
. Dans notre cas, nous allons utiliser Gemini (Google) et nous aurons besoin d'une clé API pour cela via Google AI Studio. Une fois que vous avez généré la clé et que vous avez la valeur prête, utilisez la commande suivante dans Cloud Shell pour définir la variable d'environnement GEMINI_API_KEY qui pointe vers votre clé.
export GEMINI_API_KEY="YOUR_GEMINI_API_KEY"
Remarque : N'utilisez "GEMINI_API_KEY" que comme valeur de clé.
Relancez kubectl-ai
. Cette fois, vous verrez qu'il se lance et attend votre commande dans son terminal interactif.
$ kubectl-ai
Hey there, what can I help you with today?
>>>
Essayez quelques requêtes liées aux commandes kubectl dans la requête. Voici quelques exemples :
What is the command to get the nodes in a cluster?
list pods
Vous pouvez quitter le terminal kubectl-ai
en saisissant quit
.
5. Utiliser kubectl-ai
Maintenant que vous avez configuré kubectl-ai
, le point clé à retenir est que vous pouvez désormais interagir avec le cluster à l'aide de requêtes en langage naturel. Essayons quelques autres commandes :
Exécutons la commande suivante :
kubectl-ai --model gemini-2.5-flash "list pods in default namespace"
Vous devriez obtenir le résultat suivant :
Running: kubectl get pods -n default
There are no resources found in the default namespace.
>>>
Notez qu'il a traduit notre requête en langage naturel pour lister les pods en commande kubectl
équivalente.
Notez également que nous sommes maintenant dans le terminal interactif kubectl-ai
(>>>
), avec lequel nous pouvons continuer à interagir.
Exécutez la commande suivante :
how many pods are there in kube-system namespace
Le résultat est indiqué ci-dessous :
>>> how many pods are there in kube-system namespace
Running: kubectl get pods -n kube-system --output=jsonpath='{.items[*].metadata.name}'
There are 18 pods in the kube-system namespace.
Commande Single Shot
La section précédente a montré comment lancer kubectl-ai
et rester dans le terminal interactif pour donner des commandes ultérieures. Cela ne convient pas aux commandes que vous souhaitez exécuter de manière autonome et sans invite interactive en attente de votre prochaine commande.
Saisissez la méthode de commande "single shot" avec le paramètre --quiet
.
Voici un exemple de commande permettant de créer un déploiement.
kubectl-ai --quiet "create a deployment named nginx with 2 replicas" --skip-permissions
La commande create deployment
sera alors exécutée comme indiqué ci-dessous :
Running: kubectl create deployment nginx --image=nginx --replicas=2
I have created a deployment named nginx with 2 replicas. You can verify this by running kubectl get deployments .
Nous avons ainsi pu configurer kubectl-ai
pour qu'il interagisse avec notre cluster GKE actuel.
Nous venons d'exécuter quelques commandes et de montrer un mode de fonctionnement avec kubectl-ai
. Vous pouvez rediriger la sortie vers d'autres outils, comprendre les erreurs, la persistance entre les différentes exécutions de session de kubectl-ai
, et plus encore. Consultez la section Utilisation de la documentation de l'outil.
6. (Facultatif) Interface de chat kubectl-ai
Dans certains cas, vous préférerez peut-être travailler avec kubectl-ai
via une interface de chat standard. Kubectl-ai
est fourni avec sa propre interface utilisateur, que vous pouvez lancer à l'aide de la commande ci-dessous dans Cloud Shell :
kubectl-ai --llm-provider=gemini \ --ui-type=web \ --ui-listen-address=0.0.0.0:8080
L'utilitaire se lance dans une interface de chat. Un résultat semblable à celui-ci devrait s'afficher :
listening on http://[::]:8080
Cliquez sur "Aperçu sur le Web" dans Cloud Shell, comme indiqué ci-dessous :
Cliquez ensuite sur Preview on port 8080 (Prévisualiser sur le port 8080). Un navigateur s'ouvre et l'interface de chat Web s'affiche, comme illustré ci-dessous :
Voici un exemple de requête que nous avons exécutée dans l'interface de chat :
Essayez d'autres requêtes dans cette interface. Il fournit également des conseils sur les autres requêtes en langage naturel que vous pouvez exécuter.
7. Effectuer un nettoyage
Pour éviter que des frais ne soient facturés en permanence sur votre compte Google Cloud, il est important de supprimer les ressources que nous avons créées lors de cet atelier.
Si vous n'avez plus besoin du cluster GKE que nous avons créé dans la section précédente de cet atelier, vous pouvez le supprimer à l'aide de la commande suivante :
gcloud container clusters delete my-gke-cluster --zone=us-central1-a
8. Félicitations
Félicitations ! Vous avez utilisé kubectl-ai, un assistant Kubernetes optimisé par l'IA, pour gérer votre cluster Kubernetes à l'aide de requêtes en langage naturel. Pour en savoir plus, consultez les ressources listées dans la section suivante.