Vous pouvez utiliser vSphere IaaS control plane pour transformer vSphere en une plate-forme pour exécuter des charges de travail Kubernetes en mode natif sur la couche d'hyperviseur. Lorsqu'il est activé sur des clusters vSphere, vSphere IaaS control plane offre la possibilité d'exécuter des charges de travail Kubernetes directement sur des hôtes ESXi et de créer des clusters Kubernetes en amont dans des espaces de noms dédiés appelés Espace de noms vSphere.

Défis actuels des piles d'applications

Les systèmes distribués actuels sont constitués de plusieurs microservices exécutant généralement un grand nombre d'espaces Kubernetes et de machines virtuelles. En général, une pile qui n'est pas basée sur une vSphere IaaS control plane se compose d'un environnement virtuel sous-jacent, avec l'infrastructure Kubernetes déployée à l'intérieur des machines virtuelles et respectivement des espaces Kubernetes également exécutés dans ces machines virtuelles. Trois rôles distincts gèrent chaque partie de la pile, à savoir les développeurs d'applications, les administrateurs de clusters Kubernetes et les administrateurs vSphere.

Figure 1. Pile d'applications actuelle
Pile comportant 3 couches : charge de travail Kubernetes, cluster Kubernetes, environnement virtuel. 3 rôles les gèrent : Développeur, Administrateur de cluster, Administrateur vSphere.
Les différents rôles n'ont pas de visibilité ni de contrôle sur leurs environnements mutuels :
  • En tant que développeur d'applications, vous pouvez exécuter des espaces Kubernetes, et déployer et gérer des applications basées sur Kubernetes. Vous n'avez pas de visibilité sur l'ensemble de la pile qui exécute des centaines d'applications.
  • En tant qu'ingénieur DevOps ou administrateur de cluster, vous disposez uniquement d'un contrôle sur l'infrastructure Kubernetes, sans les outils permettant de gérer ou de surveiller l'environnement virtuel et de résoudre les problèmes liés aux ressources et autres problèmes.
  • En tant qu'administrateur vSphere, vous disposez d'un contrôle total sur l'environnement virtuel sous-jacent, mais vous n'avez pas de visibilité sur l'infrastructure Kubernetes, sur le placement des différents objets Kubernetes dans l'environnement virtuel et sur la manière dont ils consomment les ressources.

Les opérations sur la pile complète peuvent être délicates, car elles nécessitent une communication entre les trois rôles. Le manque d'intégration entre les différentes couches de la pile peut également présenter quelques défis. Par exemple, le programmateur Kubernetes ne dispose pas d'une visibilité sur l'inventaire de vCenter Server et il ne peut pas placer les espaces intelligemment.

Quelle aide est apportée par vSphere IaaS control plane ?

vSphere IaaS control plane crée un plan de contrôle Kubernetes directement sur la couche de l'hyperviseur. En tant qu'administrateur vSphere, vous activez des clusters vSphere existants pour vSphere IaaS control plane, créant ainsi une couche Kubernetes dans les hôtes ESXi faisant partie des clusters. Les clusters vSphere activés pour vSphere IaaS control plane sont appelés Superviseurs.

Figure 2. vSphere IaaS control plane

La pile Plateforme IaaS avec les charges de travail se trouve en haut, la pile Environnement virtuel se trouve en bas. Deux rôles les gèrent : Développeur et Administrateur vSphere.
La présence d'un plan de contrôle Kubernetes sur la couche d'hyperviseur active les capacités suivantes dans vSphere :
  • En tant qu'administrateur vSphere, vous pouvez créer des espaces de noms sur le Superviseur (appelés Espaces de noms vSphere) et les configurer avec la capacité spécifiée de mémoire, de CPU et de stockage. Vous pouvez fournir les Espaces de noms vSphere aux ingénieurs DevOps.
  • En tant qu'ingénieur DevOps, vous pouvez exécuter des charges de travail sur la même plate-forme avec des pools de ressources partagés au sein d'un Espace de noms vSphere. Vous pouvez déployer et gérer plusieurs clusters Kubernetes en amont créés à l'aide du Tanzu Kubernetes Grid. Vous pouvez également déployer des conteneurs Kubernetes directement sur le Superviseur dans un type spécial de machine virtuelle appelé Espace vSphere. Vous pouvez également déployer des machines virtuelles standard.
  • En tant qu'administrateur vSphere, vous pouvez gérer et surveiller des Espaces vSphere, des machines virtuelles et des clusters Tanzu Kubernetes Grid à l'aide de vSphere Client.
  • En tant qu'administrateur vSphere, vous avez une visibilité totale sur les Espaces vSphere, les machines virtuelles et les clusters Tanzu Kubernetes Grid s'exécutant dans différents espaces de noms, leur positionnement dans l'environnement et la manière dont ils consomment les ressources.

L'exécution de Kubernetes sur la couche hyperviseur facilite également la collaboration entre les administrateurs vSphere et les équipes DevOps, car les deux rôles utilisent les mêmes objets.

Qu'entend-on par charge de travail ?

Dans vSphere IaaS control plane, les charges de travail sont des applications déployées de l'une des manières suivantes :

  • Applications composées de conteneurs exécutés dans Espaces vSphere.
  • Charges de travail provisionnées via le service de machine virtuelle.
  • Clusters de Tanzu Kubernetes Grid déployés à l'aide du Tanzu Kubernetes Grid.
  • Applications qui s'exécutent dans les clusters Tanzu Kubernetes Grid.

À quoi correspondent les zone vSphere ?

Les zones vSphere fournissent une haute disponibilité en cas de panne au niveau du cluster pour les charges de travail déployées sur vSphere IaaS control plane. En tant qu'administrateur vSphere, vous créez des zones vSphere dans vSphere Client, puis mappez des clusters vSphere à ces zones. Vous utilisez les zones pour déployer des Superviseurs sur votre environnement vSphere IaaS control plane.

Vous pouvez déployer un Superviseur sur trois zones vSphere pour une haute disponibilité au niveau du cluster. Vous pouvez également déployer un Superviseur sur un cluster vSphere unique, qui créera automatiquement une zone vSphere et la mappera au cluster, ou vous pouvez utiliser un cluster déjà mappé à une zone. Pour plus d'informations, reportez-vous à Architecture de Superviseur et Déploiements de Superviseur zonal et de clusters.

Qu'est-ce qu'un cluster Tanzu Kubernetes Grid ?

Un cluster Tanzu Kubernetes Grid est une distribution complète du logiciel Kubernetes qui est assemblée, signée et prise en charge par VMware. Vous pouvez provisionner et utiliser des clusters Tanzu Kubernetes Grid en amont sur les Superviseurs à l'aide de Tanzu Kubernetes Grid.

Un cluster Tanzu Kubernetes Grid provisionné par Tanzu Kubernetes Grid présente les caractéristiques suivantes :
Caractéristiques du cluster TKG, en partant de la gauche vers la droite : personnalisé, parfaitement intégré, prêt pour la production, entièrement pris en charge, géré par Kubernetes
  • Installation personnalisée de Kubernetes. Le Tanzu Kubernetes Grid fournit des valeurs parfaitement adaptées qui sont optimisées pour permettre à vSphere de provisionner des clusters Tanzu Kubernetes Grid. En utilisant le Tanzu Kubernetes Grid, vous pouvez réduire le temps et les efforts que vous consacrez normalement au déploiement et à l'exécution d'un cluster Kubernetes de qualité professionnelle.
  • Intégré à l'infrastructure vSphere. Un cluster Tanzu Kubernetes Grid s'intègre parfaitement à la pile du SDDC vSphere, y compris pour le stockage, la mise en réseau et l'authentification. En outre, un cluster Tanzu Kubernetes Grid est créé sur un Superviseur mappé à des clusters vSphere. En raison de l'intégration étroite, l'exécution d'un cluster Tanzu Kubernetes Grid est une expérience de produit unifiée.
  • Prêt pour la production. Le Tanzu Kubernetes Grid provisionne des clusters Tanzu Kubernetes Grid prêts pour la production. Vous pouvez exécuter des charges de travail de production sans avoir à mettre en œuvre une configuration supplémentaire. En outre, vous pouvez garantir la disponibilité et autoriser la restauration de mises à niveau logicielles Kubernetes, mais aussi exécuter différentes versions de Kubernetes sur des clusters distincts.
  • Haute disponibilité pour les charges de travail Kubernetes. Les clusters Tanzu Kubernetes Grid déployés sur un Superviseur de trois zones vSphere sont protégés contre les pannes au niveau du cluster vSphere. Les nœuds de charge de travail et de plan de contrôle des clusters Tanzu Kubernetes Grid sont distribués sur les trois zones vSphere, ce qui rend les charges de travail Kubernetes exécutées à l'intérieur de ces dernières hautement disponibles. Les clusters Tanzu Kubernetes Grid s'exécutant sur un Superviseur de zone unique sont protégés contre les pannes au niveau de l'hôte ESXi, via vSphere HA.
  • Entièrement pris en charge par VMware. Les clusters Tanzu Kubernetes Grid utilisent le système d'exploitation open source basé sur Linux de VMware, sont déployés sur l'infrastructure vSphere, et s'exécutent sur des hôtes ESXi. Si vous rencontrez des problèmes avec une couche de la pile, de l'hyperviseur au cluster Kubernetes, VMware est l'unique fournisseur que vous devez contacter.
  • Géré par Kubernetes. Les clusters Tanzu Kubernetes Grid s'appuient sur Superviseur, qui est lui-même un cluster Kubernetes. Un cluster Tanzu Kubernetes Grid est défini dans l'Espace de noms vSphere à l'aide d'une ressource personnalisée. Provisionnez des clusters Tanzu Kubernetes Grid en libre-service à l'aide de commandes kubectl familières et de Tanzu CLI. Il existe une cohérence au niveau de la chaîne d'outils, que vous provisionnez un cluster ou que vous déployiez des charges de travail, vous utilisez les mêmes commandes, les YAML habituels et les workflows courants.

Pour plus d'informations, reportez-vous aux sections Architecture et composants de Tanzu Kubernetes Grid et Utilisation du service TKG avec le plan de contrôle IaaS vSphere.

Qu'est-ce qu'un Espace vSphere ?

vSphere IaaS control plane introduit une construction nommée Espace vSphere, qui est l'équivalent d'un espace Kubernetes. Une Espace vSphere est une machine virtuelle à faible encombrement qui exécute un ou plusieurs conteneurs Linux. Chaque Espace vSphere est dimensionnée précisément pour la charge de travail qu'elle gère et dispose de réservations de ressources explicites pour cette charge de travail. Elle alloue la quantité exacte de ressources de stockage, de mémoire et de CPU nécessaires à l'exécution de la charge de travail. Les Espaces vSphere sont uniquement pris en charge avec des Superviseurs configurés avec NSX comme pile de mise en réseau.

Figure 3. Espaces vSphere
Hôte ESXi contenant deux zones d'espace vSphere. Chaque espace vSphere dispose de conteneurs qui s'y exécutent, d'un noyau Linux, d'une mémoire, d'un CPU et de ressources de stockage.
Les Espaces vSphere sont des objets dans vCenter Server et ils activent les capacités suivantes pour les charges de travail :
  • Isolation forte. Un Espace vSphere est isolé de la même manière qu'une machine virtuelle. Chaque Espace vSphere dispose de son propre noyau Linux unique basé sur le noyau utilisé dans Photon OS. Plutôt que de nombreux conteneurs partageant un noyau, comme dans une configuration bare metal, dans un Espace vSphere, chaque conteneur dispose d'un noyau Linux unique
  • Gestion des ressources. vSphere DRS gère le placement des Espaces vSphere sur le Superviseur.
  • Haute performance. Les Espaces vSphere ont le même niveau d'isolation de ressources que les machines virtuelles, éliminant les problèmes de voisins bruyants tout en maintenant le temps de démarrage rapide et une faible capacité supplémentaire de conteneurs.
  • Diagnostics. En tant qu'administrateur vSphere, vous pouvez utiliser tous les outils de surveillance et d'introspection disponibles avec vSphere sur les charges de travail.
Les Espaces vSphere sont compatibles avec l'initiative OCI (Open Container initiative) et peuvent exécuter des conteneurs à partir de n'importe quel système d'exploitation, à condition que ces conteneurs soient également compatibles avec OCI.
Figure 4. Mise en réseau et stockage de Espace vSphere
Espace vSphere renfermant des conteneurs, un moteur de conteneur et un moteur d'espace. L'espace se connecte à l'image de conteneur, au stockage, au commutateur NSX, au Spherelet et à hostd.

Les Espaces vSphere utilisent trois types de stockage en fonction des objets qui sont stockés : des VMDK éphémères, des VMDK à volumes persistants et des VMDK d'image de conteneur. En tant qu'administrateur vSphere, vous configurez des stratégies de stockage pour le placement du cache d'image de conteneur et des disques de machine virtuelle éphémères au niveau du Superviseur. Au niveau d'un Espace de noms vSphere, vous configurez des stratégies de stockage pour le placement de volumes persistants. Pour plus d'informations sur les exigences et les concepts de stockage avec vSphere IaaS control plane, consultez Stockage persistant pour les charges de travail.

Pour la mise en réseau, les Espaces vSphere et les machines virtuelles des clusters Tanzu Kubernetes Grid utilisent la topologie fournie par NSX. Pour plus de détails, reportez-vous à la section Mise en réseau du Superviseur.

Spherelet est un processus supplémentaire créé sur chaque hôte. Il s'agit d'un kubelet qui est porté en mode natif sur ESXi et permet à l'hôte ESXi de faire partie du cluster Kubernetes.

Pour plus d'informations sur l'utilisation des Espaces vSphere sur les Superviseurs, reportez-vous à la section Déploiement de charges de travail sur des espaces vSphere dans la documentation Services et charges de travail du plan de contrôle IaaS vSphere.

Utilisation de machines virtuelles dans vSphere IaaS control plane

vSphere IaaS control plane offre une fonctionnalité de service de machine virtuelle qui permet aux ingénieurs DevOps de déployer et d'exécuter des machines virtuelles, en plus de conteneurs, dans un environnement Kubernetes partagé commun. Les conteneurs et les machines virtuelles partagent les mêmes ressources Espace de noms vSphere et peuvent être gérés via une interface vSphere IaaS control plane unique.

Le service de VM répond aux besoins des équipes DevOps qui utilisent Kubernetes, mais qui ont des charges de travail existantes basées sur des machines virtuelles qui ne peuvent pas être facilement mises en conteneur. Il permet également aux utilisateurs de réduire la surcharge de gestion d'une plate-forme non-Kubernetes parallèlement à une plate-forme de conteneur. Lors de l'exécution de conteneurs et de machines virtuelles sur une plate-forme Kubernetes, les équipes DevOps peuvent consolider l'emplacement de la charge de travail sur une seule plate-forme.

Note : Outre les machines virtuelles autonomes, le service de VM gère les machines virtuelles qui constituent des clusters Tanzu Kubernetes Grid. Pour plus d'informations sur les clusters, reportez-vous à la documentation Utilisation du service TKG avec le plan de contrôle IaaS vSphere.
L'illustration présente le service de machine virtuelle en tant que composant qui gère les machines virtuelles autonomes et les machines virtuelles qui composent les clusters Tanzu Kubernetes Grid.

Chaque machine virtuelle déployée via le service de VM fonctionne comme une machine complète exécutant tous les composants, notamment son propre système d'exploitation, au-dessus de l'infrastructure de vSphere IaaS control plane. La machine virtuelle a accès à la mise en réseau et au stockage fournis par un Superviseur et est gérée à l'aide de la commande Kubernetes kubectl standard. La machine virtuelle s'exécute comme un système entièrement isolé protégé des interférences produites par d'autres machines virtuelles ou charges de travail dans l'environnement Kubernetes.

Quand convient-il d'utiliser des machines virtuelles sur une plate-forme Kubernetes ?

En général, la décision d'exécuter des charges de travail dans un conteneur ou dans une machine virtuelle dépend des besoins et des objectifs de votre entreprise. Parmi les raisons d'utiliser des machines virtuelles, citons les suivantes :

  • Vos applications ne peuvent pas être mises en conteneur.
  • Les applications sont conçues pour un noyau personnalisé ou un système d'exploitation personnalisé.
  • Les applications sont mieux adaptées à l'exécution dans une machine virtuelle.
  • Vous souhaitez avoir une expérience Kubernetes cohérente et éviter toute surcharge. Plutôt que d'utiliser des ensembles distincts d'infrastructure pour vos plates-formes de conteneur et non-Kubernetes, vous pouvez consolider ces piles et les gérer avec une commande kubectl connue.

Pour plus d'informations sur le déploiement et la gestion de machines virtuelles autonomes dans un Superviseur, reportez-vous à la section Déploiement et gestion de machines virtuelles dans la documentation Services et charges de travail du plan de contrôle IaaS vSphere.

Services de superviseur dans vSphere IaaS control plane

Les Services de superviseur sont des opérateurs Kubernetes certifiés vSphere qui fournissent aux développeurs des composants d'infrastructure en tant que service et des services d'éditeurs de logiciels indépendants étroitement intégrés. Vous pouvez installer et gérer les Services de superviseur sur l'environnement vSphere IaaS control plane afin de les rendre disponibles pour une utilisation avec des charges de travail Kubernetes. Lorsque les Services de superviseur sont installés sur Superviseurs, les ingénieurs DevOps peuvent utiliser les API de service pour créer des instances sur les Superviseurs dans leurs espaces de noms d'utilisateur. Ces instances peuvent ensuite être consommées dans les Espaces vSphere et les clusters Tanzu Kubernetes Grid.

Pour en savoir plus sur les Services de superviseur pris en charge et sur la façon de télécharger leurs fichiers YAML de service, accédez à la page http://vmware.com/go/supervisor-service.

Pour plus d'informations sur l'utilisation de Services de superviseur, reportez-vous à la section Gestion des services de superviseur dans la documentation Services et charges de travail du plan de contrôle IaaS vSphere.