Nous avons vu comment déployer rapidement un environnement Nutanix Kubernetes Platform prêt à l’emploi ici et ici.
Il est maintenant temps de déployer un premier cluster Kubernetes sur une plateforme Nutanix.
Ce processus est relativement simple et bien guidé par l’interface graphique.
Ici, je vais créer un tout petit cluster de démo avec le minimum de noeuds requis. Cette configuration de ressources n’est pas adaptée à des environnements de production mais uniquement pour du dev-test (mais le process reste le même, les pools doivent juste être un peu plus larges).
1. Création du cluster
Pour créer le cluster, il suffit de se rendre dans la liste des clusters et d’utiliser la fonctionnalité « Create Cluster » :
J’utilise ensuite le mode graphique guidé, mais il est possible de fournir un yaml ou d’utiliser la ligne de commande avec un syntaxe très proche de celle déja vue lors de la création du cluster NKP.
Paramètres globaux
Plusieurs paramètres sont à spécifier et je vais les détailler ci dessous.
Je commence ici par spécifier :
- Le nom du cluster. Ici rien de particulier hormis le fait qu’il ne doit être qu’en minuscule.
- Le provider uniquement Nutanix n’est pas modifiable, c’est une limitation de la license Starter.
- La version de kubernetes embarqué en NKP 2.5.0
- Les paramètres SSH de mon user. Ici je lui spécifie le username avec lequel je souhaite administrer le cluster, et la clé publique. La documentation ne spécifiant pas le format de clé attendu, il est nécessaire d’avoir une clé RSA en mode inline. Sur ma machine, je la génère avec la commande « ssh-keygen -t rsa« . Vous pouvez aussi suivre la documentation Nutanix officielle sur la génération des clés SSH pour Self-Service qui s’applique aussi à NKP bien que non mentionné.
Configuration des nodes pools
Il est ensuite nécessaire de configurer les informations des deux pools de noeuds différents « control plane » et « workers ».
Pour le control plane :
Il faut ici renseigner :
- Le cluster de destination pour les noeuds control plane
- Le réseau de destination avec IPAM ou DHCP
- L’image des nodeOS récupérée du portail nutanix comme lors de la l’installation NKP ou pré-construite avec l’image builder via la procédure officielle
- L’IP et port du control plane qui va nous permettre d’administrer notre cluster
- Le nombre de noeud control plane voulu (normalement 3 recommandé dans les configurations minimum, j’ai testé l’option single node dans mon environnement actuel limité par les ressources).
- Les ressources souhaitées : minimum 2 vcpu, 6GB de mémoire, et 80 GB de disque (Plus d’informations ici : Control Plane Nodes and Worker Nodes Resource Requirements
Pour les workers :
Il faut ici renseigner :
- Le cluster de destination pour les noeuds workers
- Le réseau de destination avec IPAM ou DHCP
- L’image des nodeOS récupérée du portail nutanix comme lors de la l’installation NKP ou pré-construite avec l’image builder via la procédure officielle
- Le nombre de woirkers voulu (normalement 2 recommandé dans les configurations minimum).
- Les ressources souhaitées : minimum 4 vcpu, 8GB de mémoire, et 80 GB de disque (Plus d’informations ici : Control Plane Nodes and Worker Nodes Resource Requirements
Stockage
Il est ensuite nécessaire de configurer le stockage nécessaire :
Je spécifie ici :
- Le Hypervisor Attached Volumes pour utiliser le réseau interne de l’hyperviseur pour le traffic des données (par défaut)
- Le container de destination
- Le Reclaim Policy en Retain ou Delete selon la réclamation du stockage voulue lors de la « suppression » d’objets
- Le file system en EXT4 ou XFS
Réseau
Ici je renseigne :
- Le réseau interne de mes pods (je conserve les valeurs par défaut, n’ayant pas d’overlapping de réseaux existants)
- Le réseau interne de mes services (même chose ici)
- Je renseigne ensuite ici le range IP de mon loadbalancer, qui me servira pour exposer mes pods au travers du réseau externe via loadbalancer (MetalLB dans les versions actuelles)
Registry
Il y a ensuite la possibilité de spécifier un registry mirroir et/ou privé pour venir tirer des images rapidement lors des déploiements.
Dans mon cas, pour les tests je vais tirer les image via les répo publics. Je n’ai pas renseigné cette configuration.
Je peux ensuite initier la création du cluster avec le bouton « Create ».
Et je peux d’ores et déja monitorer les différentes opérations :
- La création de VMs :
- La configuration automatisée via cloud-init :
2. Validation
Une fois que tout est prêt le cluster apparaît provisionné sur NKP :
Je peux récupérer mon kubeconfig via l’option « Download kuebeconfig’ disponible dans le workspace du cluster :
Et m’y connecter en déclarant mon contexte en variable :
export kubeconfig=myk8sconfig.yaml
Et l’administrer comme ici avec k9s :
Mon cluster est prêt, je vais pouvoir ensuite déployer mes applications.