Les architectures Kubernetes reposent sur plusieurs concepts et abstractions :
Un cluster Kubernetes doit avoir un master : le système qui commande et contrôle toutes les autres machines du cluster. Un cluster Kubernetes hautement disponible réplique les fonctions du master sur les différentes machines, mais seul un master à la fois exécute le controller-manager et le scheduler.
Chaque cluster contient des noeuds Kubernetes. Il peut s’agir de machines physiques ou virtuelles. Les noeuds quant à eux exécutent des pods : les objets Kubernetes les plus basiques pouvant être créés ou gérés. Chaque pod représente une seule instance d’une application ou d’un processus en cours d’exécution sur Kubernetes, et se constitue d’un ou plusieurs containers. Tous les containers sont lancés et répliqués en groupe dans le pod.
Le scheduler répartit les workloads entre les noeuds pour assurer l’équilibre entre les ressources, et garantir que les déploiements correspondent aux besoins des applications. Le controller manager quant à lui assure que l’état du système (applications, workloads…) correspond à l’état désiré défini dans les paramètres de configuration Etcd.