Skip to main content

Généralités | Kubernetes

Introduction

En 2003/2004, Google développe Borg pour orchestrer ses infrastructures internes. Renommer "seven" et améliorer en 2013. Renommer Kubernetes en 2014 et annonce publique. 2015 = release de la v1 et transfert à la CNCF (open source). Il devient leader en 2018, suivi en 2019 par des ajouts de sécurité, renforcement d'automatisation et intégration IA. Depuis 2024, focus sur l'exp utilisateur, l'efficacité énergétique et le multi-cloud. 

Kubenetes est donc une plateforme open-source extensible pour la gestion de charges de travail (workload) de services contenreurisés. Elle favorise l'ecriture de conf declarative et l'automatisation. Parfois nommé K8S car 8 lettres en le K et le S. Elle est donc utile pour automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées, souvent avec Docker.

info générales

composants 

  • Master Node (/ control plane : gère le cluster : (API Server, Scheduler, Controller Manager, etcd)

  • Worker Nodes (: exécutent les apps : (kubelet, kube-proxy, moteur comme Docker)

  • Pods (unités minimales, 1+ conteneurs), Services (accès aux pods)

  • Volumes (stockage persistant)

 

par défaut, le container runtime utilisé est containerd

 

Quel sont les noms des deux rôles que peuvent avoir les noeuds Kubernetes ?

control plane worker node

 

À quoi servent les API Groups dans Kubernetes ?

À organiser les ressources Kubernetes sous différents groupes, permettant une évolution et une extension de l'API.

 

Qu'est-ce qu'un “Pod” dans Kubernetes ?

Un conteneur ou plusieurs conteneurs partageant des ressources

 

Dans quel namespace Kubernetes crée ses objets utilisateurs par default ?

Default 

attention par contre, les parametres sont dans kube-system

 

Quelles sont les phrases correctes à propos des déploiements ?

    Ils peuvent contenir plusieurs pods Ils doivent être déclaré en contenant le paramètre “replicas” On peut modifier directement l’image grâce à la commande “kubectl set image deployment …” Si l’on supprime le déploiement, toutes les ressources créées par celui-ci sont supprimées également (pods puis replicaset)

     

    Quel est l'ordre de création des objets Kubernetes instanciés lorsque l’on crée un déploiement au sein d’un Namespace spécifique ?

    Namespace > Déploiement > ReplicatSet > Pod > Container

     

    Orchestration avec Kubernetes

    Kubernetes gère déploiement (via YAML), mise à l'échelle (auto/manuelle, ex. kubectl scale deployment my-app --replicas=5), réseaux/stockage (services, volumes), sécurité/monitoring (Prometheus, politiques).

    Exemple YAML déploiement : apiVersion: apps/v1, kind: Deployment, replicas: 3, etc