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 ?
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