Kubernetes

Kubernetes pour développeurs

Objectifs de la formation

  • Publier à chaud les modifications de code
  • Maîtriser les patterns d’architecture Kubernetes
  • Packager ses applications Kubernetes
  • Construire une chaîne de CI/CD pensée pour kubernetes
  • Gérer les autorisations RBAC de l’application
  • Bien gérer ses données
  • Assurer un suivi en production
  • Concevoir des applications résilientes et scalables


Programme de la formation

Introduction

  • Rappel des concepts fondamentaux de Kubernetes : Cluster, Nodes, Pods, Deployments, Services
  • Configuration de l'environnement de développement
  • Outil en ligne de commande kubectl
  • Helm
  • Rechargement de code à chaud
    • Skaffold : Détection automatique des changements et rechargement
    • Tilt : Outil d’orchestration facilitant le développement

Détails d’un Pod

  • Structure d’un Pod
    • Containers
    • Volumes (persistants et éphémères)
    • Réseau (IP, DNS, ports)
    • Variables d’environnement et ConfigMaps
  • Exploration d’un Pod avec kubectl

Stratégies de déploiement

  • Rolling Update : déploiement progressif
  • Déploiement bleu/vert
  • Stratégie de déploiement de contrôle de validité
  • Stratégie de test A/B
  • Paramétrage d’un Deployment pour chaque stratégie

Automatiser le déploiement avec Helm

  • Présentation de Helm et des charts
  • Création et structure d’un chart Helm
  • Gestion des valeurs (values.yaml) et des releases (helm upgrade)
  • Déploiement d’une application complète avec Helm

GitOps multi-environnements et pipeline CI/CD

  • Principe du GitOps
  • Comment gérer des clusters multiples avec GitLab
    • Créer des groupes hiérarchiques GitLab
    • Placer KubeConfig dans les variables d’environnement au niveau du groupe
    • Déployez votre application à l’aide de GitLab CI
    • Contrôle d’accès
    • Encapsuler le code du pipeline CD

Gestion des identités et secrets

  • Comprendre ConfigMaps
  • Créer et consommer des Secrets pour stocker et accéder aux données confidentielles
  • Protéger ses secrets dans kubernetes avec Kubeseal
  •  Contrôle d’accès RBAC
    • Rôles et RoleBindings : granularité des accès.
    • ClusterRoles et ClusterRoleBindings.

Gestion des données : Stateless vs Stateful

  • Différences entre applications stateless et stateful.
  • StatefulSets vs Deployments.
  • Stratégies de gestion des bases de données sous Kubernetes.

Volumes et systèmes de fichiers

  • Persistent Volumes (PVs) et Persistent Volume Claims (PVCs).
  • Classes de stockage et dynamic provisioning.

Monitoring, Logs et Résilience

  • Monitoring et health checks applicatif
    • Readiness, Liveness et Startup probes.
    • Intégration avec Prometheus et Grafana.
  • Logs et tracing applicatif
    • Utiliser les logs de conteneurs
    • Centralisation des logs avec Fluentd, Elasticsearch et Kibana (EFK)
    • Distributed tracing avec OpenTelemetry
  • Stratégie d’auto-healing (mécanismes d’auto-réparation dans Kubernetes)
    • RestartPolicy
    • ReplicaSets
    • Horizontal Pod Autoscaler.
  • Concept du chaos engineering
    • Simulation de pannes et analyse de résilience.
Please login to get access to the quiz
Kubernetes pour profils Ops (Prev Lesson)
(Next Lesson) Rancher, gérer vos clusters Kubernetes
Back to Kubernetes
Public

Développeurs, Tech leads, architectes applicatifs, architectes cloud, SRE

Pré-requis

Administration système Linux, connaissances générales en conteneurisation et pratique de kubernetes