Qu’est-ce qu’un cluster Kubernetes ?

 

Un cluster Kubernetes est un ensemble de nœuds qui exécutent des applications conteneurisées. Les applications conteneurisées regroupent dans un package une application, ses dépendances et certains services nécessaires. Elles sont plus légères et flexibles que les machines virtuelles. Ainsi, les clusters Kubernetes facilitent le développement, le déplacement et la gestion d’applications.

Les clusters Kubernetes permettent aux conteneurs de s’exécuter sur plusieurs machines et environnements virtuels, physiques, Cloud et on premise. Contrairement aux machines virtuelles, les conteneurs Kubernetes ne sont pas limités à un système d’exploitation spécifique. Au contraire, ils sont en mesure de partager des systèmes d’exploitation et de s’exécuter n’importe où

Les clusters Kubernetes sont constitués d’un nœud maître et de plusieurs nœuds de travail. Ces nœuds peuvent être des ordinateurs physiques ou des machines virtuelles, en fonction du cluster.

Le nœud maître contrôle l’état du cluster, par exemple les applications qui y sont exécutées, et leurs images correspondantes dans le conteneur. Le nœud maître est l’origine de toutes les affectations de tâche. Il coordonne des processus tels que :

  • La planification et la mise à l’échelle des applications
  • La maintenance de l’état d’un cluster
  • La mise en œuvre de mises à jour

Les nœuds de travail sont les composants qui exécutent ces applications. Les nœuds de travail effectuent les tâches affectées par le nœud maître. Il peut s’agir de machines virtuelles ou d’ordinateurs physiques, qui fonctionnent tous dans le cadre d’un système.

Il doit exister un minimum d’un nœud maître et un nœud de travail pour qu’un cluster Kubernetes soit opérationnel. Pour la production et la préproduction, le cluster est distribué sur plusieurs nœuds de travail. Pour les tests, les composants peuvent tous être exécutés sur le même nœud physique ou virtuel.

Un espace de nommage est un moyen par lequel un utilisateur de Kubernetes peut organiser de nombreux clusters différents au sein d’un cluster physique unique. Les espaces de nommage permettent aux utilisateurs de distribuer les ressources de cluster au sein du cluster physique aux différentes équipes par l’intermédiaire de quotas de ressources. C’est pour cela qu’ils s’avèrent idéaux dans les situations qui impliquent des projets complexes ou plusieurs équipes.

 

Qu’est-ce qui constitue un cluster Kubernetes ?

Un cluster Kubernetes contient six composants principaux :

  1. Serveur API : présente une interface REST à toutes les ressources Kubernetes. Sert d’interface frontale du plan de contrôle Kubernetes.
  2. Planificateur : place les conteneurs selon les conditions et les mesures de ressources. Identifie les pods sans nœud affecté et sélectionne des nœuds pour leur permettre de s’exécuter.
  3. Contrôleur de gestion : exécute des processus de contrôle et réconcilie l’état actuel du cluster avec ses spécifications souhaitées. Gère des contrôleurs tels que les contrôleurs de nœuds, les contrôleurs de terminaux et les contrôleurs de réplication.
  4. Kubelet : garantit que les contrôleurs s’exécutent dans un Pod en interagissant avec le moteur Docker, le programme par défaut de création et de gestion des conteneurs. Prend un ensemble de PodSpecs et assure que leurs conteneurs correspondants sont entièrement opérationnels.
  5. Kube-proxy : gère la connectivité réseau et les règles réseau sur l’ensemble des nœuds. Implémente le concept de service Kubernetes dans tous les nœuds d’un cluster donné.
  6. Etcd : stocke toutes les données de cluster. Stockage de secours Kubernetes cohérent et hautement disponible. 

 

Ces six composants peuvent être exécutés sous Linux ou en tant que conteneurs Docker. Le nœud maître exécute le serveur d’API, le planificateur et le gestionnaire contrôleur, et les nœuds de travail exécutent le kubelet et le kube-proxy.

 

Comment utiliser un cluster Kubernetes ?

Pour travailler sur un cluster Kubernetes, vous devez préalablement déterminer son état souhaité. L’état souhaité d’un cluster Kubernetes définit de nombreux éléments opérationnels, notamment :

  • les applications et les charges de travail qui doivent être exécutées ;
  • les images que ces applications devront utiliser ;
  • les ressources qui doivent être fournies pour ces applications ;
  • la quantité de répliques nécessaires.

 

Pour définir un état souhaité, des fichiers JSON ou YAML (appelés manifestes) sont utilisés pour spécifier le type d’application et le nombre de répliques nécessaires pour exécuter le système.

 

Les développeurs utilisent l’API Kubernetes pour définir l’état souhaité d’un cluster. Cette interaction de développeur utilise l’interface de ligne de commande (kubectl) ou exploite l’API pour interagir directement avec le cluster en vue de définir manuellement l’état souhaité. Le nœud maître communique ensuite l’état souhaité aux nœuds de travail par l’intermédiaire de l’API.

 

Kubernetes gère automatiquement les clusters pour s’aligner avec leur état souhaité par l’intermédiaire du plan de contrôle Kubernetes. Un plan de contrôle Kubernetes est notamment responsable de la planification de l’activité des clusters et de l’enregistrement et la réponse aux événements de cluster.

 

Le plan de contrôle Kubernetes exécute en continu des boucles de contrôle pour vérifier que l’état réel du cluster correspond à son état souhaité. Par exemple, si vous déployez une application pour qu’elle s’exécute avec cinq répliques et que l’une d’entre elle se bloque, le plan de contrôle Kubernetes enregistre ce blocage et déploie une réplique supplémentaire, de manière à ce que l’état souhaité de cinq répliques soit maintenu.

 

L’automatisation s’effectue par l’intermédiaire du générateur d’événement de cycle de vie de pod, ou PLEG (Pod Lifecycle Event Generator). Ces tâches automatique peuvent inclure :

  • le démarrage et le redémarrage de conteneurs ;
  • l’ajustement du nombre de répliques pour une application ;
  • la validation des images de conteneur ;
  • le lancement et la gestion de conteneurs ;
  • la mise en œuvre de mises à jour et de retours arrière

 

 

Comment créer un cluster Kubernetes ?

Vous pouvez créer et déployer un cluster Kubernetes sur une machine physique ou virtuelle. Pour les nouveaux utilisateurs, il est recommandé de commencer à créer un cluster Kubernetes à l’aide de Minikube. Minikube est un outil open source compatible avec les systèmes d’exploitation Linux, Mac et Windows. Minikube peut être utilisé pour créer et déployer un cluster simple et rationalisé, qui ne contient qu’un nœud de travail.

 

De plus, vous pouvez utiliser des modèles Kubernetes pour automatiser la gestion de l’échelle de votre cluster. Les modèles Kubernetes facilitent la réutilisation d’architectures Cloud pour les applications reposant sur des conteneurs. Bien que Kubernetes fournisse plusieurs API utiles, aucune directive indiquant comment intégrer correctement ces outils dans un système d’exploitation n’est fournie. Les modèles Kubernetes offre un moyen cohérent d’accéder aux architectures Kubernetes existantes pour les réutiliser. Au lieu de créer ces structures vous-même, vous pouvez vous servir dans un réseau réutilisable de modèles de cluster Kubernetes.

 

Produits, solutions et ressources VMware pour les clusters Kubernetes

VMware NSX : plate-forme de virtualisation du réseau et de la sécurité en entreprise leader du marché

VMware NSX Data Center fournit une plate-forme de virtualisation du réseau et de la sécurité des couches L2-L7 pour permettre la gestion du réseau entier sous la forme d’une seule entrée à partir d’une console unique.

VMware Cloud PKS - clusters Kubernetes

Accélérez l’innovation avec des clusters Kubernetes, économiques et simples d’utilisation.

vSphere Integrated Containers

Obtenez une infrastructure de conteneurs d’entreprise pour permettre au département d’exploitation informatique d’exécuter simultanément des applications traditionnelles et conteneurisées sur une plate-forme commune avec vSphere Integrated Containers.

Gestion réseau de conteneurs avec VMware NSX

Fournissez une gestion réseau et une sécurité intégrées complètes pour vos applications et microservices conteneurisés.

Qu’est-ce que Cloud Management Platform ?

VMware Cloud Management Platform est un gestionnaire d’environnements (multicloud) hybrides qui peut tout exécuter, des charges de travail traditionnelles à celles en conteneur (natives Cloud). En savoir plus.