Skip to main content

02 - Kubernetes

☸️ 1. Les fondamentaux Kubernetes

Pod

    Plus petite unité déployable de Kubernetes Un Pod peut contenir un ou plusieurs conteneurs Les conteneurs d'un même Pod partagent notamment le réseau et peuvent partager des volumes.

    👉 Pod → conteneur(s) → Node

    Node

      Machine sur laquelle les Pods s'exécutent. Un Node peut être une VM ou une machine physique.

      ❌ « 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

      Objet À retenir Pod Plus petite unité déployable Deployment Applications généralement stateless ReplicaSet Maintient un nombre donné de Pods StatefulSet Applications stateful DaemonSet Pods sur chaque Node sélectionné Job Tâche qui se termine CronJob Job planifié

      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 :

        ✅ Control Plane ✅ composants du Control Plane ✅ etcd / infrastructure du Control Plane

        Utilisateur :

          Worker Nodes Application Pods applications déployées

          👉 Kapsule = Control Plane managé, workload utilisateur.


          🎛️ 4. Control Plane

          Le Control Plane :

            gère/orchestre le cluster expose l'API Kubernetes planifie les Pods maintient l'état du cluster

            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 :

              kubelet CNI Pods

              À 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 :

                un cluster Kapsule un Private Network

                🔐 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 :

                  Worker Nodes Block Storage Load Balancers etc.

                  💾 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 à :

                    sauvegarder l'état d'un volume restaurer/créer un volume à partir de cette copie

                    🗄️ 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 :

                      Choose the region Enter a name and optional tags Create Private Networks inside the VPC Attach the previously created Resources – Kubernetes clusters and other resources Select the Routing type within your VPC

                      👉 Region → Name → Private Networks → Resources → Routing


                      🏗️ 20. Création d'un cluster Kapsule standard

                      Autre ordre à connaître par cœur :

                        Choose the cluster type Choose the region Choose a control plane offer Configure a Private Network Review configuration and click "Create cluster"

                        👉 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

                        ⭐ Les 15 choses que je mémoriserais en priorité

                          Kapsule = Managed Kubernetes Control Plane = Scaleway Pods = Worker Nodes Pod = smallest deployable unit Pod peut contenir plusieurs containers Deployment = stateless StatefulSet = stateful ReplicaSet = nombre de replicas kubectl = Kubernetes scw = Scaleway kubeconfig = authentification cluster Kapsule Private Network = /22 Autohealing = 15 min + failed Pods rescheduled Autoscaling = ajuste les Nodes Upgrade = Control Plane → Workers, jamais downgrade