Suivez ce workflow pour provisionner un cluster de services TKG de manière déclarative à l'aide de commandes kubectl et d'une spécification de cluster définie dans un fichier YAML.

Ce workflow prend en charge le provisionnement d'un cluster TKG de manière déclarative à l'aide de kubectl et YAML.

Conditions préalables

Vérifiez ou remplissez les conditions préalables suivantes avant de démarrer le workflow de provisionnement :

Procédure

  1. Installez Outils de l'interface de ligne de commande Kubernetes pour vSphere .
  2. Authentifiez-vous auprès du Superviseur à l'aide de kubectl.
    kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN --vsphere-username USERNAME
    Note : Le nom de domaine complet du Superviseur ne peut être utilisé que s'il est activé. Pour plus d'informations, reportez-vous à la documentation de configuration du Superviseur.
  3. Vérifiez que la connexion au Superviseur a réussi.
    Vous devriez voir un message semblable au suivant :
    Logged in successfully.
    
    You have access to the following contexts:
       192.197.2.65
       tkg2-cluster-namespace
    192.197.2.65 est le contexte du Superviseur et tkg2-cluster-namespace est le contexte de l' Espace de noms vSphere dans lequel vous prévoyez de provisionner le cluster TKG.
  4. Vérifiez que l'instance cible de l'Espace de noms vSphere est le contexte actuel.
    kubectl config get-contexts
    CURRENT   NAME                    CLUSTER         AUTHINFO                                        NAMESPACE
              192.197.2.65            192.197.2.65    wcp:10.197.154.65:[email protected]
    *         tkg2-cluster-namespace  10.197.154.65   wcp:10.197.154.65:[email protected]   tkg2-cluster-namespace
    
    L'instance cible de l' Espace de noms vSphere n'est pas le contexte actuel, basculez sur celui-ci.
    kubectl config use-context tkg2-cluster-namespace
  5. Répertoriez les classes de machines virtuelles disponibles dans l'Espace de noms vSphere.
    kubectl get virtualmachineclass
    Vous pouvez uniquement utiliser les classes de machines virtuelles qui sont liées à l'espace de noms cible. Si vous ne voyez aucune classe de machine virtuelle, vérifiez que les classes de machines virtuelles par défaut ont été associées à l' Espace de noms vSphere. Voir aussi Dépanner les erreurs de classe de machine virtuelle.
  6. Obtenez les classes de stockage de volume persistant disponibles.
    kubectl describe namespace VSPHERE-NAMESPACE-NAME
    La commande renvoie des détails sur l'espace de noms, y compris la classe de stockage au format tkg2-storage-policy.storageclass.storage.k8s.io/requests.storage. Le premier jeton de la chaîne est le nom de la classe de stockage (dans cet exemple, tkg2-storage-policy). La commande kubectl describe storageclasses renvoie également les classes de stockage disponibles, mais nécessite des autorisations d'administrateur vSphere.
  7. Répertoriez les Versions de Tanzu Kubernetes disponibles.
    Vous pouvez utiliser l'une des commandes suivantes pour effectuer cette opération :
    kubectl get tkr
    kubectl get tanzukubernetesreleases
    Cette commande renvoie les TKR qui sont à votre disposition dans cet Espace de noms vSphere et indique leur compatibilité avec le Superviseur sur lequel vous effectuez le déploiement. Vous ne pouvez utiliser que les versions renvoyées par cette commande. Si vous ne voyez aucune version ou que vous ne voyez pas les versions souhaitées, vérifiez que vous avez effectué les opérations suivantes : a) Création d'une bibliothèque de contenu TKR, b) Synchronisation de la bibliothèque de contenu avec les fichiers OVA souhaités et c) Association de la bibliothèque de contenu à l' Espace de noms vSphere sur lequel vous provisionnez le cluster TKG.
  8. Créez le fichier YAML pour provisionner le cluster TKG.
    1. Déterminez le type de cluster que vous allez créer et examinez son API et ses fonctionnalités :
    2. Commencez par l'un des exemples de YAML pour le provisionnement du cluster.
    3. Enregistrez le fichier YAML sous tkg2-cluster-1.yaml, ou un nom similaire.
    4. Renseignez le fichier YAML à l'aide des informations que vous avez collectées dans la sortie des commandes précédentes, notamment :
      • Le nom du cluster tel que tkg2-cluster-1
      • L'Espace de noms vSphere cible
      • Les classes de machines virtuelles liées, telles que guaranteed-medium
      • Classe de stockage pour les nœuds de cluster et les volumes persistants
      • Le nombre de nœuds de plan de contrôle et de nœuds worker (réplicas)
      • La version de Tanzu Kubernetes spécifiée par la chaîne TKR NAME, par exemple v1.25.7+vmware.3-fips.1-tkg.1
    5. Personnalisez le YAML du cluster TKG si nécessaire.
      • Ajoutez des volumes distincts pour les composants à taux de variation élevé, tels que containerd.
      • Spécifier une classe de stockage persistant par défaut pour les nœuds de cluster et les volumes persistants
      • Personnalisez la mise en réseau du cluster, y compris le CNI, l'espace et les CIDR de service
    6. Utilisez un vérificateur de syntaxe YAML et vérifiez que le YAML est valide.
    Le résultat de cette étape est un code YAML valide pour le provisionnement du cluster TKG.
  9. Provisionnez le cluster TKG en exécutant la commande suivante.
    kubectl apply -f tkg2-cluster-1.yaml
    Résultat attendu :
    tanzukubernetescluster.run.tanzu.vmware.com/tkg2-cluster-1 created
  10. Surveillez le provisionnement du cluster TKG.
    kubectl get tanzukubernetesclusters
    kubectl get tkc
    Ou, si vous créez un cluster à l'aide de l'API v1beta1 :
    kubectl get cluster
    Initialement, l'état PRÊT est False, car le cluster est en cours de provisionnement. Après quelques minutes, l'état doit être True.
    NAME              CONTROL PLANE   WORKER   TKR NAME                            AGE   READY   TKR COMPATIBLE   UPDATES AVAILABLE
    tkg2-cluster-1    3               6        v1.25.7+vmware.3-fips.1-tkg.1       49m   True    True
    Exécutez des commandes supplémentaires pour afficher des détails sur le cluster.
    kubectl get tanzukubernetescluster,cluster,virtualmachinesetresourcepolicy,virtualmachineservice,kubeadmcontrolplane,machinedeployment,machine,virtualmachine
    kubectl describe tanzukubernetescluster tkg2-cluster-1
  11. Surveillez le déploiement des nœuds de cluster à l'aide de vSphere Client.
    Dans l'inventaire vSphere pour les Hôtes et clusters, vous devez voir les machines virtuelles de nœud de cluster déployés dans l' Espace de noms vSphere cible.
  12. Une fois que tous les nœuds de cluster TKG sont à l'état PRÊT, connectez-vous au cluster à l'aide du Plug-in vSphere pour kubectl.
    kubectl vsphere login --server=SUPERVISOR-CONTROL-PLANE-IP-ADDRESS-or-FQDN \
    --vsphere-username USERNAME \
    --tanzu-kubernetes-cluster-name CLUSTER-NAME \
    --tanzu-kubernetes-cluster-namespace NAMESPACE-NAME
    Par exemple :
    kubectl vsphere login --server=192.197.2.65 --vsphere-username [email protected] \
    --tanzu-kubernetes-cluster-name tkg2-cluster-1 --tanzu-kubernetes-cluster-namespace tkg2-cluster-namespace
    Note : La commande de connexion ne réussit qu'une fois que les nœuds du plan de contrôle sont en cours d'exécution et que le plug-in du service d'authentification a démarré. Si des nœuds worker sont en cours de création, la connexion peut être saccadée. Il est recommandé de vous connecter une fois que tous les nœuds du cluster sont à l'état PRÊT.
  13. Basculez vers le contexte du cluster TKG afin qu'il s'agisse du contexte actuel.
    Lors d'une connexion réussie au cluster TKG, un message semblable au suivant doit s'afficher.
    Logged in successfully.
    
    You have access to the following contexts:
       192.197.2.65
       tkg2-cluster-namespace
       tkg2-cluster-1
    192.197.2.65 est le contexte du Superviseur, tkg2-cluster-namespace est le contexte de l' Espace de noms vSphere et tkg2-cluster-1 est le contexte du cluster TKG.
    Basculez vers le contexte du cluster TKG.
    kubect config use-context tkg2-cluster-1
  14. Vérifiez les ressources du cluster TKG.
    kubectl get nodes
    kubectl get namespaces
    kubectl get pods -A
    kubectl cluster-info
    kubectl api-resources
  15. Effectuez l'expiration du cluster TKG en déployant un espace de test et vérifiez qu'il fonctionne comme prévu.