diff --git a/content/fr/docs/reference/kubectl/cheatsheet.md b/content/fr/docs/reference/kubectl/cheatsheet.md index 0c320717a2..918debad70 100644 --- a/content/fr/docs/reference/kubectl/cheatsheet.md +++ b/content/fr/docs/reference/kubectl/cheatsheet.md @@ -1,11 +1,14 @@ --- title: Aide-mémoire kubectl description: Cheatsheet kubectl aide-mémoire +reviewers: +- rbenzair +- feloy +- remyleone content_template: templates/concept card: name: reference weight: 30 -original: d4d55a703 --- {{% capture overview %}} @@ -46,6 +49,8 @@ echo "if [ $commands[kubectl] ]; then source <(kubectl completion zsh); fi" >> ~ ## Contexte et configuration de Kubectl Indique avec quel cluster Kubernetes `kubectl` communique et modifie les informations de configuration. Voir la documentation [Authentification multi-clusters avec kubeconfig](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) pour des informations détaillées sur le fichier de configuration. +Information. Voir la documentation [Authentification à travers des clusters avec kubeconfig](/docs/tasks/access-application-cluster/configure-access-multiple-clusters/) +pour des informations détaillées sur le fichier de configuration. ```bash kubectl config view # Affiche les paramètres fusionnés de kubeconfig @@ -58,6 +63,7 @@ kubectl config view # Affiche le mot de passe pour l'utilisateur e2e kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}' +kubectl config view -o jsonpath='{.users[].name}' # Affiche le premier utilisateur kubectl config view -o jsonpath='{.users[*].name}' # Affiche une liste d'utilisateurs kubectl config get-contexts # Affiche la liste des contextes kubectl config current-context # Affiche le contexte courant (current-context) @@ -77,9 +83,7 @@ kubectl config unset users.foo # Supprime l'utilisateur fo ``` ## Apply -`apply` gère des applications en utilisant des fichiers définissant des ressources Kubernetes. -Elle crée et met à jour des ressources dans un cluster en exécutant `kubectl apply`. -C'est la manière recommandée de gérer des applications Kubernetes en production. Voir le [Livre Kubectl](https://kubectl.docs.kubernetes.io). +`apply` gère des applications en utilisant des fichiers définissant des ressources Kubernetes. Elle crée et met à jour des ressources dans un cluster en exécutant `kubectl apply`. C'est la manière recommandée de gérer des applications Kubernetes en production. Voir le [Livre Kubectl](https://kubectl.docs.kubernetes.io). ## Création d'objets @@ -92,7 +96,7 @@ kubectl apply -f ./my1.yaml -f ./my2.yaml # Crée depuis plusieurs fichiers kubectl apply -f ./dir # Crée une ou plusieurs ressources depuis tous les manifests dans dir kubectl apply -f https://git.io/vPieo # Crée une ou plusieurs ressources depuis une url kubectl create deployment nginx --image=nginx # Démarre une instance unique de nginx -kubectl explain pods,svc # Affiche la documentation pour les manifests pod et svc +kubectl explain pods # Affiche la documentation pour les manifests pod # Crée plusieurs objets YAML depuis l'entrée standard (stdin) cat </dev/null; printf "\n"; done - -# Ou cette commande peut aussi être utilisée pour obtenir tous les labels associés aux pods kubectl get pods --show-labels # Vérifie quels noeuds sont prêts @@ -191,8 +192,15 @@ JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.ty # Liste tous les Secrets actuellement utilisés par un pod kubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name' | grep -v null | sort | uniq +# Liste les containerIDs des initContainer de tous les Pods +# Utile lors du nettoyage des conteneurs arrêtés, tout en évitant de retirer les initContainers. +kubectl get pods --all-namespaces -o jsonpath='{range .items[*].status.initContainerStatuses[*]}{.containerID}{"\n"}{end}' | cut -d/ -f3 + # Liste les événements (Events) classés par timestamp kubectl get events --sort-by=.metadata.creationTimestamp + +# Compare l'état actuel du cluster à l'état du cluster si le manifeste était appliqué. +kubectl diff -f ./my-manifest.yaml ``` ## Mise à jour de ressources @@ -205,12 +213,8 @@ kubectl rollout history deployment/frontend # Vérifie l'hi kubectl rollout undo deployment/frontend # Rollback du déploiement précédent kubectl rollout undo deployment/frontend --to-revision=2 # Rollback à une version spécifique kubectl rollout status -w deployment/frontend # Écoute (Watch) le status du rolling update du déploiement "frontend" jusqu'à ce qu'il se termine +kubectl rollout restart deployment/frontend # Rolling restart du déploiement "frontend" -# déprécié depuis la version 1.11 -kubectl rolling-update frontend-v1 -f frontend-v2.json # (déprécié) Rolling update des pods de frontend-v1 -kubectl rolling-update frontend-v1 frontend-v2 --image=image:v2 # (déprécié) Modifie le nom de la ressource et met à jour l'image -kubectl rolling-update frontend --image=image:v2 # (déprécié) Met à jour l'image du pod du déploiement frontend -kubectl rolling-update frontend-v1 frontend-v2 --rollback # (déprécié) Annule (rollback) le rollout en cours cat pod.json | kubectl replace -f - # Remplace un pod, en utilisant un JSON passé en entrée standard @@ -231,6 +235,7 @@ kubectl autoscale deployment foo --min=2 --max=10 # Mise à l'éc ## Mise à jour partielle de ressources ```bash +# Mise à jour partielle d'un node kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}' # Met à jour partiellement un noeud # Met à jour l'image d'un conteneur ; spec.containers[*].name est requis car c'est une clé du merge @@ -287,6 +292,11 @@ kubectl logs -f my-pod # Fait défiler (stream) les kubectl logs -f my-pod -c my-container # Fait défiler (stream) les logs d'un conteneur particulier du pod (stdout, cas d'un pod multi-conteneurs) kubectl logs -f -l name=myLabel --all-containers # Fait défiler (stream) les logs de tous les pods ayant le label name=myLabel (stdout) kubectl run -i --tty busybox --image=busybox -- sh # Exécute un pod comme un shell interactif +kubectl run nginx --image=nginx --restart=Never -n +mynamespace # Run pod nginx in a specific namespace +kubectl run nginx --image=nginx --restart=Never # Run pod nginx and write its spec into a file called pod.yaml +--dry-run -o yaml > pod.yaml + kubectl attach my-pod -i # Attache à un conteneur en cours d'exécution kubectl port-forward my-pod 5000:6000 # Écoute le port 5000 de la machine locale et forwarde vers le port 6000 de my-pod kubectl exec my-pod -- ls / # Exécute une commande dans un pod existant (cas d'un seul conteneur) @@ -332,31 +342,33 @@ kubectl api-resources --api-group=extensions # Toutes les ressources dans le gro Pour afficher les détails sur votre terminal dans un format spécifique, vous pouvez utiliser une des options `-o` ou `--output` avec les commandes `kubectl` qui les prennent en charge. -| Format d'affichage | Description | -|-------------------------------------|-----------------------------------------------------------------------------------------------------------------------| -| `-o=custom-columns=` | Affiche un tableau en spécifiant une liste de colonnes séparées par des virgules | -| `-o=custom-columns-file=` | Affiche un tableau en utilisant les colonnes spécifiées dans le fichier `` | -| `-o=json` | Affiche un objet de l'API formaté en JSON | -| `-o=jsonpath=