Aide-mémoire CKAD
exemple YAML Pod k8s
Un Pod : un ou plusieurs conteneurs sur un nœud. À l’examen : kubectl run, dry-run vers YAML, éditer, apply.
kubectl run web --image=nginx:1.27 --restart=Never
kubectl run web --image=nginx:1.27 --restart=Never --port=80 --labels=app=web -o yaml --dry-run=client > pod.yaml
# edit pod.yaml
kubectl apply -f pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: web
namespace: default
labels:
app: web
spec:
restartPolicy: Never
containers:
- name: web
image: nginx:1.27
ports:
- containerPort: 80
kubectl get po web -o wide
kubectl describe po web
kubectl logs web
kubectl exec -it web -- sh
kubectl delete po web --force --grace-period=0
Champs
- spec
- La plupart de spec est immuable sur un Pod en cours. Supprimer et recréer.
- restartPolicy
- Défaut : Always. Never = reste arrêté. Un Job veut Never ou OnFailure.
- containers.name
- kubectl run nomme le conteneur comme le Pod. À poser si la question le nomme.
- ports
- Documente le port. Ne le publie pas. Il faut encore un Service.
- containerPort
- Port dans le conteneur. Le targetPort d’un Service doit matcher.
- kubectl run
- --restart=Never : Pod one-shot. Sans ça, le défaut est Always.
- --dry-run
- Affiche le YAML seulement. Rien n’est créé avant apply.
- kubectl describe
- Les events sont ici. Commencer par là si le Pod n’est pas Running.
- kubectl delete
- --force --grace-period=0 saute l’arrêt gracieux.
Pièges
- kubectl run crée un Pod. --restart=Never pour un one-shot. restartPolicy vaut Always par défaut.
- La plupart de spec est immuable sur un Pod en cours. Supprimer et recréer.
- Si la question nomme le conteneur, réglez containers[0].name. kubectl run reprend le nom du Pod.
Doc officielle Pods