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 conteneurisés. Elle favorise l'écriture de conf déclarative 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 nœuds 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

 

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

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)

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

 

pop quiz

le pod est la plus petite unité

le conteneur est en dessous du pod

dans un noeud, le kube proxy gère le reseau

un cluster kub acceuille des nods qui acceuille des pods qui accuille des conteneurs