2 Décembre 2025
🔧 Contexte & Configuration
kubectl config get-contexts → Lister les contextes
kubectl config use-context <ctx> → Basculer de contexte
kubectl config current-context → Voir le contexte actif
kubectl config set-context --current --namespace=<ns> → Définir le namespace par défaut
📦 Pods
kubectl get pods [-A] → Lister les pods
kubectl describe pod <pod> → Détails d’un pod
kubectl logs <pod> [-c <container>] → Logs
kubectl exec -it <pod> -- sh → Shell dans un pod
kubectl delete pod <pod> → Supprimer/redémarrer un pod
🚀 Déploiements
kubectl get deploy → Lister les déploiements
kubectl scale deploy <name> --replicas=N → Mise à l’échelle
kubectl rollout status|history|undo deploy <name> → Suivi / rollback
kubectl edit deploy <name> → Modifier en place
🌐 Services & Réseau
kubectl get svc → Lister les services
kubectl expose deploy nginx --port=80 --type=LoadBalancer → Exposer un déploiement
kubectl port-forward svc/<svc> 8080:80 → Redirection de port
kubectl get ingress → Lister les ingress
⚙️ ConfigMaps & Secrets
kubectl get configmap|secret → Lister
kubectl create configmap <name> --from-literal=key=val → Créer ConfigMap
kubectl create secret generic <name> --from-literal=key=val → Créer Secret
kubectl get secret <name> -o yaml → Voir encodé
kubectl get secret <name> -o jsonpath="{.data.key}" | base64 -d → Décoder
🔐 RBAC
kubectl create sa <name> → Créer ServiceAccount
kubectl get clusterrolebinding -A → Lister bindings
kubectl auth can-i get pods --as=system:sa:ns:sa → Vérifier accès
📂 Namespaces
kubectl get ns → Lister
kubectl create ns <name> → Créer
kubectl delete ns <name> → Supprimer
📊 Jobs & CronJobs
kubectl create job hello --image=busybox -- echo Hi
kubectl create cronjob hello --image=busybox --schedule="*/5 * * * *" -- echo Hi
kubectl get jobs|cronjob → Lister
📦 Stockage
kubectl get pv|pvc → Lister volumes
kubectl describe pvc <name> → Détails
kubectl delete pvc <name> → Supprimer
🔍 Débogage
kubectl get events --sort-by=.metadata.creationTimestamp → Événements
kubectl logs <pod> --previous → Logs crash
kubectl debug -it <pod> --image=busybox → Pod de debug
kubectl top pod → Ressources CPU/Mémoire
📄 YAML & Apply
kubectl apply -f file.yaml → Appliquer
kubectl delete -f file.yaml → Supprimer
kubectl explain <resource> → Schéma
🧹 Nettoyage
kubectl delete all --all → Tout supprimer dans un namespace
kubectl delete pod,svc -l app=nginx → Supprimer par label
📝 Exemples pour la création de ressources
Création d’un Pod simple
kubectl run nginx --image=nginx
Création d’un déploiement
kubectl create deployment nginx --image=nginx
Création d’un Service exposant un déploiement
kubectl expose deployment nginx --port=80 --target-port=80 --type=LoadBalancer
Création d’un ConfigMap
kubectl create configmap mon-config --from-literal=cle=valeur
Création d’un Secret générique
kubectl create secret generic mon-secret --from-literal=motdepasse=123456
Contextes – Tableau de référence rapide
| Commande | Description | Exemple |
|---|
kubectl config get-contexts | Liste tous les contextes du kubeconfig | kubectl config get-contexts |
kubectl config current-context | Affiche le contexte actif | kubectl config current-context |
kubectl config use-context NAME | Bascule vers un contexte existant | kubectl config use-context dev-cluster |
kubectl config set-context NAME --cluster=C --user=U --namespace=N | Crée ou met à jour un contexte | kubectl config set-context prod --cluster=prod-cl --user=admin --namespace=default |
kubectl config set-cluster NAME --server=URL --certificate-authority=FILE | Définir ou modifier une entrée cluster | kubectl config set-cluster prod-cl --server=https://1.2.3.4 |
kubectl config set-credentials NAME --token=TOKEN | Créer ou mettre à jour des identifiants utilisateur | kubectl config set-credentials ci-user --token=abc123 |
kubectl config view --minify | Affiche la configuration du contexte courant uniquement | kubectl config view --minify |
kubectl config unset contexts.NAME | Supprime un contexte du kubeconfig | kubectl config unset contexts.old-context |
kubectl config rename-context OLD_NAME NEW_NAME | Renomme un contexte existant | kubectl config rename-context staging staging-old |
kubectl config view --flatten | Fusionne et aplatit les fichiers kubeconfig pour export | kubectl config view --flatten > merged-kubeconfig |
Workspaces – Tableau de référence rapide
| Tâche | Commande kubectl | Description |
| Lister les Namespaces | kubectl get namespaces ou kubectl get ns | Affiche tous les espaces de noms existants dans le cluster. |
| Créer un Namespace | kubectl create namespace <nom-du-ns> | Crée un nouvel espace de noms. |
| Supprimer un Namespace | kubectl delete namespace <nom-du-ns> | Supprime l’espace de noms et toutes les ressources qu’il contient (Pods, Deployments, Services, etc.). |
| Afficher les détails | kubectl describe namespace <nom-du-ns> | Affiche les informations détaillées sur un espace de noms spécifique. |
| Vérifier les ressources dans un NS | kubectl get all -n <nom-du-ns> | Affiche un aperçu de la plupart des ressources (Pods, Deployments, Services, etc.) dans l’espace de noms spécifié. |
| Exécuter une commande dans un NS spécifique | kubectl <commande> <ressource> -n <nom-du-ns> | Applique une commande (comme get, apply, delete) uniquement aux ressources de cet espace de noms. |
| Définir un Namespace par défaut (Temporaire) | kubectl config set-context --current --namespace=<nom-du-ns> | Change l’espace de noms par défaut pour le contexte kubectl actuel. |
| Créer un Namespace via YAML | kubectl apply -f <fichier.yml> (où fichier.yml définit kind: Namespace) | Méthode déclarative pour la création, souvent utilisée en production. |
ATTENTION: vérifiez toujours le contexte actif avant toute opération à risque avec kubectl config current-context.