Talos + OpenTofu + Proxmox

L'infra Kubernetes immuable, automatisée et sécurisée

Quoi ?

Quoi ?

Quoi ?

Quoi ?

Quoi ?

Qui ?

  • Mikael Batard

Qui ?

  • Mikael Batard
  • SRE @ CBA Informatique Libérale

Qui ?

  • Mikael Batard
  • SRE @ CBA Informatique Libérale
  • ❤️ Kubernetes (Talos), GitOps, la sécurité

Qui ?

  • Mikael Batard
  • SRE @ CBA Informatique Libérale
  • ❤️ Kubernetes (Talos), GitOps, la sécurité
  • @home : infra hybride avec 2 chiens haute dispo et 2 tortues à latence élevée

Qui ?

  • Mikael Batard
  • SRE @ CBA Informatique Libérale
  • ❤️ Kubernetes (Talos), GitOps, la sécurité
  • @home : infra hybride avec 2 chiens haute dispo et 2 tortues à latence élevée

Quand ?

  • Le jour : Ops qui automatise l'infra, observe la prod, pour ne pas être réveillé la nuit

Qui ?

  • Mikael Batard
  • SRE @ CBA Informatique Libérale
  • ❤️ Kubernetes (Talos), GitOps, la sécurité
  • @home : infra hybride avec 2 chiens haute dispo et 2 tortues à latence élevée

Quand ?

  • Le jour : Ops qui automatise l'infra, observe la prod, pour ne pas être réveillé la nuit
  • La nuit : ...

Qui ?

  • Mikael Batard
  • SRE @ CBA Informatique Libérale
  • ❤️ Kubernetes (Talos), GitOps, la sécurité
  • @home : infra hybride avec 2 chiens haute dispo et 2 tortues à latence élevée

Quand ?

  • Le jour : Ops qui automatise l'infra, observe la prod, pour ne pas être réveillé la nuit
  • La nuit : ...

Où ?

  • Près d'Avignon
  • LinkedIn : linkedin.com/in/mbatard
  • Bluesky : @mbatard.bsky.social
  • GitHub : github.com/mbatard
  • Site : calmops.fr

Et vous ?

Et vous ?

Et vous ?

Et vous ?

Et vous ?

Et vous ?

Disclaimer

Pourquoi Proxmox ?

Pourquoi Proxmox ?

Pourquoi Proxmox ?

Pourquoi Proxmox ?

Pourquoi Proxmox ?

Pourquoi Proxmox ?

Info : Proxmox n'est pas requis pour utiliser Talos.

Pourquoi des VMs ?

Pourquoi des VMs ?

Pourquoi des VMs ?

Pourquoi des VMs ?

Pourquoi des VMs ?

Pourquoi OpenTofu ?

Pourquoi OpenTofu ?

Pourquoi OpenTofu ?

Pourquoi OpenTofu ?

Pourquoi OpenTofu ?

Pourquoi OpenTofu ?

Info : OpenTofu n'est pas requis pour utiliser Talos.

Bring your own stack

Proxmox + OpenTofu + Talos, c'est mon use case.

Bring your own stack

Proxmox + OpenTofu + Talos, c'est mon use case.

Bring your own stack

Proxmox + OpenTofu + Talos, c'est mon use case.

Bring your own stack

Proxmox + OpenTofu + Talos, c'est mon use case.

Bring your own stack

Proxmox + OpenTofu + Talos, c'est mon use case.

Talos n'impose pas une plateforme, il standardise le nœud Kubernetes.

Et sans Talos ?

Sur un OS classique, le nœud peut devenir un objet que l'on corrige à la main :

Et sans Talos ?

Sur un OS classique, le nœud peut devenir un objet que l'on corrige à la main :

Et sans Talos ?

Sur un OS classique, le nœud peut devenir un objet que l'on corrige à la main :

Et sans Talos ?

Sur un OS classique, le nœud peut devenir un objet que l'on corrige à la main :

Et sans Talos ?

Sur un OS classique, le nœud peut devenir un objet que l'on corrige à la main :

Et sans Talos ?

Sur un OS classique, le nœud peut devenir un objet que l'on corrige à la main :

Le port 22 c'est pratique, comme une porte de garage ouverte.

La dérive silencieuse

Une fois connecté, tout devient modifiable sans laisser de trace :

La dérive silencieuse

Une fois connecté, tout devient modifiable sans laisser de trace :

La dérive silencieuse

Une fois connecté, tout devient modifiable sans laisser de trace :

La dérive silencieuse

Une fois connecté, tout devient modifiable sans laisser de trace :

La dérive silencieuse

Une fois connecté, tout devient modifiable sans laisser de trace :

La dette technique devient une surface d'attaque.

Un risque, pas une fatalité : un cluster sur OS classique peut être impeccable.

Pourquoi Talos ?

C'est un OS spécialisé pour Kubernetes qui apporte une expérience proche du K8s managé :

Pourquoi Talos ?

C'est un OS spécialisé pour Kubernetes qui apporte une expérience proche du K8s managé :

Pourquoi Talos ?

C'est un OS spécialisé pour Kubernetes qui apporte une expérience proche du K8s managé :

Pourquoi Talos ?

C'est un OS spécialisé pour Kubernetes qui apporte une expérience proche du K8s managé :

Pourquoi Talos ?

C'est un OS spécialisé pour Kubernetes qui apporte une expérience proche du K8s managé :

Pourquoi Talos ?

C'est un OS spécialisé pour Kubernetes qui apporte une expérience proche du K8s managé :

Installable presque partout : Proxmox, VMware, bare metal, cloud, ...

Et côté sécurité ?

Il réduit la surface d'attaque du système hôte :

Et côté sécurité ?

Il réduit la surface d'attaque du système hôte :

Et côté sécurité ?

Il réduit la surface d'attaque du système hôte :

Et côté sécurité ?

Il réduit la surface d'attaque du système hôte :

Et côté sécurité ?

Il réduit la surface d'attaque du système hôte :

Et côté sécurité ?

Il réduit la surface d'attaque du système hôte :

Sécurité by design

Par contre ...

Il ne remplace pas une bonne hygiène de sécurité :

Architecture de la démo

Serveur Proxmox
  |-- talos-cp-1    10.10.10.101
  |-- talos-cp-2    10.10.10.102
  |-- talos-cp-3    10.10.10.103
  |-- talos-wkr-1   10.10.10.111
  |-- VIP API       10.10.10.10
  `-- Traefik LB    10.10.10.200

La démo en 5 étapes

opentofu/talos/
  01-proxmox-talos/          # VMs + Talos + bootstrap K8s
  02-cilium-traefik/         # Cilium + Traefik via Helm/OpenTofu
  03-deploy-application/     # App whoami via OpenTofu/Kubernetes provider
  04-add-talos-worker-node/  # Ajout d'un worker Talos
  05-upgrade-talos-and-k8s/  # Upgrade Talos + Kubernetes
  scripts/                   # Runbook exécutable de démo

Démo 1 : créer le cluster Kubernetes

./scripts/01-proxmox-talos.sh

On part d'un Proxmox vide et on arrive à un cluster Kubernetes utilisable.

Démo 2 : ajouter un CNI et un ingress controller

./scripts/02-cilium-traefik.sh

Talos démarre Kubernetes sans CNI.

Démo 3 : déployer une application

./scripts/03-deploy-application.sh

On peut déployer ce qu'on veut comme application.

Démo 4 : ajouter un nœud worker

./scripts/04-add-talos-worker-node.sh

Ajouter un nœud, c'est une commande.

Démo 5 : mettre à jour Talos + Kubernetes

./scripts/05-upgrade-talos.sh
./scripts/05-upgrade-k8s.sh

Créer c'est bien, gérer le cycle de vie c'est mieux.

Et maintenant si on veut mettre en prod ?

Et maintenant si on veut mettre en prod ?

Et maintenant si on veut mettre en prod ?

Et maintenant si on veut mettre en prod ?

Et maintenant si on veut mettre en prod ?

Et maintenant si on veut mettre en prod ?

Et maintenant si on veut mettre en prod ?

Ce qu'il faut retenir

  1. Talos réduit le drift et la surface d'attaque des nœuds Kubernetes.

Ce qu'il faut retenir

  1. Talos réduit le drift et la surface d'attaque des nœuds Kubernetes.
  2. OpenTofu rend le déploiement rejouable, auditable et versionnable.

Ce qu'il faut retenir

  1. Talos réduit le drift et la surface d'attaque des nœuds Kubernetes.
  2. OpenTofu rend le déploiement rejouable, auditable et versionnable.
  3. Proxmox donne une plateforme simple et API-friendly pour ce use case.

Ce qu'il faut retenir

  1. Talos réduit le drift et la surface d'attaque des nœuds Kubernetes.
  2. OpenTofu rend le déploiement rejouable, auditable et versionnable.
  3. Proxmox donne une plateforme simple et API-friendly pour ce use case.
  4. Les VMs rendent les clusters éphémères et faciles à multiplier.

Ce qu'il faut retenir

  1. Talos réduit le drift et la surface d'attaque des nœuds Kubernetes.
  2. OpenTofu rend le déploiement rejouable, auditable et versionnable.
  3. Proxmox donne une plateforme simple et API-friendly pour ce use case.
  4. Les VMs rendent les clusters éphémères et faciles à multiplier.
  5. Sécurisé by design ne veut pas dire sécurisé sans discipline.

Ce qu'il faut retenir

  1. Talos réduit le drift et la surface d'attaque des nœuds Kubernetes.
  2. OpenTofu rend le déploiement rejouable, auditable et versionnable.
  3. Proxmox donne une plateforme simple et API-friendly pour ce use case.
  4. Les VMs rendent les clusters éphémères et faciles à multiplier.
  5. Sécurisé by design ne veut pas dire sécurisé sans discipline.
  6. Pour l'équipe : moins de corrections manuelles, des upgrades cadrés, moins de logique maison autour du lifecycle Kubernetes.

Liens : docs

Liens : pour aller plus loin

Merci !

Des questions ?

QR code Slides
Slides
QR code Sources
Sources