02 - Kubernetes
☸️ 1. Les fondamentaux Kubernetes
Pod
👉 Pod → conteneur(s) → Node
Node
❌ « Nodes are only virtual machines » → False
Namespace
Permet de séparer/organiser les ressources à l'intérieur d'un cluster.
✅ Namespace → séparation logique des ressources
Labels
Permettent notamment de sélectionner des objets Kubernetes.
kubectl get pods -l app=odoo
✅ True
🧩 2. Les principaux objets Kubernetes
ReplicaSet
Son rôle est de garantir qu'un nombre défini de réplicas de Pods fonctionne.
👉 replicas: 3 → Kubernetes essaie de maintenir 3 Pods.
StatefulSet
❌ StatefulSet = stateless apps → False
👉 StatefulSet → stateful
👉 Deployment → stateless
🏗️ 3. Kapsule
Kapsule = ?
✅ Managed Kubernetes
Scaleway gère notamment le Control Plane.
❌ Kapsule = unmanaged Kubernetes → False
Qui fait quoi ?
Scaleway :
Utilisateur :
👉 Kapsule = Control Plane managé, workload utilisateur.
🎛️ 4. Control Plane
Le Control Plane :
Stockage de l'état du cluster
👉 etcd
etcd = base de données clé-valeur qui conserve l'état/configuration du cluster.
Application Pods ?
❌ Le Control Plane est responsable de faire tourner les Application Pods → False
👉 Les Pods tournent sur les Worker Nodes.
🔧 5. Worker Node
Les 3 composants demandés dans ton quiz :
À retenir :
kubelet → gère les conteneurs
CNI → réseau
Pods → unités qui encapsulent les conteneurs
🖥️ 6. kubectl vs Scaleway CLI
kubectl
Outil Kubernetes permettant d'interagir avec le cluster :
kubectl get pods
kubectl get deployments
kubectl apply -f app.yaml
👉 Kubernetes cluster → kubectl
Scaleway CLI (scw)
Outil permettant de gérer les ressources Scaleway depuis le terminal.
👉 Scaleway infrastructure → scw
Le CLI peut notamment servir à créer :
🔐 7. Authentification Kapsule
Pour se connecter au cluster :
✅ kubeconfig
Puis :
kubectl ...
👉 Kapsule → kubeconfig → kubectl
📦 8. Helm
Helm est le package manager de Kubernetes.
Kapsule supporte :
✅ Helm charts
✅ manifests YAML personnalisés
❌ « Helm is not supported » → False
🌐 9. Réseau Kapsule
Private Networking
Kapsule supporte les Private Networks.
✅ Yes, via VPCs
Configuration réseau par défaut
Pour ton quiz :
✅ Private Network with a /22 IP subnet
Et la question suivante confirmait :
✅ /22
👉 Kapsule → Private Network → /22
🔄 10. Autohealing
⚠️ Très important : le quiz t'a corrigé sur cette question.
Quand Autohealing est activé :
✅ Unresponsive nodes are restarted or replaced after 15 minutes.
✅ Failed pods are automatically rescheduled on healthy nodes.
❌ Upgrade automatique de Kubernetes
❌ Reboot quotidien du Control Plane
À retenir
Node malade → Autohealing → 15 min → restart / replacement
Et :
Pod défaillant → rescheduling sur un Node sain
Attention
Cette affirmation est :
"Autohealing can detect and replace nodes with excessive resource usage."
❌ False
Charge CPU/RAM élevée ≠ Node défaillant.
📈 11. Autoscaling
Le Cluster Autoscaling ajuste le nombre de Nodes selon les besoins.
Il peut :
✅ augmenter le nombre de Nodes lorsque la charge augmente
✅ réduire le nombre de Nodes lorsque la demande diminue
✅ contribuer à réduire les coûts
⚠️ Le quiz considère également comme bénéfice :
✅ Ensures high availability by distributing pods across nodes
Mais :
❌ Autoscaling ≠ upgrade Kubernetes
Activation
👉 Via the Console or API
⬆️ 12. Kubernetes upgrades
Pour Kapsule :
✅ Upgrade via Console / API / CLI
✅ Control Plane upgraded before Worker Nodes
✅ Les upgrades in-place minimisent les interruptions
❌ Downgrade vers une ancienne version
Politique de versions
Le quiz attend :
✅ Supports at least the latest patch versions of the last three minor releases
👉 3 dernières versions mineures → dernières versions patch
💰 13. Facturation Kapsule
Réponse du quiz :
✅ Based on the resources allocated to nodes, with no cost for the mutualized control plane
Donc :
Control Plane mutualisé → gratuit
Tu paies notamment les ressources utilisées :
💾 14. Block Storage
Block Storage sert notamment à fournir du stockage persistant aux applications.
👉 Très utile pour Kubernetes lorsqu'un Pod doit conserver ses données.
Snapshot
Un snapshot est une copie à un instant donné d'un volume Block Storage.
Il peut servir notamment à :
🗄️ 15. Odoo
Pour le TP Odoo de ta formation :
Vérifier le Deployment
kubectl get deployments odoo
Credentials PostgreSQL
Le quiz indique :
✅ Odoo récupère les credentials PostgreSQL via des environment variables provenant d'un Kubernetes Secret.
Et pour le backend Node.js :
✅ Même principe : credentials DB via Kubernetes Secret → environment variables.
PVC Odoo
La StorageClass attendue dans le cours :
✅ scw-bssd
⚠️ Il existe des évolutions dans les StorageClasses Scaleway, mais pour ce TP/quiz, retiens scw-bssd.
🔗 16. Kapsule + services Scaleway
Kapsule est intégré à l'écosystème Scaleway.
Compatible notamment avec :
✅ Load Balancers
✅ Block Storage
✅ Private Networks / VPC
✅ autres services Scaleway
👉 Kapsule n'est pas isolé du reste de l'écosystème.
🌍 17. Kapsule / Kosmos
Kosmos
Kosmos permet notamment d'intégrer des Nodes provenant de :
✅ AWS
✅ GCP
👉 Kosmos = Kubernetes multi-cloud
Kapsule → Kosmos
❌ On ne peut pas simplement transformer un cluster Kapsule existant en Kosmos avec SetClusterType.
👉 Kapsule et Kosmos = types de clusters distincts.
🛡️ 18. NAT
Le Dynamic NAT peut masquer les adresses IP privées internes lorsqu'elles communiquent avec Internet.
✅ Peut contribuer à réduire la surface d'attaque.
👉 Dynamic NAT → private IP → public IP
🌐 19. VPC
Création/configuration VPC — ordre exact du quiz
⚠️ Celui-ci nous a piégés deux fois 😄
L'ordre validé par le quiz est :
👉 Region → Name → Private Networks → Resources → Routing
🏗️ 20. Création d'un cluster Kapsule standard
Autre ordre à connaître par cœur :
👉 Cluster type → Region → Control Plane → Private Network → Create
🔄 21. Suppression d'un cluster
Avec :
with-additional-resources=true
La suppression du cluster peut également supprimer les ressources associées, notamment les Load Balancers concernés.
✅ True
📊 22. Monitoring Kapsule
Les réponses correctes du quiz :
✅ Kubernetes Dashboard
✅ Prometheus and Grafana (deployed by the user)
✅ Scaleway Cockpit
❌ Scaleway Load Balancer metrics comme outil de monitoring du cluster
👉 Dashboard + Prometheus/Grafana + Cockpit
🎯 23. Dedicated Control Plane
Le Dedicated Control Plane est destiné notamment aux :
✅ heavy workloads and business-critical applications
👉 Dedicated Control Plane = isolation / exigences élevées / workloads critiques
⚠️ 24. La question piège "ContainerSet"
Tu as eu cette question :
Which of the following is a valid Kubernetes object?
Le quiz a considéré :
✅ ContainerSet
et a marqué :
❌ DaemonSet
⚠️ Attention : c'est très probablement spécifique au contenu/quiz de cette formation ou une anomalie, car DaemonSet est bien un objet Kubernetes natif.
Donc pour ce questionnaire précis, si la même question revient :
👉 réponds comme le quiz l'attend : ContainerSet.
Mais pour ta connaissance Kubernetes réelle :
DaemonSet est bel et bien un objet Kubernetes valide.
🧠 LA CARTE MENTALE À APPRENDRE
Si tu ne dois retenir qu'une seule page :
KUBERNETES
│
┌───────────┴───────────┐
│ │
CONTROL PLANE WORKER NODE
│ │
┌─────┼─────┐ ┌──────┼──────┐
│ │ │ │ │ │
API etcd scheduler kubelet CNI Pods
│
containers
Kapsule
↓
Managed Kubernetes
↓
Scaleway manages Control Plane
↓
User manages workloads / worker nodes
Pod → smallest deployable unit
Deployment → stateless
StatefulSet → stateful
ReplicaSet → maintains Pod replicas
DaemonSet → Pod on selected nodes
Namespace → separates resources
Labels → select objects
Helm → package manager
kubectl → Kubernetes CLI
scw → Scaleway CLI
kubeconfig → cluster authentication
Kapsule networking
↓
Private Network
↓
/22
Autohealing
↓
unresponsive Node
↓
15 minutes
↓
restart / replace
failed Pod
↓
rescheduled on healthy Node
Autoscaling
↓
increase Nodes when needed
decrease Nodes when demand drops
↓
cost optimization
Kapsule upgrades
↓
Console / API / CLI
↓
Control Plane first
↓
Workers
↓
NO downgrade
↓
3 latest minor releases