Aller au contenu principal

Introduction à Kubernetes


1 - Qu'est-ce que Kubernetes ?

Kubernetes (souvent abrégé K8s) est une plateforme open-source d'orchestration de conteneurs développée initialement par Google. Elle automatise le déploiement, la mise à l'échelle et la gestion des applications conteneurisées.

Pourquoi "K8s" ?

Le nom "K8s" vient de l'abréviation de Kubernetes : K + 8 lettres + s. Cette convention est courante dans le monde de la tech (i18n pour internationalization, l10n pour localization).

Le problème que Kubernetes résout

Sans orchestration, la gestion de conteneurs devient rapidement complexe :

DéfiSans KubernetesAvec Kubernetes
DéploiementManuel, scripts personnalisésDéclaratif, automatisé
ScalingComplexe, intervention manuelleAutomatique (HPA)
Haute disponibilitéConfiguration manuelleNative
Mises à jourTemps d'arrêtRolling updates
RécupérationIntervention manuelleSelf-healing

2 - Historique et évolution

Les origines chez Google

Kubernetes tire ses racines de Borg et Omega, les systèmes internes de Google qui gèrent des milliards de conteneurs chaque semaine.

La Cloud Native Computing Foundation (CNCF)

En 2015, Google a fait don de Kubernetes à la CNCF, une fondation qui héberge de nombreux projets cloud-native :

  • Kubernetes - Orchestration
  • Prometheus - Monitoring
  • Envoy - Service mesh
  • Helm - Package manager
  • etcd - Base de données distribuée

3 - Concepts clés

Le modèle déclaratif

Kubernetes utilise un modèle déclaratif : vous décrivez l'état souhaité de votre application, et Kubernetes s'assure de maintenir cet état.

# Exemple : Déclarer un déploiement avec 3 réplicas
apiVersion: apps/v1
kind: Deployment
metadata:
name: mon-application
spec:
replicas: 3 # État souhaité : 3 instances
selector:
matchLabels:
app: mon-app
template:
metadata:
labels:
app: mon-app
spec:
containers:
- name: app
image: nginx:latest
ports:
- containerPort: 80

Ressources Kubernetes principales


4 - Cas d'utilisation

Microservices

Kubernetes excelle dans le déploiement d'architectures microservices :

CI/CD et GitOps

Kubernetes s'intègre parfaitement dans les pipelines CI/CD :

  • GitHub Actions → Build d'images Docker
  • ArgoCD → Déploiement GitOps
  • Flux → Continuous Delivery

Batch Processing et Jobs

Pour les traitements par lots :

apiVersion: batch/v1
kind: Job
metadata:
name: data-processing
spec:
completions: 10
parallelism: 3
template:
spec:
containers:
- name: processor
image: data-processor:v1
restartPolicy: Never

5 - Kubernetes vs alternatives

Comparaison avec d'autres orchestrateurs

CritèreKubernetesDocker SwarmNomad
ComplexitéÉlevéeFaibleMoyenne
FonctionnalitésTrès complètesBasiquesComplètes
CommunautéÉnormeMoyenneCroissante
ÉcosystèmeTrès richeLimitéBon
Courbe d'apprentissageRaideDouceMoyenne
Adoption entrepriseStandardLimitéeCroissante

Quand choisir Kubernetes ?

Kubernetes est idéal pour :

  • Applications de grande envergure
  • Environnements multi-cloud
  • Équipes DevOps matures
  • Besoins de haute disponibilité

Alternatives à considérer :

  • Docker Swarm : Pour des déploiements simples
  • Nomad : Pour l'hétérogénéité (VMs + conteneurs)
  • ECS/Fargate : Si 100% AWS

6 - L'écosystème Kubernetes


7 - Terminologie essentielle

TermeDéfinition
ClusterEnsemble de machines (nodes) gérant des conteneurs
NodeMachine physique ou virtuelle dans le cluster
PodPlus petite unité déployable (1+ conteneurs)
ServiceAbstraction réseau pour accéder aux Pods
DeploymentGère le cycle de vie des Pods
NamespaceIsolation logique des ressources
kubectlCLI pour interagir avec Kubernetes
ManifestFichier YAML décrivant une ressource

Résumé

Dans ce chapitre, nous avons découvert :

  • L'origine de Kubernetes chez Google (Borg)
  • Le modèle déclaratif qui définit l'état souhaité
  • Les cas d'utilisation : microservices, CI/CD, batch
  • L'écosystème riche autour de Kubernetes
  • La terminologie de base à maîtriser

Prochaine étape

Dans le prochain chapitre, nous explorerons en détail l'architecture de Kubernetes et le rôle de chaque composant.

→ Chapitre suivant : Architecture Kubernetes


← Retour à la table des matières