← Retour

Inception of Things — Introduction à Kubernetes

Mise en place d’environnements Kubernetes légers : cluster K3s via Vagrant, déploiement de 3 applications web derrière un Ingress, puis cluster K3d avec pipeline GitOps piloté par Argo CD. Projet orienté systèmes/DevOps : IaC, conteneurisation, CI/CD.

  • Kubernetes
  • GitOps
  • DevOps

Contexte & objectif

Projet scolaire d’initiation Kubernetes en quatre temps :

  • cluster K3s orchestré par Vagrant.
  • exposition de trois applications via un Ingress.
  • cluster K3d avec Argo CD pour un flux GitOps (déploiement versionné depuis un dépôt GitHub).
  • GitLab auto-hébergé pour opérer le pipeline GitOps en interne.

Objectif : pratiquer un cycle complet infra → déploiement → mise à jour continue.

Architecture & mise en œuvre

Partie 1 — K3s & Vagrant

  • 2 machines provisionnées avec Vagrant :
  • Server (contrôleur) et ServerWorker (nœud agent) avec IPs privées dédiées.
  • K3s installé en mode contrôleur sur la première VM, mode agent sur la seconde.

Partie 2 — K3s & 3 applications

  • Une VM K3s (server) avec Ingress configuré.
  • Trois applications web accessibles via la même IP mais routées par Host via l’Ingress.
  • Scaling avec 3 replicas sur une des application.

Partie 3 — K3d & Argo CD

  • Provision d’un cluster K3d.
  • Argo CD synchronise l’environnement de développement depuis un dépôt GitHub qui héberge une application.
  • L’application packagée dispose de deux versions (v1 / v2).
  • Mise à jour : modification du tag d’image dans le dépôt GitHub → Argo CD détecte, synchronise, et l’application passe de la v1 à la v2.

Partie 4 — GitLab auto-hébergé & GitOps interne

  • Déploiement d’un GitLab via un Helm chart dans le même cluster pour remplacer GitHub.
  • Intégration avec Argo CD : commits → changement de tag d’image → sync automatique côté cluster.

Compétences développées

  • Infra as Code : Vagrantfiles, provisioning, etc.
  • Kubernetes (K3s/K3d) : nodes Server/Agent, Ingress, Deployments/Replicas, Namespaces, kubectl, etc.
  • GitOps/CI : déploiement déclaratif avec Argo CD, gestion des tags d’images et mises à jour continues.
  • Observabilité & soutenance : démonstration live (Ingress, namespaces, …).