Il est existe 2 sortes de server node :
Cerveau de l’opération, contrôle le déploiement, le scheduling et le self-healing.
Pièce centrale de Kubernetes. Tous les autres composantes intéragissent avec l’api server et c’est la que les utilisateurs vont accéder au cluster.
Projet base de données standalone qui contient l’état du cluster, il ne fait parti officiel de Kubernetes
Il choisi un worker node qui pourra s’occuper d’une tâche schedule basé sur le CPU et la mémoire.
S’occupe de l’état du cluster, des control loops.
Utiliser pour intéragir avec les API des cloud provider.
C’est où les applications roulent dans le cluster. Ils n’ont aucune autres forme de logique.
S’occupe de rouler les container comme Docker et containerd
Il communique avec l’api-server pour le démarrage des containers
S’occupe des communications interne et externe du cluster, il va utiliser le réseau de l’OS si possible.

Une application peut fonctionner sur un worker node sans controle plane, mais aucune intelligence (schedule, scallling etc) ne pourra être appliqué.
Kubernetes utilise des namespaces, à ne pas confondre avec les namespaces qui isole les conteneurs. Ces derniers devrait plus être vue comme des folder quand plusieurs équipes travaillent dans le même cluster.
https://trainingportal.linuxfoundation.org/learn/course/kubernetes-and-cloud-native-essentials-lfs250/kubernetes-fundamentals/kubernetes-fundamentals?page=2

Kubernetes pods : Wrapper autour d’un conteneur

containerd : Sert à rouler des conteneurs, probablement le plus populaire en ce moment
CRI-O : Créer par Red Hat, ressemble beaucoup à podman et buildah
Docker : Le plus long standard, mais n’a jamais été fait pour l’orchestration, il ne sera plus supporté par Kubernetes dès la version 1.2.3
CRI-O et containerd avait l’idée d’Avoir uniquement l’essentiel pour rouler des conteneurs. Ils ont également ajouté des outils pour les problèmes de sécurité liés au partage du Kernel comme :
gvisor : Une kernel application entre les processus du conteneur et le kernel de l’hôte
Kata Containers : Donne une VM qui agit comme un conteneur
Problèmes réseau rencontré
Exigences :
Chaque pod reçoit sa propre adresse IP
Les pods sont décrit en premier et le scheduler sélectionne un node où le pod pourra être démarrer.
Il n’y a pas d’IA qui gère cela, ce sont des paramètres d’applications que Kubernetes suit (ex 2 CPU core 4 G de mémoire etc)
Le scheduler va trouver un node qui remplit les conditions