La CKA (Certified Kubernetes Administrator) est une certification créée par la Cloud Native Computing Foundation (CNCF) en collaboration avec The Linux Foundation pour aider à développer l'écosystème Kubernetes.
Il n’y a pas de prérequis particulier pour passer cette certification à l’exception d’avoir acquis les connaissances et compétences adéquates au préalable.
Cette certification coûte aujourd’hui (date de sortie de l’article) 375$. Je vous conseille d’écumer Internet lorsque vous souhaiterez acheter votre bon de passage, des réductions commerciales sont souvent proposées. Le bon de passage est valable 1 an seulement, je conseille de l'acheter à la fin de vos révisions pour ne pas être pressé par le temps. À l’achat de la CKA, vous obtiendrez un droit de repassage et 2 sessions de killer.sh (nous en parlons plus en détail plus bas).
C’est un examen fondé sur les performances, en 2h vous devrez répondre entre 15 et 20 questions. Cela laisse peu de place à l’hésitation et à la relecture. Je vous conseille d’être prêt(e) psychologiquement, de préparer des alias et de connaître les options qui vous permettront d’obtenir des résultats le plus rapidement possible. Vous devez obtenir 66% de bonnes réponses pour réussir l’examen et vous serez informé(e) de vos résultats sous 24h. Une fois obtenue, la CKA est valide 3 ans, après il faudra la renouveler.
Vous n’avez évidemment pas à tout retenir. Lors de l’examen, différents sites vous sont autorisés à la consultation. Je vous conseille de préparer des raccourcis et de vous entraîner à naviguer dans la documentation Kubernetes pour trouver les informations nécessaires le plus rapidement possible. Je vous propose quelques liens plus loin dans l’article.
Dernière précision : l’examen est en anglais, of course !
L’ensemble des détails concernant l’examen est développé ici.
La CKA a pour objectif de tester vos compétences techniques en matière d’administration Kubernetes. L’examen est composé de 5 sujets principaux qui ont des taux de représentation différents lors de l’examen :
Domaine | Représentation à l'examen |
---|---|
Architecture Cluster, Installation et Configuration | 25% |
Charges de travail et Planification | 15% |
Services et Réseaux | 20% |
Stockage | 10% |
Dépannage | 30% |
À défaut de pouvoir dévoiler des questions de l’examen par souci de confidentialité, je peux revoir avec vous les connaissances et compétences demandées en détail.
Comme le nom de la certification l’indique, vous devez savoir administrer un cluster Kubernetes. Vous devez naturellement connaître et comprendre son architecture, savoir l’installer et le configurer.
Programme | Ce qu'il faut savoir |
---|---|
Gérer RBAC (Role Based Access Control) | Savoir créer, modifier et supprimer des RBAC |
Utiliser Kubeadm pour installer un cluster basique Kubernetes | Être capable de créer un cluster Kubernetes avec l’outil kubeadm |
Gérer un cluster Kubernetes hautement disponible | Savoir ajouter des noeuds au cluster et configurer le cluster pour le rendre hautement disponible |
Provisionner l’infrastructure sous-jacente pour déployer un cluster Kubernetes | Être capable de préparer le terrain à l’installation d’un cluster Kubernetes (réseau, stockage, dépendances, etc.) |
Réaliser une montée de version du cluster Kubernetes en utilisant Kubeadm | Savoir réaliser une montée de version d’un cluster Kubernetes. N’oubliez pas d’upgrade les noeuds: conservez ce lien |
Implémenter la sauvegarde et la restauration de ETCD | Comme son nom l’indique il faut savoir sauvegarder et restaurer ETCD, je vous conseille de vous entraîner et de sauvegarder ce lien de documentation précieusement |
Kubernetes, en tant qu’orchestrateur, apporte notamment des fonctionnalités de scaling et de gestion des ressources systèmes. Pour assurer la disponibilité de ses applications, l’administrateur se doit de comprendre les concepts qui permettent cette prouesse et surtout de savoir les configurer techniquement.
Programme | Ce qu’il faut savoir |
Comprendre les déploiements et comment réaliser des mises à jour continue et des retours en arrière | Savoir faire des rollbacks et rollouts de déploiements |
Utiliser des ConfigMaps et des Secrets pour configurer les applications | Savoir créer, modifier et supprimer des variables & secrets au travers d’objets configmaps et secrets et les mettre à disposition d’un pod |
Savoir comment mettre à l'échelle une application | Savoir scale un pod/déploiement. Vous pouvez suivre ce tutoriel |
Comprendre les primitives utilisées pour créer des déploiements applicatifs robustes et auto-régénérants. | Savoir qu’il faut préférer des déploiements à des pods “nus”, définir des stratégies de déploiement et tagger les ressources |
Comprendre comment les limites de ressources peuvent impacter la planification des Pods | Savoir limiter les ressources attribuées à un pod et comprendre leurs impacts |
Connaissance de la gestion des manifests et des outils de création de modèles communs | Savoir créer, modifier et appliquer des manifests Kubernetes |
Les manifests Kubernetes sont des composants que vous devez savoir lire et manipuler. Vous pouvez trouver des manifests de tous les objets Kubernetes dans la documentation officielle. Vous pouvez les générer à partir de commandes (pas tous les objets) ou récupérer les manifests d’objets existants dans le cluster :
Générer un manifest :
# Générer un manifest de pod avec run
kubectl run <pod_name> --image=nginx --dry-run=client -o yaml > pod.yaml
# Générer un manifest de déploiement avec create
kubectl create deployment <deployment_name> --image=nginx --dry-run=client -o yaml > deployment.yaml
Récupérer un manifest :
kubectl get secret <secret_name> -o yaml > secret.yaml
Créer un objet à partir d’un manifest :
kubectl create -f ./<manifest_name>
kubectl apply -f ./<manifest_name>
Au sein d’un cluster Kubernetes, des éléments sont amenés à communiquer, des flux à être routés et des points de terminaison à être exposés. Cette partie insiste sur les différents concepts réseaux de Kubernetes.
Programme | Ce qu’il faut savoir |
Comprendre la configuration de la mise en réseau de l'hôte sur les nœuds du cluster | Comprendre le réseau avec Kubernetes |
Comprendre la connectivité entre les pods | Comprendre le réseau Kubernetes et savoir créer des politiques réseaux adéquates pour limiter les flux au strict nécessaire. |
Comprendre les types de services et les points de terminaison ClusterIP, NodePort, LoadBalancer | Comprendre l'exposition externe des ressources |
Savoir utiliser les contrôleurs Ingress et les ressources Ingress | Savoir créer et configurer des Ingress Comprendre les Ingress Controller |
Savoir configurer et utiliser CoreDNS | Comprendre la résolution de nom interne à Kubernetes |
Choisir un plugin d'interface réseau de conteneur (CNI) approprié | Savoir choisir une CNI en fonction de son besoin |
La partie réseau représente 20% du contenu de l’examen. Il y a de fortes chances que l’on vous demande de créer au moins une politique réseau, un point de terminaison ou un ingress.
Je vous offre ce lien de documentation qui possède la commande d’installation du plugin réseau Weave : https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/
La question de la gestion du stockage représente 10% du contenu de l’examen. Savoir créer des espaces de stockage et les mettre à disposition d’un pod peut paraître simple mais demande de comprendre plusieurs termes et mécaniques.
Programme | Ce qu’il faut savoir |
Comprendre les classes de stockage et les volumes persistants | Documentation classes de stockage Documentation des volumes persistants |
Comprendre le mode de volume, les modes d'accès et les politiques de récupération des volumes | Documentation sur le mode de volume Documentation sur les modes d’accès Documentation sur les politiques de récupération des volumes |
Comprendre la primitive de revendication de volume persistant | Savoir créer un PVC (Persistent Volume Claim) à partir d’un manifest YAML et l’afficher |
Savoir configurer des applications avec stockage persistant | Savoir brancher un pod avec un stockage persistant |
La compétence la plus importante d’un administrateur est sa capacité à résoudre les problèmes. Kubernetes est une usine relativement complexe dont il faut comprendre les mécaniques et l’emplacement de l’information pertinente vis-à-vis d’une défaillance. Lors de l’examen vous serez amené(e) à réaliser du live debug.
Programme | Ce qu’il faut savoir |
Évaluer la journalisation des clusters et des nœuds | Savoir trouver l’origine d’une défaillance du Cluster |
Comprendre comment surveiller les applications | Savoir lire et comprendre les logs d’un pod, trouver l’origine d’une défaillance |
Gérer les journaux stdout et stderr du conteneur | Afficher les logs d’un pod |
Résoudre l'échec de l'application | Comprendre les logs d’un pod |
Résoudre la défaillance d'un composant de cluster | Savoir trouver l’origine d’une défaillance du Cluster |
Résoudre les problèmes de mise en réseau | Trouver l’origine d’un problème réseau. Faire attention aux sélecteurs et ports des services et règles Ingress |
Voici la liste des commandes qui peuvent vous êtres utiles pour identifier la cause d’un dysfonctionnement sur un cluster Kubernetes :
Pour essayer de trouver la défaillance d’une application :
kubectl get pods
kubectl describe pod <pod_name>
kubectl logs -f <pod_name>
kubectl get endpoints <service_name>
kubectl exec <pod_name> -- <command>
Il y a un travail important de raisonnement pour établir l’origine d’une défaillance et sa solution. C’est à ce moment que vos connaissances théoriques de Kubernetes et votre capacité d’analyse seront mises à l’épreuve.
Kubernetes propose aussi une page de documentation pour vous aider à trouver l’origine de la défaillance d’une application : https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application/
Il existe aussi ce diagramme qui peut vous apprendre les mécanismes logiques de débugging d’un déploiement (mais il ne peut pas être consulté lors de l’examen) : https://learnk8s.io/troubleshooting-deployments
Pour essayer de trouver la défaillance du control plane :
kubectl get nodes
kubectl get pods -n kube-system
service kube-apiserver status
service kube-controller-manager status
service kube-scheduler status
service kubelet status
service kube-proxy status
kubectl logs kube-apiserver-master -n kube-system
journalctl -u kube-apiserver
Kubernetes propose aussi une page de documentation pour vous aider à trouver l’origine d’une défaillance Cluster : https://kubernetes.io/docs/tasks/debug-application-cluster/debug-cluster/
Pour essayer de trouver la défaillance d’un noeud :
kubectl get nodes
kubectl describe node <node_name>
top
df -h
service kubelet status
journalctl -u kubelet
openssl x509 -in /var/lib/kubelet/worker-1.crt -text
Il existe 2 solutions pour se former :
Si vous souhaitez vous faire accompagner dans la préparation de la CKA ou, plus globalement, monter en compétence sur Kubernetes, sachez que WeScale Training vous propose un parcours de formation progressif et immersif sur le sujet. À travers des cours, des conseils, des retex de nos consultants-formateurs et des labs, ce parcours de formation vous permet de gagner en maîtrise sur tous les aspects d'une application conteneurisée et exploitée sur Kubernetes et d'aller passer votre CKA sereinement.
Si vous choisissez la voie de l'auto-formation, je vous conseille cette formation vidéo de Udemy. Le cours est agrémenté d’exercices sur de vrais clusters Kubernetes. Des examens blancs vous sont proposés à la fin de la formation, ils sont intéressants à réaliser, notamment pour se confronter à la montre.
Comme évoqué précédemment, avec l’achat de la CKA vous obtenez 2 sessions pour le système de simulation de CKA de killer.sh. Une session équivaut à un cluster Kubernetes disponible pendant 36h. Vous êtes mis(e) dans les conditions réelles de l’examen, vous n’avez que 2h pour répondre aux questions. Ensuite vous aurez accès aux réponses. Vous pouvez continuer ou réinitialiser le cluster. Les 2 sessions contiennent le même pool de questions : vous avez exactement les mêmes pour chaque session. Les examens de killer.sh sont plus difficiles que l’examen réel, il est très complexe de le réussir dans le temps imparti. Je vous conseille néanmoins d’exploiter ces 2 sessions à leur maximum, les questions étant très similaires à celles de l’examen.
À mes yeux, les 2 sessions offertes avec l’achat du bon de passage sont suffisantes pour entreprendre l’examen sereinement mais si vous en ressentez le besoin n’hésitez pas à acheter d’autres sessions (~30€).
Lors de l'examen, vous l’avez compris, le temps est précieux, vous devrez faire en sorte d’optimiser votre temps au maximum.
Outre le fait de s’être formé(e) correctement et de savoir naviguer dans la documentation, vous pouvez aussi préparer des raccourcis vers les pages que vous serez amené(e) à consulter lors de l’examen. Voici la liste des sites autorisés, enregistrez-les :
Détail important à rappeler, vous n’avez le droit d’ouvrir qu’un seul onglet en plus que de celui de l’examen !
N’hésitez pas à préparer des liens précis de documentation comme ceux concernant les networks policies, les secrets, le cheatsheet, etc. que vous serez sûrement amené(e) à consulter. Je vous ai donné plusieurs liens de documentation tout le long de cet article, sauvegardez ceux qui vous paraissent les plus pertinents à vos yeux. Faites bien attention lorsque vous cliquez sur un lien : celui-ci peut vous rediriger vers des sites externes non autorisés à l’accès lors de l’examen !
Vous pouvez aussi, dès le début de l'examen, préparer des alias de commandes pour vous faire gagner du temps. Certains vous sont fournis dans le cheatsheet Kubernetes et donc consultables lors de l’examen. Si vous souhaitez utiliser des alias, entraînez-vous avec, ne commencez pas à les utiliser lors de l’examen.
Un dernier point de précision : maîtriser vi est un must have qui vous permettra de gagner un temps précieux. Il existe de nombreux tutoriels pour apprendre et maîtriser vi. Pour s’améliorer de manière ludique je vous conseille vim-adventures et l’application mobile Vim Master.
Vous êtes prêt(e), c’est le grand jour ! Vous avez trouvé une salle close où absolument personne ne vous dérangera pour les 2 prochaines heures. Votre bureau est débarrassé de tout élément autre que le clavier et votre souris. Vos appareils électroniques sont éteints. Votre caméra et micro sont fonctionnels. Vous avez votre carte d’identité à portée de main. Super !
Attention pour les linuxiens, le site pour passer l’examen peut être “capricieux” si vous utilisez Wayland. Utilisez xorg ou préférez un autre ordinateur avec Windows.
Toutes les informations concernant l’examen à distance sont ici.
Pour vérifier si votre système est conforme aux prérequis, utilisez cet outil.
Lors de l’examen vous serez amené(e) à vous connecter à différents clusters, serveurs, espaces de noms. Vous devez absolument faire attention où vous vous trouvez à chaque étape pour éviter de mettre en danger votre réussite sur un manque d’attention.
J'espère que ces précisions et conseils vous permettront de passer cet examen en toute sérénité et d’obtenir cette certification ! Bon courage à vous !
Vous souhaitez monter en compétence sur Kubernetes ? WeScale Training vous propose des formations adaptées à votre besoin : https://training.wescale.fr/formations
Le passage avec succès de la CKA vous rend éligible au passage de la CKS (Certified Kubernetes Security Specialist) et je vous invite à essayer de la passer si le domaine de la cybersécurité vous intéresse. J’ai d'ailleurs rédigé un article similaire à celui-ci sur le sujet.