Aller au contenu
English
English
medium

25 labs gratuits pour préparer le CKA

2 min de lecture

25 labs pratiques pour préparer le Certified Kubernetes Administrator, soit environ 8 heures de travail, chacun noté sur l'état réel de votre machine et non sur les commandes tapées. Ils se jouent chez vous avec la ligne de commande `dsoxlab`, et ne coûtent rien.

Administrer un cluster : installation, mises à jour, réseau, stockage, sauvegarde d'etcd et dépannage, dans un terminal, sur de vrais clusters.

  • 25labs
  • 8heures de pratique
  • 25sur machines virtuelles

Niveaux 2 débutant 15 intermédiaire 8 avancé

Objectifs officiels de l'examen publiés par CNCF

Ce ne sont pas des questions d'examen. Ce sont des exercices pratiques sur les compétences que l'examen mesure, notés sur l'état de votre machine.

Kubernetes, CKA, CKAD et CKS

25 labs chaque lab rejoué et noté

Ajouter ce catalogue dsoxlab catalog add https://github.com/stephrobert/kubernetes-dsoxlab-training

CKA, Certified Kubernetes Administrator

  • Poser un Pod statique sur un worker, sans passer par l'API

    Faire tourner un Pod que le kubelet du worker gère seul, à partir d'un manifeste déposé sur le nœud, et le voir apparaître dans l'API sous son nom de miroir. Le fichier doit être au bon endroit, celui que la configuration du kubelet désigne, et le runtime du worker doit réellement exécuter le conteneur.

    dsoxlab start cka-static-pod

    10m intermédiaire machines virtuelles Guide compagnon

  • Un agent sur chaque nœud, control plane compris

    Déployer un DaemonSet qui pose un agent sur tous les nœuds du cluster, y compris le control plane, protégé par son taint. Les tests comptent un Pod par nœud, vérifient que le taint est toujours là et que l'agent y tourne quand même, et lisent ses logs pour prouver qu'il fait son travail.

    dsoxlab start cka-daemonset-all-nodes

    10m débutant machines virtuelles Guide compagnon

  • Donner une identité à une application : ServiceAccount, Role, RoleBinding

    Une application refuse de démarrer parce que son ServiceAccount n'existe pas. Le créer, lui accorder le droit de lire les Pods de son namespace et rien d'autre, puis prouver depuis l'intérieur du Pod, avec son propre jeton, que lister passe et que supprimer, lire les Secrets ou regarder ailleurs sont refusés.

    dsoxlab start cka-rbac-serviceaccount

    15m intermédiaire machines virtuelles Guide compagnon

  • Réserver un nœud : taint, tolérance et nodeSelector

    Réserver le worker à la production par un taint et un label, puis placer un Pod qui doit y aller, tolérance et nodeSelector, et un Pod qui ne doit pas y aller. Les tests lisent le nœud, le placement réel de chaque Pod et les mécanismes déclarés : un Pod épinglé par nodeName contourne le taint et ne passe pas.

    dsoxlab start cka-taints-tolerations-placement

    10m intermédiaire machines virtuelles Guide compagnon

  • Placer avec nodeAffinity : contrainte obligatoire et préférence

    Placer un Deployment par une affinité de nœud obligatoire sur un label à plusieurs valeurs, y ajouter une préférence pondérée, puis débloquer un Pod qui attend un nœud qui n'existe pas encore en posant le label qu'il exige. Les tests lisent les labels des nœuds, les affinités déclarées et le nœud réel de chaque Pod.

    dsoxlab start cka-node-affinity

    15m intermédiaire machines virtuelles Guide compagnon

  • Isoler la base de données : seul le backend y accède

    Écrire la NetworkPolicy qui ne laisse entrer vers la base que le backend de son namespace, sur son port, et rien d'autre. Les tests tentent les connexions : celle qui doit passer, celle du frontend qui doit être bloquée, celle d'un Pod au bon label mais dans un autre namespace, et vérifient que la base peut encore sortir.

    dsoxlab start cka-networkpolicy-isolate-db

    15m intermédiaire machines virtuelles Guide compagnon

  • Router deux applications sur un seul hôte, et prouver que chacune reçoit la sienne

    Deux applications, un seul nom d'hôte, et aucune règle disant laquelle est laquelle. Routez par le chemin, et prouvez-le de la seule façon qui compte : chaque chemin répond le nom de son application, et un chemin non déclaré ne répond ni l'une ni l'autre.

    dsoxlab start cka-ingress-path-routing

    20m intermédiaire machines virtuelles Guide compagnon

  • Router avec la Gateway API, et voir la Gateway se déclarer programmée

    Les deux mêmes applications, le même nom d'hôte unique, et le successeur de l'Ingress. Déclarez une Gateway, attachez-lui une route, et prouvez le routage : chaque chemin répond le nom de son application, un chemin non déclaré ne répond ni l'une ni l'autre.

    dsoxlab start cka-gateway-api-httproute

    25m avancé machines virtuelles Guide compagnon

  • Un volume persistant : PersistentVolume, PersistentVolumeClaim et un Pod qui écrit

    Sur un cluster sans provisionnement dynamique, créer un PersistentVolume sur le disque d'un nœud, le réclamer par un PersistentVolumeClaim, le monter dans un Pod qui y écrit. Les tests lisent le volume, la liaison, le montage, le fichier dans le Pod, puis le même fichier sur le disque du nœud : c'est là que se prouve la persistance.

    dsoxlab start cka-pv-pvc-storageclass

    15m intermédiaire machines virtuelles Guide compagnon

  • Obtenir un volume sans qu'un administrateur l'ait créé, et voir ce qu'il devient

    Une revendication bloquée en attente parce que personne n'a préparé de volume à la main. Laissez le cluster le provisionner à la demande, puis observez ce que la classe décide quand la revendication disparaît : le volume la suit.

    dsoxlab start cka-storageclass-provisionnement-dynamique

    25m intermédiaire machines virtuelles Guide compagnon

  • Revenir en arrière sur un déploiement bloqué, puis livrer la bonne version

    Une mise à jour est partie avec un nom d'image faux et le déploiement est bloqué. Revenir à la révision qui marchait par l'historique du Deployment, puis livrer l'image correcte avec une cause de changement. Les tests lisent les ReplicaSets et leurs numéros de révision : ils racontent ce qui s'est passé, et un Deployment recréé de zéro ne raconte rien.

    dsoxlab start cka-deployment-rollout-rollback

    15m intermédiaire machines virtuelles Guide compagnon

  • Vider un worker pour une maintenance, sans couper le service

    Protéger une application par un PodDisruptionBudget, retirer le worker du scheduling, l'évacuer en respectant ce budget et les DaemonSets, puis le remettre en service et tracer l'opération. Les tests prouvent que les Pods ont réellement été recréés ailleurs, que le nœud est revenu, et que le DaemonSet du CNI n'a pas bougé.

    dsoxlab start cka-node-drain-cordon

    15m intermédiaire machines virtuelles Guide compagnon

  • Faire monter en charge automatiquement avec un HorizontalPodAutoscaler

    Poser un HPA sur un Deployment, générer de la charge, voir la montée en replicas, puis couper la charge. Les tests lisent le HPA, ses métriques courantes, et l'event de redimensionnement que le contrôleur a émis : un HPA qui n'a jamais redimensionné n'est pas un HPA validé.

    dsoxlab start cka-hpa-autoscaling

    20m intermédiaire machines virtuelles Guide compagnon

  • Plafonner un namespace sans bloquer ceux qui oublient de se déclarer

    Un namespace sans plafond ni valeurs par défaut : une équipe peut prendre tout le cluster, et un Pod sans `requests` est placé à l'aveugle. Posez les deux, et prouvez chacun : un Pod qui demande trop est refusé, un Pod qui ne demande rien est accepté et complété.

    dsoxlab start cka-resourcequota-limitrange

    25m intermédiaire machines virtuelles Guide compagnon

  • Sortir un Pod de l'ImagePullBackOff

    Un Pod ne démarre pas parce que son image ne se télécharge pas. Lire le message exact du runtime dans les events, corriger la référence d'image, et prouver que le serveur répond.

    dsoxlab start cka-troubleshoot-imagepullbackoff

    10m débutant machines virtuelles Guide compagnon

  • Sortir un Deployment du CrashLoopBackOff

    Les Pods d'un Deployment redémarrent en boucle depuis la dernière livraison. Lire ce que le processus a dit avant de mourir, comprendre ce qui lui manque, corriger le Deployment, et prouver que l'application sert à nouveau.

    dsoxlab start cka-troubleshoot-crashloopbackoff

    15m intermédiaire machines virtuelles Guide compagnon

  • Entrer dans un conteneur sans shell avec kubectl debug

    Un Pod dont l'image ne contient aucun shell n'offre rien à kubectl exec. Lui adjoindre un conteneur éphémère qui partage ses processus, atteindre le système de fichiers du nœud par un Pod de débogage, et en laisser la preuve.

    dsoxlab start cka-kubectl-debug

    15m intermédiaire machines virtuelles Guide compagnon

  • Rétablir la résolution DNS du cluster

    Plus aucun Pod ne résout de nom de service. Trouver pourquoi le DNS du cluster ne répond plus, le remettre en service, et prouver qu'un Pod client résout et joint à nouveau un Service par son nom.

    dsoxlab start cka-troubleshoot-dns

    10m intermédiaire machines virtuelles Guide compagnon

  • Rétablir le trafic vers un Service

    Un Service ne dessert plus ses Pods : selector faux, port faux, et une politique réseau qui ferme tout. Remettre le Service d'aplomb, rouvrir exactement ce qu'il faut sans retirer la politique de sécurité, et prouver qu'un client joint le Service par son nom.

    dsoxlab start cka-troubleshoot-networking

    15m avancé machines virtuelles Guide compagnon

  • Ramener un nœud NotReady dans le cluster

    Un worker est passé NotReady, et l'application qui lui est réservée est dégradée. Trouver sur le nœud pourquoi il ne parle plus au control plane, remettre son agent en service de façon durable, et prouver que l'application est revenue.

    dsoxlab start cka-troubleshoot-node-notready

    15m avancé machines virtuelles Guide compagnon

  • Réparer un kubelet qui refuse de démarrer

    Le kubelet d'un worker s'arrête aussitôt lancé, et le nœud est NotReady. Lire dans le journal ce qu'il reproche à sa configuration, corriger le fichier sans rien casser d'autre, et prouver que le nœud et son application sont revenus.

    dsoxlab start cka-troubleshoot-kubelet

    15m avancé machines virtuelles Guide compagnon

  • Remettre l'API server en service

    kubectl ne répond plus : l'API server du control plane sort en erreur au démarrage. Sans API, diagnostiquer sur le nœud, dans les conteneurs et les journaux du kubelet, corriger le manifeste statique, et prouver que l'API répond sans avoir affaibli son autorisation.

    dsoxlab start cka-troubleshoot-apiserver

    15m avancé machines virtuelles Guide compagnon

  • Sauvegarder etcd, puis restaurer le cluster depuis un instantané

    Un namespace a disparu. Prendre d'abord une sauvegarde fraîche de l'état courant, puis restaurer le cluster depuis l'instantané de la veille, sans arrêter le mauvais composant et sans laisser l'API server sur un cache périmé. Les tests prouvent qu'etcd tourne sur un répertoire produit pendant le lab, que les objets reviennent avec leur UID d'origine, et que ce qui a été écrit après la sauvegarde a disparu.

    dsoxlab start cka-etcd-backup-restore

    25m avancé machines virtuelles Guide compagnon

  • Monter un cluster d'une version mineure, sans interrompre ce qui tourne

    Un cluster en retard d'une version mineure, une application qui doit continuer à servir, et la montée à conduire : le plan de contrôle d'abord, le nœud ensuite, chacun avec sa propre commande. Les tests lisent les versions et vérifient que rien n'a été laissé vidé.

    dsoxlab start cka-kubeadm-upgrade

    40m avancé machines virtuelles Guide compagnon

  • Capstone : remettre le portail en service, sans personne à qui demander

    Un namespace laissé par une équipe partie, un portail qui ne répond rien, et aucun ticket pour dire pourquoi. Trois défauts indépendants à trouver, deux exigences qui n'ont jamais été satisfaites, et une seule mesure de réussite : le portail répond sur chaque nœud du cluster.

    dsoxlab start cka-capstone-portail

    45m avancé machines virtuelles Guide compagnon

Revenir aux 352 labs Comment jouer un lab