Vous provisionnez des clusters Tanzu Kubernetes en appelant l'API déclarative de Service Tanzu Kubernetes Grid à l'aide de kubectl et d'une spécification de cluster définie dans un fichier YAML. Après avoir provisionné un cluster, vous l'utilisez et y déployez des charges de travail à l'aide de kubectl.
Ce workflow prend en charge Service Tanzu Kubernetes Grid v1alpha2 API. Si vous utilisez l'API v1alpha1, reportez-vous à ce workflow.
Conditions préalables
Vérifiez que les conditions préalables suivantes sont remplies avant de démarrer la procédure de workflow :
Procédure
- Téléchargez et installez les Outils de l'interface de ligne de commande Kubernetes pour vSphere .
- Authentifiez-vous auprès du Cluster superviseur à l'aide du Plug-in vSphere pour kubectl.
kubectl vsphere login --server=IP-ADDRESS --vsphere-username USERNAME
- Vérifiez que la connexion au Cluster 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
tkgs-ns
Où
192.197.2.65
est le contexte du
Cluster superviseur et
tkgs-ns
est le contexte de l'
Espace de noms vSphere dans lequel vous prévoyez de provisionner le cluster
Tanzu Kubernetes.
- Vérifiez que l'instance cible de l'Espace de noms vSphere est le contexte actuel.
kubectl config get-contexts
L'instance cible de l'
Espace de noms vSphere n'est pas le contexte actuel, basculez sur celui-ci.
kubectl config use-context tkgs-ns
- Répertoriez les liaisons de classe de machine virtuelle disponibles dans l'Espace de noms vSphere cible.
kubectl get virtualmachineclassbindings
Vous pouvez uniquement utiliser les classes de machine virtuelle qui sont liées à l'espace de noms cible. Si vous ne voyez aucune classe de machine virtuelle, vérifiez que les classes de machine virtuelle par défaut sont ajoutées à
Espace de noms vSphere.
- Obtenez les classes de stockage de volume persistant disponibles.
kubectl describe storageclasses
- 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
Vous ne pouvez utiliser que les versions renvoyées par cette commande. Si vous ne voyez aucune version, ou ne voyez pas les versions souhaitées, vérifiez que vous avez synchronisé les fichiers OVA souhaités avec la bibliothèque de contenu.
- Créez le fichier YAML pour le provisionnement de votre cluster Tanzu Kubernetes.
- Passez en revue la spécification de l'API v1alpha2.
- Commencez par l'un des exemples de fichiers YAML pour le provisionnement d'un cluster, par défaut ou personnalisé en fonction de vos besoins.
- Enregistrez le fichier YAML sous
tkgs-cluster-1.yaml
, ou un nom similaire.
- Remplissez le fichier YAML en fonction de vos besoins et en utilisant les informations que vous avez obtenues à partir de la sortie des commandes précédentes, notamment :
- Le nom du cluster tel que
tkgs-cluster-1
- L'instance cible de Espace de noms vSphere, telle que
tkgs-ns
- Les classes de machines virtuelles liées, telles que
guaranteed-medium
et guaranteed-small
- Les classes de stockage pour les nœuds de cluster et les charges de travail, telles que
vwt-storage-policy
- 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.21.6---vmware.1-tkg.1.b3d708a
- Personnalisez votre fichier YAML si nécessaire. Par exemple :
- Ajoutez des volumes distincts pour les composants à taux de variation élevé, tels que
etcd
et containerd
.
- Spécifiez une classe de stockage persistant par défaut pour les nœuds de cluster
- Personnalisez la mise en réseau du cluster, y compris le CNI, l'espace et les CIDR de service
Le résultat de cette étape est un code YAML valide pour le provisionnement de votre cluster TKGS. Par exemple :
apiVersion: run.tanzu.vmware.com/v1alpha2
kind: TanzuKubernetesCluster
metadata:
name: tkgs-cluster-1
namespace: tkgs-ns
spec:
topology:
controlPlane:
replicas: 3
vmClass: guaranteed-medium
storageClass: vwt-storage-policy
volumes:
- name: etcd
mountPath: /var/lib/etcd
capacity:
storage: 4Gi
tkr:
reference:
name: v1.21.6---vmware.1-tkg.1.b3d708a
nodePools:
- name: worker-nodepool-a1
replicas: 3
vmClass: guaranteed-medium
storageClass: vwt-storage-policy
volumes:
- name: containerd
mountPath: /var/lib/containerd
capacity:
storage: 16Gi
tkr:
reference:
name: v1.21.6---vmware.1-tkg.1.b3d708a
- name: worker-nodepool-a2
replicas: 2
vmClass: guaranteed-small
storageClass: vwt-storage-policy
tkr:
reference:
name: v1.21.6---vmware.1-tkg.1.b3d708a
settings:
storage:
defaultClass: vwt-storage-policy
Note : L'exemple ci-dessus utilise la mise en réseau de clusters par défaut, c'est-à-dire, les plages CNI Antrea et CIDR par défaut pour les espaces et les services de cluster.
- Provisionnez le cluster en exécutant la commande kubectl suivante.
kubectl apply -f tkgs-cluster-1.yaml
Résultat attendu :
tanzukubernetescluster.run.tanzu.vmware.com/tkgs-cluster-1 created
- Surveillez le déploiement des nœuds de cluster à l'aide de kubectl.
kubectl get tanzukubernetesclusters
Le cluster n'est pas prêt, car il est en cours de provisionnement.
NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE
tkgs-cluster-1 3 5 v1.21.6---vmware.1-tkg.1.b3d708a 2m4s False True
Après quelques minutes, l'état PRÊT doit être True.
NAME CONTROL PLANE WORKER TKR NAME AGE READY TKR COMPATIBLE UPDATES AVAILABLE
tkgs-cluster-1 3 5 v1.21.6---vmware.1-tkg.1.b3d708a 13m True True
- Surveillez le déploiement des nœuds de cluster à l'aide de vSphere Client.
Dans l'inventaire
Hôtes et clusters de vSphere, vous devez voir les nœuds de machine virtuelle déployés dans l'instance cible de l'
Espace de noms vSphere.
- Exécutez des commandes
kubectl
supplémentaires pour vérifier le provisionnement du cluster.
kubectl get tanzukubernetescluster,cluster-api,virtualmachinesetresourcepolicy,virtualmachineservice,virtualmachine
- À l'aide du Plug-in vSphere pour kubectl, connectez-vous au cluster.
kubectl vsphere login --server=IP-ADDRESS --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 tkgs-cluster-1 --tanzu-kubernetes-cluster-namespace tkgs-ns
- Vérifiez que la connexion au cluster Tanzu Kubernetes 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
tkgs-cluster-1
tkgs-ns
Où
192.197.2.65
est le contexte du
Cluster superviseur,
tkgs-ns
est le contexte de l'
Espace de noms vSphere et
tkgs-cluster-1
est le contexte du cluster
Tanzu Kubernetes.
- Répertoriez les contextes de cluster disponibles à l'aide de
kubectl
.
kubectl config get-contexts
Si nécessaire, utilisez
kubect config use-context tkgs-cluster-1
pour basculer vers le cluster
Tanzu Kubernetes afin d'en faire le contexte actuel.
- Vérifiez le provisionnement du cluster à l'aide de la commande kubectl suivante.
Par exemple :
NAME STATUS ROLES AGE VERSION
tkgs-cluster-1-control-plane-6ln2h Ready control-plane,master 30m v1.21.6+vmware.1
tkgs-cluster-1-control-plane-6q67n Ready control-plane,master 33m v1.21.6+vmware.1
tkgs-cluster-1-control-plane-jw964 Ready control-plane,master 37m v1.21.6+vmware.1
tkgs-cluster-1-worker-nodepool-a1-4vvkb-65494d66d8-h5fp8 Ready <none> 32m v1.21.6+vmware.1
tkgs-cluster-1-worker-nodepool-a1-4vvkb-65494d66d8-q4g24 Ready <none> 33m v1.21.6+vmware.1
tkgs-cluster-1-worker-nodepool-a1-4vvkb-65494d66d8-vdcn4 Ready <none> 33m v1.21.6+vmware.1
tkgs-cluster-1-worker-nodepool-a2-2n22f-bd59d7b96-nh4dg Ready <none> 34m v1.21.6+vmware.1
tkgs-cluster-1-worker-nodepool-a2-2n22f-bd59d7b96-vvfmf Ready <none> 33m v1.21.6+vmware.1
- Vérifiez le provisionnement du cluster à l'aide des commandes kubectl supplémentaires.
kubectl get namespaces
kubectl get pods -A
kubectl cluster-info
kubectl api-resources
- Définissez la stratégie de sécurité de l'espace appropriée.
- Déployez un exemple de charge de travail et vérifiez la création du cluster.
- Procédez à la mise en place du cluster en déployant des extensions TKG.