Skip to content

L'objectif de cette série d'exercices est d'apprendre à démystifier Kubernetes (K8s) en s'intéressant aux concepts fondamentaux de cet orchestrateur tels que Pod, Deployment, Service et Volume. La mise en place d'un cluster K8s sur son poste de développeur sera expliquée pour réaliser les différentes manipulations

mickaelbaron/microservices-kubernetes-gettingstarted-tutorial

Repository files navigation

Tutoriel Microservices avec Kubernetes - Les bases de K8s

L'objectif de cette série d'exercices est d'apprendre à démystifier Kubernetes (K8s) en s'intéressant aux concepts fondamentaux de cet orchestrateur. Nous commencerons par expliquer comment créer un cluster K8s sur son poste de développeur afin de pouvoir manipuler les concepts tels que les Pods, les Deployments, les Services et les Volumes.

Ci-dessous sont détaillés les exercices de ce tutoriel :

  • préparer son environnement d'orchestration K8s : différentes configurations sont détaillées (avec K3d pour créer un cluster K8s avec Docker ou avec K3s pour créer un cluster K8s depuis des machines virtuelles voir physiques) ;
  • créer un premier Pod et manipuler son environnement d'orchestration K8s : créer et déployer une représentation logique de conteneurs en écrivant un fichier de configuration basé sur un objet Pod puis utiliser les outils kubectl et K9s ;
  • créer et déployer une représentation logique de Pods : créer un Deployment et gérer la montée en charge des Pods (ReplicaSets) ;
  • communiquer avec les Pods : créer et déployer des services de type ClusterIP et NodePort ;
  • communiquer avec les Pods via des règles de routage : créer et déployer un objet de type Ingress ;
  • conserver les données : créer des volumes et des volumes persistants (PersistentVolume et PersistentVolumeClaim).

Buts pédagogiques : mettre en place un cluster K8s, créer un Pod, communiquer avec un Pod, partager des données entre des Pods, utiliser des outils d'administration (kubectl et K9s).

Préparer son environnement de test : prérequis matériels et logiciels

Kubernetes = K3s + K3d

Avant de démarrer cette série d'exercices, veuillez préparer votre poste de développeur en installant les outils suivants :

  • Un PC ou un Mac avec au minimum 8 Go de mémoire et les options de virtualisation actives ;
  • Docker ;
  • Editeur de texte : vim, emacs ou VSCode ;
  • cURL.

Récupérer le contenu de ce dépôt :

$ git clone https://github.com/mickaelbaron/microservices-kubernetes-gettingstarted-tutorial

Choisir votre environnement d'orchestration Kubernetes :

Seul un environnement est nécessaire pour réaliser les expérimentations de cette série d'exercices.

Ce tutoriel a été testé avec les systèmes suivants :

  • macOS Sonoma ;
  • Linux Ubuntu 20, Debian 11.

Attention si vous réalisez cette série d'exercices dans le cadre d'une formation avec plusieurs participants. Il est fortement recommandé d'utiliser un registre d'images Docker privé pour éviter les limites imposer par l'utilisation de Docker Hub. En effet, chaque nœud de votre cluster K8s devra télécharger plusieurs images Docker et la limite imposée par Docker pour récupérer des images (100 en anonyme et 200 pour un compte gratuite toutes les six heures) peut être rapidement atteinte.

Ressources

Retrouver les précédents tutoriels sur le sujet des conteneurs :

Pour aller plus loin, vous pouvez consulter les ressources suivantes :

Remerciements

L'apprentissage de Kubernetes m'a pris un certain temps et j'ai pu compter sur de nombreuses ressources sur Internet. J'ai pu également compter sur de nombreuses personnes pour m'aiguiller à qui j'ai posé de nombreuses questions. Je voulais en profiter pour les remercier :

About

L'objectif de cette série d'exercices est d'apprendre à démystifier Kubernetes (K8s) en s'intéressant aux concepts fondamentaux de cet orchestrateur tels que Pod, Deployment, Service et Volume. La mise en place d'un cluster K8s sur son poste de développeur sera expliquée pour réaliser les différentes manipulations

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages