Kubernetes (K8s)

Définition

Kubernetes (abrégé K8s) est une plateforme d’orchestration de conteneurs open-source développée à l’origine par Google, maintenant maintenue par la CNCF. Il automatise le déploiement, la mise à l’échelle et la gestion d’applications conteneurisées sur des clusters de machines.

Kubernetes regroupe les conteneurs en unités logiques (Pods) pour une gestion et une découverte faciles, fournissant une configuration déclarative et une automatisation.

Concepts clés

  • Pod : Unité déployable la plus petite ; un ou plusieurs conteneurs partageant réseau/stockage
  • Service : Point de réseau stable pour un ensemble de Pods (ClusterIP, NodePort, LoadBalancer)
  • Deployment : Gère les ReplicaSets pour des mises à jour déclaratives de Pods
  • ConfigMap/Secret : Données de configuration et valeurs sensibles injectées dans les Pods
  • Namespace : Cluster virtuel au sein d’un cluster physique (isolation logique)
  • Ingress : Règles de routage HTTP/HTTPS pour l’accès externe
  • PersistentVolume (PV) : Stockage provisionné par le cluster
  • PersistentVolumeClaim (PVC) : Demande de stockage par un Pod
  • Node : Une machine worker (VM ou physique) dans le cluster
  • Control Plane : Composants master (API server, scheduler, controller-manager, etcd)

Architecture

Control Plane (Master)
├── API Server (kubectl communique ici)
├── etcd (base de données d'état du cluster)
├── Scheduler (assigne les Pods aux Nodes)
└── Controller Manager

Worker Nodes
├── kubelet (agent gérant le cycle de vie des Pods)
├── kube-proxy (routage réseau)
├── Container Runtime (containerd, CRI-O)
└── Pods (conteneurs en cours d'exécution)

Objets principaux de Kubernetes

Objet Objectif
Pod Conteneur unique ou conteneurs co-localisés
Service Abstraction réseau pour les Pods
Deployment ReplicaSet géré pour les apps stateless
StatefulSet Pods gérés avec identités stables (bases de données)
DaemonSet Un Pod par Node
Job/CronJob Tâches ponctuelles/planifiées
Namespace Isolation logique des ressources
ConfigMap Configuration non sensible
Secret Données sensibles (base64-encoded)

Alternatives à Kubernetes

Outil Type Notes
Docker Swarm Orchestration de conteneurs Plus simple, Docker-native, legacy
Nomad Ordonnanceur général HashiCorp, plus simple que K8s
OpenShift Distribution K8s K8s enterprise de Red Hat
Rancher Gestion K8s Gestion multi-cluster K8s
EKS/AKS/GKE K8s managé Plan de contrôle géré par le fournisseur cloud

Termes liés

  • Docker — gestionnaire de paquets Kubernetes
  • Terraform — déploiement GitOps pour Kubernetes
  • Container Runtime — containerd, CRI-O (Kubernetes utilise l’interface CRI)

Références