Lab 1.2 : Prise en main de kubectl¶
| Durée | 45 min |
| Niveau | Guidé |
| Prérequis | Lab 1.1 réalisé (cluster à 3 nœuds Ready) |
| Acquis visés | AA1, AA2 |
Objectifs
- Gagner en vitesse avec l'alias et l'autocomplétion
- Travailler dans un namespace dédié
- Explorer l'API avec
api-resourcesetexplain - Générer, appliquer et inspecter un manifeste
Étapes¶
Étape 1 : Alias et autocomplétion¶
echo 'source <(kubectl completion bash)' >> ~/.bashrc
echo 'alias k=kubectl' >> ~/.bashrc
echo 'complete -o default -F __start_kubectl k' >> ~/.bashrc
source ~/.bashrc
k version
Point de contrôle
-
k get no+ touche Tab complète la commande
Étape 2 : Travailler dans votre namespace¶
k create namespace tp-k8s
k config get-contexts
k config set-context --current --namespace=tp-k8s
k config view --minify | grep namespace
Étape 3 : Explorer l'API¶
k api-resources | head -20
k explain pod
k explain pod.spec.containers
k explain deployment.spec.strategy
explain est votre documentation intégrée : vous pouvez l'utiliser pendant un examen comme en production.
Étape 4 : Générer un manifeste sans l'écrire à la main¶
Repérez apiVersion, kind, metadata et spec. Appliquez-le, puis observez :
Point de contrôle
- Le Pod
webestRunning - Vous savez dire sur quel nœud il s'exécute
Étape 5 : Inspecter un Pod¶
k describe pod web
k logs web
k exec -it web -- sh
# dans le conteneur : hostname, wget -qO- localhost, exit
Dans describe, lisez la section Events en bas : elle raconte ce qui s'est passé (planification, téléchargement de l'image, démarrage).
Étape 6 : Extraire des informations précises¶
k get pod web -o jsonpath='{.status.podIP}'; echo
k get pods -o custom-columns=NOM:.metadata.name,NOEUD:.spec.nodeName,IP:.status.podIP
Étape 7 : Modifier puis recréer¶
Questions de réflexion¶
Quelle différence entre kubectl create et kubectl apply ?
create échoue si l'objet existe déjà ; apply crée l'objet ou le met à jour pour qu'il corresponde au manifeste (approche déclarative).
À quoi sert --dry-run=client -o yaml ?
À générer un manifeste de départ sans rien créer dans le cluster, puis à l'adapter.
Où trouver la raison d'un Pod qui ne démarre pas ?
Dans kubectl describe pod (section Events) puis dans kubectl logs.