Aller au contenu

Master DevOps et Cloud Computing · ISET Tozeur

Orchestration de conteneurs avec Kubernetes

Concevoir, déployer, sécuriser et exploiter des applications cloud-native sur un cluster k3s, selon les pratiques DevOps et GitOps.

  • 45 hde formation
  • 3crédits ECTS
  • 4parties
  • k3scluster de TP

Syllabus

Syllabus

Site en construction

Toutes les pages existent ; celles marquées « Under construction » sont en cours de rédaction et seront complétées au fil de l'avancement du cours.

Fiche d'identification

Rubrique Description
Intitulé Orchestration de conteneurs avec Kubernetes
Public Master DevOps et Cloud Computing, semestre 2
Volume horaire 45 h (15 séances de 3 h : environ 15 h de cours, 30 h de TP)
Crédits 3 ECTS
Prérequis Linux, réseau (TCP/IP, DNS), conteneurs (Docker), YAML, notions de CI/CD
Outils de TP k3s (1 serveur + 2 agents), kubectl, Helm ; voir l'environnement VMware

Objectif général

Concevoir, déployer, sécuriser et exploiter des applications cloud-native sur Kubernetes, en autonomie, selon les pratiques DevOps et GitOps.

Acquis d'apprentissage

À la fin du cours, l'étudiant est capable de :

  • AA1 : expliquer l'architecture de Kubernetes et le modèle déclaratif (comprendre)
  • AA2 : déployer et mettre à jour des applications conteneurisées (appliquer)
  • AA3 : exposer des services et contrôler les flux réseau (appliquer)
  • AA4 : gérer configuration, stockage et sécurité (appliquer)
  • AA5 : diagnostiquer et résoudre des incidents (analyser)
  • AA6 : mettre en place observabilité et autoscaling (analyser)
  • AA7 : automatiser le déploiement par Helm, CI/CD et GitOps (créer)
  • AA8 : évaluer une architecture selon fiabilité, coût et sécurité (évaluer)

Compétences visées

Architecture du control plane et des nœuds, objets Kubernetes, réseau (CNI, Services, Ingress), stockage (CSI), modèle de sécurité (RBAC, Pod Security).

Maîtrise de kubectl, rédaction de manifestes, packaging Helm et Kustomize, administration d'un cluster k3s, pipelines CI/CD et GitOps (Argo CD), supervision (Prometheus, Grafana), dépannage.

Autonomie, rigueur (infrastructure as code, revue de pairs), travail en équipe, veille technologique.

Organisation du cours

Partie 1 : Fondations (9 h)

Présentation de la Partie 1

Chapitre Contenu Ressources
1. Architecture de Kubernetes (AA1) Du conteneur à l'orchestration, control plane, modèle déclaratif Cours · Lab 1.1 : Installer k3s et explorer le cluster · Lab 1.2 : Prise en main de kubectl
2. Pods et Deployments (AA1, AA2) Pods et cycle de vie, ReplicaSets, Deployments, stratégies de mise à jour, labels et sélecteurs Cours · Lab 2.1 : Mon premier Pod · Lab 2.2 : Deployments et mises à jour
3. Services et réseau (AA3) Services (ClusterIP, NodePort, LoadBalancer), DNS interne, Ingress et Gateway API Cours · Lab 3.1 : Exposer une application · Lab 3.2 : Ingress avec Traefik
Mini-projet 1 Application web à deux niveaux Énoncé

Partie 2 : Configuration, données et sécurité (12 h)

Présentation de la Partie 2

Chapitre Contenu Ressources
4. Configuration et ressources (AA4) ConfigMaps, Secrets, variables d'environnement et volumes de configuration, requests et limits, ResourceQuotas, LimitRanges Cours · Lab 4.1 : Externaliser la configuration · Lab 4.2 : Maîtriser les ressources
5. Stockage (AA4) Volumes, PV, PVC, StorageClass, StatefulSets, service headless Cours · Lab 5.1 : Volumes persistants · Lab 5.2 : Base de données avec StatefulSet
6. Workloads spécialisés (AA2) Jobs, CronJobs, DaemonSets, patterns multi-conteneurs (init, sidecar, ambassador) Cours · Lab 6.1 : Jobs et CronJobs · Lab 6.2 : Patterns multi-conteneurs
7. Sécurité (AA4) RBAC, ServiceAccounts, SecurityContext, Pod Security Standards, NetworkPolicies Cours · Lab 7.1 : RBAC · Lab 7.2 : Durcir un Pod · Lab 7.3 : NetworkPolicies
Mini-projet 2 Votre application trois niveaux, sécurisée et persistante Énoncé

Partie 3 : Exploitation (9 h)

Présentation de la Partie 3

Chapitre Contenu Ressources
8. Administration du cluster k3s (AA1, AA5) Haute disponibilité avec etcd embarqué, sauvegarde et restauration, mise à jour de version, maintenance des nœuds Cours · Lab 8.1 : Cluster HA · Lab 8.2 : Sauvegarde, restauration et mise à jour
9. Observabilité et dépannage (AA5, AA6) Logs, événements, probes, métriques, Prometheus, Grafana, alerting, méthodologie de diagnostic Cours · Lab 9.1 : Probes · Lab 9.2 : Monitoring · Lab 9.3 : Dépannage
10. Autoscaling et scheduling (AA6) HPA, VPA, affinités, taints et tolerations, PodDisruptionBudget Cours · Lab 10.1 : HPA · Lab 10.2 : Placement
Mini-projet 3 Exploitation d'une application sous charge Énoncé

Partie 4 : Industrialisation (15 h)

Présentation de la Partie 4

Chapitre Contenu Ressources
11. Helm et Kustomize (AA7) Charts, values, releases, templates, overlays Kustomize Cours · Lab 11.1 : Utiliser Helm · Lab 11.2 : Packager son application
12. CI/CD et GitOps (AA7) Pipeline de build et de livraison, registre d'images, principes GitOps, Argo CD Cours · Lab 12.1 : Pipeline CI · Lab 12.2 : GitOps avec Argo CD
13. Cloud managé et haute disponibilité (AA8) Kubernetes managé (AKS, EKS), modèle de responsabilité partagée, coûts, TLS et exposition publique Cours · Lab 13.1 : Haute disponibilité multi-zones · Lab 13.2 : Exposition sécurisée avec TLS
14. Extensibilité (AA8) CRD, opérateurs, service mesh (aperçu) Cours · Lab 14.1 : CRD et opérateur · Lab 14.2 : Découverte du service mesh
15. Projet fil rouge et synthèse (AA1 à AA8) Application microservices complète, soutenance Synthèse · Projet fil rouge

Méthodes pédagogiques

Cours interactifs courts, TP guidés sur cluster k3s, classe inversée, études de cas d'incidents, projet fil rouge en binôme. Chaque partie se termine par un mini-projet, avec une autonomie croissante (guidé, semi-guidé, autonome).

Évaluation

Modalité Pondération
Contrôle continu : TP notés et quiz 30 %
Projet fil rouge : déploiement, rapport et soutenance 40 %
Examen pratique chronométré sur cluster 30 %

Des grilles critériées sont associées à chaque acquis d'apprentissage.

Références

  • Documentation officielle : kubernetes.io et docs.k3s.io
  • M. Lukša, Kubernetes in Action
  • B. Ibryam et R. Huß, Kubernetes Patterns
  • J. Rosso et al., Production Kubernetes