A l’occasion de la sortie de vSphere 7 en avril 2020, VMware a introduit une nouvelle fonctionnalité qui préfigure l’avenir de vSphere et des services d’infrastructure du datacenter.
Désigné sous l’appellation « Workload Management » dans vCenter, le service s’appuie sur l’orchestrateur Kubernetes pour étendre les fonctionnalités de la plateforme Cloud Foundation au support des containers, à l’infrastructure as code et à la gestion des applications hybrides (combinant VMs et containers).
Au travers de cet article, nous vous proposons d’aborder les concepts, les composants et la démarche de mise en route de la solution dans un environnement Cloud Foundation.
Concepts
Workload Management étend les fonctionnalités du cluster vSphere à la prise en charge des containers au travers du runtime Kubernetes « VMware Tanzu Kubernetes Grid ».
Le caractère unique de la solution de VMware réside dans l’intégration étroite entre vSphere et Kubernetes dans laquelle l’orchestrateur est devenu un service du cluster vSphere à part entière et non uniquement un workload invité tournant dans des VMs.
Cette intégration se reflète dans vSphere par l’introduction de nouveaux objets et de concepts hérités de Kubernetes.
Supervisor Cluster
Un cluster vSphere sur lequel est activée la fonctionnalité Workload Management est appelé « Supervisor Cluster ». Il implémente alors la logique de Kubernetes en complément des services de virtualisation déjà connus sur vSphere.
Le Supervisor Cluster est pourvu d’une control plane Kubernetes exécutée sous la forme de trois machines virtuelles. Celles-ci interagissent avec vCenter et exposent l’API Kubernetes aux utilisateurs de la solution.
Namespaces vSphere
Les namespaces vSphere sont l’expression des namespaces Kubernetes dans un environnement vSphere. Ils introduisent une notion de mutli-tenancy dans le partage des ressources du Supervisor Cluster ainsi qu’une gestion fine des quotas.
vSphere Pods
Les vSphere Pods sont de nouveaux objets représentant des Pods Kubernetes sur un cluster vSphere. Ils sont déployés sous la forme de micro-VMs dotées d’un environnement Linux léger optimisé pour l’exécution de containers. NSX-T assure l’ensemble des services réseau de Kubernetes (services, ingress, security policy,…).
Ce modèle technologique apporte un gain substantiel de performance par rapport aux clusters Kubernetes invités (tournant sous forme de VMs) car les Pods sont exécutés directement par l’hôte ESXi, bénéficiant ainsi de l’efficacité de son ordonnanceur. En outre, la visibilité des charges de travail containerisées est améliorée par le fait que les vSphere Pods apparaissent dans l’inventaire du vCenter.
L’administration des vSphere Pods et leur comportement est identique à celle d’un cluster Kubernetes « traditionnel », les opérations sont réalisées au travers de l’API Kubernetes via l’outil CLI kubectl.
Tanzu Kubernetes Grid Service (TKGS)
Le Tanzu Kubernetes Grid Service permet le provisionnement à la demande de clusters Tanzu Kubernetes tournant sous la forme de VMs cette fois-ci (on parle également de « guest clusters »). Les clusters Tanzu Kubernetes sont représentés dans l’inventaire du vCenter par un nouveau type d’objet.
La tâche de provisionnement d’un cluster Tanzu Kubernetes est déclenchée en mode « self-service » au moyen de l’API Kubernetes exposée par le Supervisor Cluster. Les clusters Tanzu déployés par TKGS sont conformes aux standards de la communauté Kubernetes, garantissant l’exécution de toute application nécessitant le respect de ces standards. Il est par ailleurs possible de choisir la version de Kubernetes à exécuter sur le cluster Tanzu et de faire tourner en parallèle des clusters aux versions différentes.
VM Service
Ce troisième service va grandement faciliter le travail des équipes DevOps qui jonglent avec des machines virtuelles en parallèle de services containerisés. Il est en effet courant qu’une application ne soit pas entièrement packagée sous forme de containers et conserve des composants installés dans des machines virtuelles (les bases de données par exemple).
Le VM Service permet aux équipes DevOps de provisionner des machines virtuelles au moyen de Kubernetes. Les opérations sont facilitées par l’usage d’un standard unique laissant la liberté aux équipes DevOps de déployer des VMs à la demande, dans le respect des quotas alloués par les administrateurs IT.
Services d’infrastructure, automatisés par Kubernetes
Pour finir, la solution expose des services d’infrastructure nécessaires au bon fonctionnement de l’environnement Kubernetes :
- Service réseau, reposant sur NSX-T
- Service de stockage, exposé par vSphere (vSAN, VMFS, NFS, vVol)
- Service de registre intégré à vCenter, porté par Harbor
Composants logiciels de la solution
Avant de nous lancer dans la phase d’installation, arrêtons-nous un instant sur la liste des composants logiciels nécessaires.
Pour bénéficier de toutes les fonctionnalités offertes par la solution, l’environnement cible doit disposer de :
- vSphere 7 Enterprise Plus
- NSX-T Advanced ou supérieur
- Stockage vSAN ou baie de stockage
- Souscription à l’offre Tanzu Kubernetes Grid
La manière la plus simple de se procurer et de déployer l’ensemble de ces éléments est encore d’opter pour une édition de Cloud Foundation with Tanzu.
Remarque : Les éditions de VMware Cloud Foundation (VCF) sont commercialisées sous forme de licences perpétuelles mais le service Tanzu qui les accompagne est une souscription d’une durée de 1 ou 3 ans. Toutefois, une édition de VCF entièrement disponible en souscription existe aussi.
Les éditions de Cloud Foundation with Tanzu incluent une souscription à Tanzu Standard. Il existe cependant une possibilité de souscrire à Tanzu Advanced en lieu et place de Tanzu Standard. Veillez à choisir la bonne édition de Tanzu dès le départ car il n’existe pas d’upgrade de souscription pour passer d’une édition de Tanzu à une autre.
vSphere ou Cloud Foundation with Tanzu?
Cela ne vous aura peut-être pas échappé, la solution Tanzu est disponible sur les environnements vSphere 7 et sur la plateforme Cloud Foundation.
En présence de NSX-T, le niveau fonctionnel de vSphere with Tanzu est sensiblement équivalent à celui de Cloud Foundation with Tanzu. Le déploiement, la configuration et la gestion du cycle de vie de l’environnement sont toutefois grandement simplifiés sur les clusters administrés par Cloud Foundation.
En l’absence de NSX-T, la mise en service de vSphere with Tanzu sur switch distribué est possible (depuis vSphere 7 Update 1) mais prive la plateforme des vSphere Pods dont les services réseaux reposent entièrement sur les capacités de NSX-T. Le registre intégré à vCenter ne sera pas non plus disponible car il dépend lui-même des vSphere Pods. Le VM Service et Tanzu Kubernetes Grid Service (TKGS) restent accessibles.
Lien vers la documentation : Supervisor Cluster Networking
Mise en service sur Cloud Foundation
Dans la suite de cet article, nous considèrerons qu’un environnement Cloud Foundation parfaitement opérationnel est déjà disponible.
Le service Tanzu peut être activé sur tout environnement Cloud Foundation, à l’exception des clusters à deux nœuds (nouvellement introduits en version 4.4 de VCF) et des topologies en Stretched Cluster. La limitation autour des stretched clusters est vouée à évoluer dans le futur, nous ne manquerons pas de revenir dessus le moment opportun.
Les architectures dites « consolidées » sont supportées de même que les Workload Domains VCF utilisant une baie de disques en guise de stockage primaire et déployés sur au moins 3 noeuds.
Note : Les clusters à deux nœuds ne permettent pas de déployer les trois Control Plane Kubernetes du Supervisor Cluster.
Prérequis réseau
Le service Tanzu nécessite la configuration d’un cluster NSX Edge. Celui-ci délivre (entre autres choses) les fonctionnalités de load balancing requises au bon fonctionnement des services Kubernetes du Supervisor Cluster.
Le cluster NSX Edge doit être déployé sur le cluster vSphere avant de lancer la mise en service de Workload Management. La console SDDC Manager de Cloud Foundation vous assiste dans l’installation du NSX Edge Cluster sur le Workload Domain en vous proposant le cas d’usage « Kubernetes – Workload Management »
Plusieurs sous-réseaux devront être renseignés lors du déploiement du service Tanzu. Voici leurs rôles respectifs :
Réseau | Adressage | Utilité |
POD CIDR | Au moins un /22 | Adresses assignées aux vSphere Pods |
Services CIDR | Au moins un /24 | Adresses assignées aux services de type ClusterIP déployés sur vSphere Pods |
Ingress CIDR | Au moins un /27 | Adresses assignées aux services de type LoadBalancer et Ingress pour les vSphere Pods, LoadBalancer uniquement pour les Tanzu Kubernetes Clusters |
Egress CIDR | Au moins un /27 | Adresses de SNAT permettant aux vSphere Pods de communiquer vers l’extérieur du Supervisor Cluster |
Management | 5 IP consécutives | Adresses réservées aux services de management (control plane du Supervisor Cluster) |
Note : Soyez attentif à la configuration du Edge Cluster NSX. Assurez-vous que le routage fonctionne correctement pour les réseaux Ingress et Egress. Si vous travaillez avec du routage statique alors pensez à configurer les deux sous-réseaux afin que les Pods Kubernetes puissent communiquer avec l’extérieur.
Création d’une Content Library
Le dernier travail préliminaire à la mise en service de Tanzu consiste à créer une « Content Library ».
Cette librairie est destinée à stocker les images (OVA) des Nodes Tanzu servant à la control plane du Supervisor Cluster et aux Nodes des clusters Tanzu Kubernetes Grid (guest clusters). La librairie récupère automatiquement les nouvelles images depuis un dépôt en ligne de VMware.
Note : Il est également possible de créer une librairie locale déconnectée d’internet.
Lien vers la documentation : Create a Subscribed Content Library
Mise en service de Tanzu
Un fois le travail préliminaire effectué, vous pouvez lancer le processus de déploiement de Tanzu appelé « Kubernetes – Workload Management » dans l’onglet « Solutions » de l’interface SDDC Manager.
L’ensemble des prérequis vous sera rappelé sous la forme d’une « checklist » dans laquelle vous devrez préciser les éléments d’infrastructure à utiliser lors du déploiement. Vous serez invités à sélectionner le Workload Domain où déployer Tanzu, le NSX Edge Cluster adéquat ainsi que la librairie précédemment créée.
Note : si vous ne parvenez pas à sélectionner votre NSX Edge Cluster, alors suivez les étapes décrites dans la KB 83991.
Dans le cas où votre Workload Domain est composé de plusieurs clusters vSphere, vous devrez préciser lequel d’entre eux sera la cible du déploiement des services Tanzu.
Le processus procède à une dernière vérification puis vous invite à terminer le déploiement du service dans vCenter.
Activation sous vCenter Server
Le déploiement du Supervisor Cluster se poursuit sous vCenter au travers d’un guide dans lequel vous rappellerez les éléments précédemment validés par SDDC Manager.
Le guide vous demande de choisir le vCenter qui pilote le cluster pour lequel vous voulez activer les
Supervisor Cluster, puis le type de réseau qui va être activé, par défaut NSX-T.
L’avantage d’activer Tanzu avec Cloud Foundation c’est que vous disposez de base de NSX-T. Ceci vous donne accès à des fonctions comme les vSphere Pods ou Harbor embarqué que vous ne pourrez pas avoir en utilisant la couche réseau traditionnel de vSphere.
Vous choisissez ensuite le cluster puis la taille du contrôle plane qui dépend du nombre d’environnements Kubernetes que vous souhaitez mettre en œuvre par la suite.
Ensuite vient le choix du stockage pour héberger les master nodes, la partie réseau de management pour les masters nodes et le choix du réseau pour les Pods.
Enfin, la librairie où se trouve les images de référence pour déployer les masters nodes.
A la fin du guide, vous obtenez un récapitulatif des éléments de configuration. Il ne vous reste plus qu’à lancer la procédure de déploiement.
La progression du déploiement est reflétée dans le guide, ainsi que dans la liste des tâches de vCenter. Les tâches peuvent prendre plusieurs minutes.
A la fin du processus de déploiement, vous obtenez l’adresse IP de l’API Kubernetes du Supervisor Cluster.
Dans l’inventaire du vCenter est apparu un « Ressource Pool » nommé Namespaces contenant les 3 VMs de la control plane du Supervisor Cluster
Rendez-vous à présent à l’adresse IP indiquée via un browser internet pour récupérer l’outil Kubectl avec l’extension pour vSphere.
Ce premier article sur Cloud Foundation with Tanzu touche à sa fin. Nous avons vu ensemble comment est conçue la solution et comment la mettre en service. Nous poursuivrons l’exploration de Cloud Foundation with Tanzu lors d’un prochain article en réalisant les opérations de configuration d’un Namespace vSphere et du registre intégré avant de déployer notre premier workload.