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.

Une canonnière lourde rentre sous le feu par une porte de hangar. Une canonnière lourde rentre sous le feu par une porte de hangar.
Créer
kubectl run web --image=nginx:1.27 --restart=Never
YAML puis apply
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
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
Inspecter
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

S’entraîner sur un cluster réel →