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ètre | Valeur | exemple |
---|---|---|
VCD_SITE | Point de connection (endpoint) à vCloud Director Doit être au format : https://VCD_HOST. Sans slash (/) à la fin. | https://console1.cloudavenue.orange-business.com |
VCD_ORGANIZATION | Nom de l’organisation VCD où déployer le cluster | ORG1CUSTOMER1 |
VCD_ORGANIZATION_VDC | Nom du datacenter virtuel où déployer le cluster | MYPRODVDC1 |
VCD_ORGANIZATION_VDC_NETWORK | Nom du réseau ou déployer le cluster | PRODNETWORK01 |
VCD_CATALOG | Nom du catalogue VCD où sont stocké les templates | cse-tkgm-template |
VCD_TEMPLATE_NAME | Nom 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_B64 | Token vCloud Director à utiliser, Voir ici pour créer un token | Le refreshToken est a renseigner en base64. Commande pour cela : echo ajJdhYghdUgzj | base64 |
VCD_CONTROL_PLANE_SIZING_POLICY | Nom de la stratégie de dimensionnement de machine virtuelle (Compute Policy) à utiliser pour les noeuds de controlplane (masters). | Medium |
VCD_CONTROL_PLANE_STORAGE_PROFILE | Nom de la stratégie de stockage ou le ou les noeuds de contrôle vont être déployés | gold Note : Ceci est un exemple, se reporter aux stratégies de stockage disponible dans votre VDC. |
VCD_CONTROL_PLANE_PLACEMENT_POLICY | Nom de la stratégie de placement à utiliser. Celle-ci peut rester vide par défaut. | |
VCD_WORKER_SIZING_POLICY | Nom de la stratégie de dimensionnement de machine virtuelle (Compute Policy) à utiliser pour les noeuds de travail (workers). | Medium |
VCD_WORKER_STORAGE_PROFILE | Nom de la stratégie de stockage ou le ou les noeuds de travail vont être déployés | gold Note : Ceci est un exemple, se reporter aux stratégies de stockage disponible dans votre VDC. |
VCD_WORKER_PLACEMENT_POLICY | Nom de la stratégie de placement à utiliser. Celle-ci peut rester vide par défaut. | |
VCD_RDE_ID | ID du cluster en cas d’import d’un cluster qui aurait été créé en dehors de cet environnement | Commentez la ligne en commençant par un # ou supprimez là simplement. |
VCD_VIP_CIDR | CIDR 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éer | mgt01 |
TARGET_NAMESPACE | Nom du namespace ou le cluster va être placé dans le cluster cluster api. | default |
CONTROL_PLANE_MACHINE_COUNT | Nombre de noeuds master (doit être un chiffre impair) | 1 |
WORKER_MACHINE_COUNT | Nombre de noeuds worker | 1 |
KUBERNETES_VERSION | Version de Kubernetes à installer | v1.22.9+vmware.1 |
SSH_PUBLIC_KEY | La 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éé :
- Vérifiez que l’objet Cluster est en phase Provisionned via la commande : kubectl get cluster
- 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é.