Faut que tu passes ta certification Kubernetes !
T'as entendu parler de la certification Kubernetes (K8S) et tu te dis "mmmh, à quoi ça sert une certification Kubernetes ? Est-ce vraiment utile ? Pourquoi se faire du mal avec ce truc ?". Moi aussi, je me suis fait avoir par cette vidéo du youtubeur "cocadmin" dans laquelle il explique comment il a obtenu une certification en seulement 7 jours.
On va démêler tout ça ensemble 😎.
A quoi sert une certification ?
Qu'on se le dise, Kubernetes est pas mal à la mode ces derniers temps. Et bien que j'ai une tendance à me méfier des modes (t'sais, quand c'est la mode, c'est peut-être trop tard pour rejoindre la hype), j'ai bien l'impression que K8S est là pour rester sur nos infrastructures au même titre que le "cloud". Alors, à quoi ça sert de passer une certification Kubernetes ?
- L'égo : on ne va pas se mentir, ça flatte l'égo, et c'est bon de flatter son égo 😇
- Les compétences : tu vas avoir des bases solides pour la suite de ton aventure avec Kubernetes
- La carrière : les compagnies aiment bien les certifications, ça fait joli auprès de leurs clients et ça augmente ton employabilité
- L'argent : surtout si tu as plusieurs certifications, ça confirme plusieurs de tes compétences et ça peut faire levier lors de la négociation de ton salaire ou de tes tarifs
- La mise à niveau : Kubernetes évolue rapidement et ça va t'aider à rester à jour avec les dernières tendances et pratiques de l'industrie
- L'apprentissage : lorsqu'on exerce notre activité, on tourne généralement autour d'acquis précédents qu'on complète avec des petits choses ci et là (pour Linux par exemple un jour t'as besoin de la commande awk, un autre jour de la commande sed, etc.). Bien là on te demande de connaître toutes ces bases ce qui fait que tu as au moins une idée des outils que tu peux utiliser pour atteindre tes objectifs.
Bref, une certification Kubernetes ça apporte plein d'avantages, autant sur le plan technique que pour ta carrière. Obtenir des certifications est une forte démonstration de notre envie et de notre capacité à apprendre : c'est un investissement malin pour tout pro qui bosse dans l'écosystème cloud et conteneurs.
C'est quoi les différentes certifications Kubernetes ?
Il existe à ce jours 5 certifications K8S supportées par la Cloud Native Computing Foundation (CNCF), dont 2 (KCNA et KCSA) sont plus accessibles et idéales pour une compréhension globale, tandis que les 3 autres (CKA CKAD CKS) sont particulièrement appréciées dans le marché du travail.
KCNA (Kubernetes and Cloud Native Associate)
Une excellente certification pour commencer, elle se concentre sur les concepts de base de Kubernetes et les technologies Cloud-Native. Elle est recommandée pour les individus qui souhaitent acquérir une compréhension solide des fondamentaux de Kubernetes avant de poursuivre des certifications plus avancées.
KCSA (Kubernetes and Cloud Security Associate)
Aussi une certification pré-professionnelle, elle mise sur les bases en sécurité des environnements Kubernetes et Cloud-Native. Un bon moyen de démontrer son expertise en matière de sécurité.
CKA (Certified Kubernetes Administrator)
Concentrée sur la configuration, la maintenance et la gestion des clusters Kubernetes. Étant plus avancée, elle est destinée généralement aux administrateurs de systèmes et aux professionnels de DevOps.
CKAD (Certified Kubernetes Application Developer)
Ici on vient appuyer notre expertise en développement d'applications pour Kubernetes. Souvent comparée à la CKA, elle sera votre meilleur atout si vous administrez des clusters gérés dans une stratégie DevOps.
CKS (Certified Kubernetes Security Specialist)
Cette certification est associée à la sécurité des clusters et des applications Kubernetes. Elle aborde principalement des sujets de sécurité indispensables à la pérennité d'une infrastructure Kubernetes
Bon, et comment j'apprends ?
Les ressources pour apprendre se multiplient chaque année et il y en a forcément une qui correspond à ta méthodologie d'apprentissage. On parle ici de livre, de documentation et même de cours segmentés par de la pratique. Je vais commencer par ce qui a fonctionné pour moi et ensuite te suggérer d'autres solutions (moment de flex : eh oui, j'ai la CKAD et la CKA, bientôt la CKS 😇).
Les ressources que j'ai utilisé
- k3s : j'ai commencé par essayer de me monter un petit cluster sur trois VPS. Trois controlplanes qui jouaient aussi le rôle de worker (non recommandé en terme de sécurité). C'était une expérience chouette, mais je ne savais pas vraiment ce que je faisais et surtout je ne savais pas comment l'exploiter
- killercoda.com : c'est par ce site que j'ai fait mes premiers pas sous Kubernetes. Killercoda est une plateforme supportée par killer.sh, un service en ligne entre autre pour passer des examens blancs de certification Kubernetes. Killercoda offre l'accés gratuit à des exercices assez simples sur lesquels tu vas pouvoir pratiquer la ligne de commande Kubernetes. Ils proposent même l'accès à un "bac à sable", une installation virtuelle de Kubernetes où tu peux t'essayer.
- KodeKloud : bon, c'est là que les choses sérieuses ont commencées pour moi. Je l'ai découvert dans une entreprise où je travaillais et ça a été le coup de coeur, la motivation dont j'avais besoin pour apprendre différentes technologies liées à la stratégie DevOps. C'est aussi cette plateforme qui m'a donné l'énergie de préparer ma certification, et ça a été un succés ! En résumé, tu visionnes une vidéo qui dure entre 2 et 15 minutes, puis tu as un "lab" pour pratiquer. Malheureusement, tout est en anglais, aucun contenu en français à ce jour.
Les autres ressources utiles
- Les cours de la Linux Foundation que tu peux acheter au moment de ta certification
- Les livres publiés par O'Reilly sont considérés comme les meilleurs pour ceux qui apprennent plus efficacement en lisant
- Il y a bien sûr les plateformes de cours tels que Udemy, Pluralsight, etc.
- Les formations en présentiel ou a distance
Et pour aller plus loin ?
Ça y est la passion est à son comble et tu veux vivre Kubernetes, manger Kubernetes et dormir Kubernetes ? C'est sûrement le moment de te faire un cluster et de jouer avec. Explorons les différentes options qui s'offrent à toi.
Les hébergeurs avec Kubernetes "managé"
Il existe plusieurs hébergeurs qui offrent du cluster Kubernetes managé : ils te partagent leurs controlplanes et tu payes pour les noeuds. L'avantage c'est que tu n'as pas à te casser la tête pour monter ton cluster et comprendre, en contre-partie tu ne peux pas vraiment participer à ce qui se passe en coulisses. Ça réduit les maux de tête liés à la maintenance et aux mises à jour, mais ta spécialisation sera plus concentrée sur l'exploitation des ressources (parfait pour la CKAD). Voici une courte liste :
J'ai testé | Je n'ai pas testé |
---|---|
Civo | Scaleway |
DigitalOcean | Vultr |
Les hébergeurs pas trop chers et viables pour K8S
Il y a bien des hébergeurs abordables pour monter ton cluster Kubernetes. Si tu te lances dans cette aventure, pense bien à te créer un réseau privé par lequel tes noeuds incluant controlplanes et workers communiqueront ; ça t'offre généralement un bénéfice de latence mais surtout ça gardes privé les communications réseaux plus sensibles. Voyons quelques options :
- Hetzner Cloud ⭐ : mon coup de coeur ! Pas trop cher, performant, disponible en Europe et en Amérique du Nord, une expérience OpenStack originale, et même des serveurs arm pour l'Europe.
- BuyVM : hébergeur VPS, ils sont très réputés et très stables. Ils supportent la fonctionnalité de réseaux privées et leur stockage monté n'est pas cher. Il n'y aura pas de contrôleur pour automatiser des tâches avec eux et ils sont régulièrement en rupture de stock.
- Scaleway : hébergeur français connu, leur offre est variée. Je ne les ai jamais testé depuis leur nouveau nom.
- OVH Public Cloud : on ne les présente plus ˆˆ. Je recommanderai d'accéder à l'interface OpenStack Horizon pour plus de fluidité.
L'auto-hébergement chez toi
J'ai commencé à héberger mon cluster Kubernetes chez moi. J'ai une connection internet 3 gbps up et down (mais réseau 1 gbps à ce jour) et je fais passer du traffic par un tunnel Cloudflared pour pouvoir choisir les services que je veux exposer.
Pour ton cluster, voici quelques suggestions :
Mini PC / Intel Nuc : de plus en plus à la mode pour les homelab, les mini PC ont l'avantage de consommer moins car ils embarquent souvent du matériel de basse consommation. Entre autre populaire il y a le Intel N100 qui offre un rapport qualité / prix / conso très compétitif, de chez Trigkey, Minisforum ou Beelink par exemple. J'ai vu des setups intéressant qui utilisent par exemple l'USB 4 / l'USB-C pour faire la connection (très rapide) entre les noeuds, ou encore qui utilisent des planches de bois perforés pour pouvoir mettre le cluster à la vertical et donc prendre moins de place.
Mac Intel : souvent réputé pour leur faible consommation, leur refroidissement et leur finition, ça se trouve en occasion à des prix correctes. C'est un bon compromis dans l'ensemble, potentiellement un peu plus cher qu'un mini PC et on peut discuter des spécifications comparées à un mini PC.
Des anciens serveurs : souvent fournit avec beaucoup de coeurs et de ram pour un prix très bas, ils ont tendance à compenser leur faible coût par leur consommation électrique. Mais au moins, t'as l'impression d'être en condition réelle avec du matériel de serveur.
Raspberry Pi : on ne les présente plus vraiment. Compacte, faible consommation et grosse communauté, les RPi ont longtemps été très intéressants. Le prix augmente si tu veux un boitier, du stockage et une alimentation pour chacun en se rapprochant du prix d'un Mini PC avec processeur un peu plus performant, donc si tu veux te lancer sur ces petites machines ça peut être intéressant d'optimiser leur agencement pour réduire le coût par unité ;).
Et quand tu seras prêt à te lancer, tu pourras suivre mon repository GitHub avec toutes mes sources qui servent à exploiter mon cluster personnel : https://github.com/o-be-one/kubernetes-at-home
L'hébergement en local dans ta machine
Bon là, tu veux vraiment tester mais t'as seulement ton ordinateur. Ben aucun problème il existe plusieurs solutions et souvent il faudra commencé par avoir Docker installé dans ta machine, ou un logiciel de virtualisation comme VirtualBox. Par ici pour les quelques solutions que j'ai en tête :
kind : c'est le seul que j'ai vraiment testé et il me sert pour des environnements de développement. Très simple, tu peux faire un fichier de configuration pour indiquer à quoi devrait ressembler ton cluster local avec la configuration de chaque noeud que tu voudrais. En se déployant il va ajouter la configuration à ton système et il ne te restera plus qu'à faire tes tests.
Minikube : possiblement un des plus populaires, il permet de déployer un cluster contenant un seul noeud. Il offre avec ça plusieurs fonctionnalités avancées comme le support des addons et le montage de volumes.
MicroK8s : souvent considéré comme l'une des solutions les plus simples, cette solution venant de Canonical (les propriétaires de Ubuntu) propose un petit installateur pour chaque système d'exploitation.
Installer K8S dans plusieurs VMs : bon là tu vas choisir ton poison, et ça te donnera probablement quelque chose de plus proche des conditions réelles. T'as plusieurs choix, tu peux évidemment mettre MicroK8s ou t'essayer avec kubeadm par exemple. Si ton style c'est l'aventure, alors peut-être que Talos pourrait t'intéresser ?
Conclusion
C'est au moment où j'ai eu du temps libre que j'ai été curieux au sujet de Kubernetes, étant donné l'intérêt que j'ai pour les conteneurs depuis plus de 10 ans. Et comme je voulais commencé à travailler sur cette technologie, j'ai commencé à me renseigner sur les certifications. Bon, je t'avoue que je doutais de moi et la première certification m'a demandé de la discipline et de l'énergie mentale. Mais, le résultat est sans appel : l'intérêt pour mon profile a beaucoup augmenté surtout depuis que j'ai la CKA. J'ai la CKAD et la CKA, et dans mon enthousiasme grandissant pour les certifications j'étudie en ce moment la CKS. Je vise la reconnaissance "Kubestronaut", sortie il n'y a pas si longtemps et qui nécessite d'avoir les 5 certifications K8S en cours de validité. Maintenant je suis convaincu que les certifications ont une valeur personnelle (estime de soi, pratique de l'apprentissage, valorisation professionnelle) et ça me motive pas mal à essayer d'autres certifications (AWS DevOps peut-être ?).
Vu que t'as tout lu de ce billet de blog, je suis certain que tu cherches des raisons et de la motivation pour passer une certification Kubernetes. N'attend plus et lance toi, cet intérêt indique que c'est sûrement le bon moment :). Vas-y avec un rythme assez souple pour commencer, je faisais 1h par jour mais tu peux très bien faire 2 fois 1h par semaine aussi, chacun son rythme. Bonne chance ˆˆ !