Nutanix – NKP : Déployer un premier cluster de workloads

karbon icon

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 » :

NKP Create cluster menu

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.

NKP cluster general configuration

Je commence ici par spécifier :

  1. Le nom du cluster. Ici rien de particulier hormis le fait qu’il ne doit être qu’en minuscule.
  2. Le provider uniquement Nutanix n’est pas modifiable, c’est une limitation de la license Starter.
  3. La version de kubernetes embarqué en NKP 2.5.0
  4. 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é.

SSH key generation

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 :

node pools 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 :

node pools 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 :

nkp cluster storage

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

NKP cluster network

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.

NKP cluster registry

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 :

nkp vm create

 

  • La configuration automatisée via cloud-init :

cloud init nodes

2. Validation

Une fois que tout est prêt le cluster apparaît provisionné sur NKP :

NKP cluster ready

Je peux récupérer mon kubeconfig via l’option « Download kuebeconfig’ disponible dans le workspace du cluster :

 

download kubeconfig

Et m’y connecter en déclarant mon contexte en variable :

export kubeconfig=myk8sconfig.yaml

Et l’administrer comme ici avec k9s :

NKP k9s

Mon cluster est prêt, je vais pouvoir ensuite déployer mes applications.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *