Prerequis avant de commencer
Avant d'entrer dans la connaissance de Kubernetes, il est important d'avoir une certaine expérience avec les systèmes d'exploitation Linux et les conteneurs. Il serait également utile de connaître les bases de l'infrastructure en nuage et les concepts de réseau. Outils à installer:
- Docker : nécessaire pour comprendre comment fonctionnent les conteneurs
- Minikube : permet de tester Kubernetes localement sur un ordinateur personnel
- Kubectl : outil de ligne de commande utilisé pour interagir avec le cluster Kubernetes
Phase 1 : Les fondamentaux (0-2 mois)
Ce qu'il faut apprendre en premier
- Concepts de base de Kubernetes, tels que les nœuds, les pods et les services.
- Comment utiliser Kubectl pour déployer des applications sur un cluster Kubernetes.
- Comprendre les différents types de ressources disponibles dans Kubernetes.
- Utiliser l'interface web d'administration Kubernetes (Dashboard).
Ressources recommandées
Docs officiels : https://kubernetes.io/docs/home/ Cours en ligne :
- Introduction to Kubernetes by Cloud Academy (4h)
- The Complete Kubernetes Course by Udemy (8h)
- Kubernetes for Developers by Pluralsight (5h) Mini-projet à réaliser pour valider Créer un cluster local avec Minikube et déployer une application simple en utilisant des pods, des services et des déploiements.
Phase 2 : Niveau intermédiaire (2-4 mois)
Concepts avancés à maitriser
- Utiliser les volumes persistants pour stocker les données de manière sécurisée.
- Créer des clusters multinode pour une haute disponibilité.
- Configurer le réseau dans Kubernetes avec des services de type NodePort et LoadBalancer.
- Implémenter la gestion des déploiements avec des Rolling Updates.
Projet plus ambitieux
Créer un cluster Kubernetes sur un fournisseur cloud en utilisant des machines virtuelles. Déployer une application complexe qui utilise plusieurs services et dépendances.
Phase 3 : Niveau avancé (4-6 mois)
Patterns, architecture, testing, performance
- Implémenter les patterns de conception Kubernetes tels que le pattern "Deployment" pour la mise à jour des applications.
- Utiliser l'architecture serverless avec Kubernetes et des outils comme Knative ou Serverless Framework.
- Créer des tests unitaires et d'intégration pour vérifier le bon fonctionnement des composants Kubernetes.
- Optimiser les performances du cluster Kubernetes en utilisant la métrique et l'analyse.
Projet professionnel à montrer en portfolio
Créer une solution complète basée sur Kubernetes qui implémente un système de microservices. Inclure les aspects de déploiement, d'échelle et de gestion des erreurs.
Phase 4 : Expertise (6-12 mois)
Contributions open source, spécialisation
Participer à des projets open source Kubernetes en contribuant à la documentation ou en améliorant le code. Spécialiser ses compétences en un domaine spécifique comme les automatisations avec Helm ou la gestion des secrets avec Vault.
Comment se démarquer
Publier son expérience et ses réalisations sur des plateformes professionnelles comme LinkedIn ou GitHub. Organiser des conférences ou des ateliers pour partager ses connaissances et aider d'autres à maîtriser Kubernetes.
Erreurs à éviter
- Ne pas comprendre les différences entre les différents types de ressources Kubernetes (pods, services, déploiements, etc.) et utiliser la mauvaise ressource pour un problème donné.
- Ignorer la sécurité en utilisant des configurations par défaut qui sont trop permissives.
- Ne pas tester son cluster Kubernetes localement avant de le déployer dans un environnement de production.
- Ignorer les performances en ne pas surveiller et optimiser le cluster Kubernetes.
- Ne pas suivre les meilleures pratiques pour la gestion des secrets et des mots de passe.
Ressources recommandées
Top 5 livres :
- "Kubernetes in Action" par Marko Luksa, Adrian Cockcroft et Joe Bedra
- "Kubernetes Design Patterns" par John Willis
- "Kubernetes for the Absolute Beginner" par Daniel Kowalski
- "Kubernetes Cookbook" par Yash Agrawal and Chandra Prakash
- "Kubernetes: Up & Running" by Brendan Burns, Kelsey Hightower et Joe Bedra
Top 5 cours en ligne :
- Introduction to Kubernetes by Cloud Academy (4h)
- The Complete Kubernetes Course by Udemy (8h)
- Kubernetes for Developers by Pluralsight (5h)
- Learn Kubernetes in 60 Minutes by DigitalOcean (1h)
- Deploying Applications with Kubernetes on Google Cloud by Google Cloud
Top 5 chaînes YouTube :
- TheNewStack
- Red Hat Developer
- Kube Academy
- Cloud Native Computing Foundation
- Docker Blog