KaaS – Cluster de management

Installation du cluster de management

Prérequis

  • Un datacenter virtuel
  • Un réseau routé avec accès à internet (snat)
  • Résolution DNS Internet
  • La fonctionnalité de LoadBalancing activée (demande à effectuer)
  • Cluster de bootstrap déployé
  • Les outils de ligne de commande : KaaS – Outils
  • Pour IaaS Interne seulement : Source NAT pour Access API

L’ensemble des étapes ci-dessous doivent être réalisées depuis le cluster de bootstrap, c’est à dire connecté sur ce cluster via kubectl


NOTE : Si vous n’avez pas encore déployé un cluster de bootstrap dans votre environnement, merci de vous reporter au processus de déploiement via la page ci-dessous avant de continuer

Pour vérifier sur quel cluster vous êtes connecté, vous pouvez utiliser les commandes ci-dessous.

Déploiement

Préparation du fichier de configuration du cluster à créer

L’outil clusterctl s’appuie sur des fichiers de templates (fournis par VMware dans notre cas) ainsi que d’un fichier de configuration avec l’ensemble des paramètres requis pour la création.

Le fichier de configuration d’exemple se situe : ~/.cluster-api/clusterctl.yaml

Nous l’utilisons donc comme base pour notre cluster mgt01

Remplissez le fichier ***-config.yml précédemment copié

Le fichier ***-config.yml est utilisé pour renseigner l’ensemble des informations nécessaires à Cluster API pour déployer un cluster.

ParamètreValeurexemple
VCD_SITEPoint de connection (endpoint) à vCloud Director Doit être au format : https://VCD_HOST. Sans slash (/) à la fin.https://console1.cloudavenue.orange-business.com
VCD_ORGANIZATIONNom de l’organisation VCD où déployer le clusterORG1CUSTOMER1
VCD_ORGANIZATION_VDCNom du datacenter virtuel où déployer le clusterMYPRODVDC1
VCD_ORGANIZATION_VDC_NETWORKNom du réseau ou déployer le clusterPRODNETWORK01
VCD_CATALOGNom du catalogue VCD où sont stocké les templatescse-tkgm-template
VCD_TEMPLATE_NAMENom du template de VM à utiliser (Ces templates sont stockés dans les catalogues vCloud Director)ubuntu-2004-kube-v1.22.9+vmware.1-tkg.1-2182cbabee08edf480ee9bc5866d6933
VCD_REFRESH_TOKEN_B64Token vCloud Director à utiliser, Voir ici pour créer un tokenLe refreshToken est a renseigner en base64. Commande pour cela : echo ajJdhYghdUgzj | base64
VCD_CONTROL_PLANE_SIZING_POLICYNom de la stratégie de dimensionnement de machine virtuelle (Compute Policy) à utiliser pour les noeuds de controlplane (masters).Medium
VCD_CONTROL_PLANE_STORAGE_PROFILENom de la stratégie de stockage ou le ou les noeuds de contrôle vont être déployésgold Note : Ceci est un exemple, se reporter aux stratégies de stockage disponible dans votre VDC.
VCD_CONTROL_PLANE_PLACEMENT_POLICYNom de la stratégie de placement à utiliser. Celle-ci peut rester vide par défaut.
VCD_WORKER_SIZING_POLICYNom de la stratégie de dimensionnement de machine virtuelle (Compute Policy) à utiliser pour les noeuds de travail (workers).Medium
VCD_WORKER_STORAGE_PROFILENom de la stratégie de stockage ou le ou les noeuds de travail vont être déployésgold Note : Ceci est un exemple, se reporter aux stratégies de stockage disponible dans votre VDC.
VCD_WORKER_PLACEMENT_POLICYNom de la stratégie de placement à utiliser. Celle-ci peut rester vide par défaut.
VCD_RDE_IDID du cluster en cas d’import d’un cluster qui aurait été créé en dehors de cet environnementCommentez la ligne en commençant par un # ou supprimez là simplement.
VCD_VIP_CIDRCIDR du réseau externe pour créer des services de type load balancer.
Vous pouvez modifier ou configurer ce paramètre plus tard : KaaS Standard – Déployer un cluster de travail
CLUSTER_NAME:Nom du cluster à créermgt01
TARGET_NAMESPACENom du namespace ou le cluster va être placé dans le cluster cluster api.default
CONTROL_PLANE_MACHINE_COUNTNombre de noeuds master (doit être un chiffre impair)1
WORKER_MACHINE_COUNTNombre de noeuds worker1
KUBERNETES_VERSIONVersion de Kubernetes à installerv1.22.9+vmware.1
SSH_PUBLIC_KEYLa clé ssh qui sera utilisée pour se connecter en ssh aux noeuds Kubernetes qui seront déployés.
La clé doit être de 2048bits et au format OpenSSH
Aide : Créer une clé SSH
!! N’oubliez pas d’entourer la clé SSH de guillemet (« )

Les autres paramètres peuvent être ignorés

Générez le fichier yaml de création.

Appliquez le fichier yaml pour lancer la création du cluster.


Puis attendez que le cluster soit créé :

  1. Vérifiez que l’objet Cluster est en phase Provisionned via la commande : kubectl get cluster
  2. Attendez que tous les noeuds de master soient en status READY via la commande : kubectl get kubeadmcontrolplane

Grâce au ClusterResourceSet les PODS de CNI, CSI et CPI sont déployés automatiquement, cependant ils leur manquent quelques éléments de configuration que nous allons ajouter maintenant. C’est pourquoi ces PODS ne sont pas encore running sur le nouveau cluster créé.


Pour cela il faut bien être connecté au cluster de management et non pas au nouveau cluster.

Modifiez les 6 premières lignes de commandes fournies à droite et appliquez l’ensemble

Créer les secrets :

  • CLUSTERNAME : Nom du cluster de management que l’on est en train de créer
  • MGT : chemin vers le kubeconfig de notre cluster de bootstrap (qui agit comme notre cluster de management)
  • VCDHOST: URL de la console vCloud Director
  • ORG: nom de votre organisation
  • OVCD: nom du datacentervirtuel ou se situe le cluster
  • ONETWORK: nom du réseau VCD ou se situe le cluster

Après quelques minutes tous les PODS doivent être en phase RUNNING sur le cluster mgt01

Créer les configmaps


Utilisez les deux commandes ci-contre pour créer les configmaps requis.

Il est possible de les customiser notamment en choisissant un vipSubnet.

Après quelques instants tous les PODS doivent être Running sur le cluster et les composants machinedeployment sur le cluster de management doivent être en status READY et Phase Running

Vous pouvez maintenant récupérer le fichier kubeconfig pour ce nouveau cluster

Exemple :

  • Passez au cluster de gestion avec kctx ou de toute autre manière que vous préférez.
  • Vérifiez si vous êtes correctement connecté au bon cluster en utilisant la commande kubectl get nodes.

Installation de clusterAPI

Suivez les instructions de cette page : KaaS Standard – Cluster API installation

Récupérer un refreshToken VCD

  • Ouvrez votre console vCloud Director avec le compte que vous souhaitez utiliser pour créer vos clusters (compte de service)
  • Dans le coin en haut à droite de la page, cliquez sur les 3 points verticaux.
  • Cliquez sur Préférence utilisateur
  • Dans la section Jetons d’accès cliquez sur Nouveau
  • Donnez un nom à ce token puis cliquez sur Créer
  • Copiez le jeton. Ce jeton est à garder précieusement et bien sécurisé.