Il existe des différences de comportement lors de l'utilisation des commandes tanzu cluster node-pool
par rapport à un cluster qui utilise une définition ClusterClass
, plutôt que d'utiliser d'autres commandes tanzu
. La mise à jour requise du cluster, en particulier de la topologie du cluster, est la seule chose que toutes ces API ont en commun lorsqu'elles fonctionnent sur un cluster ClusterClass
.
tanzu cluster node-pool delete
La commande tanzu cluster node-pool delete
est la modification la plus simple. La ressource de cluster est mise à jour pour supprimer la définition du déploiement de machines avec le nom du pool de nœuds qui est transmis à l'API de suppression. L'API interdit toujours la suppression du pool de nœuds final dans le cluster.
tanzu cluster node-pool delete tkg-wc-vsphere -n md–0
tanzu cluster node-pool list
La commande tanzu cluster node-pool list
récupère les ressources MachineDeployment
de la même manière que dans le cas d'un cluster basé sur un plan et fait correspondre ces ressources aux déploiements de machines dans la topologie du cluster. Cela permet à la commande tanzu cluster node-pool list
de renvoyer les mêmes ressources MachineDeployment
avec des noms mis à jour, afin qu'elles correspondent aux déploiements de machines définis dans la topologie de cluster.
tanzu cluster node-pool list tkg-wc-vsphere
NAME NAMESPACE PHASE REPLICAS READY UPDATED UNAVAILABLE
md-0 default Ready 1 1 1 0
Les propriétés pouvant être mises à jour sur des pools de nœuds dans les clusters basés sur ClusterClass
peuvent être divisées en deux types :
ClusterClass
. Lors du déploiement d'un cluster basé sur une ClusterClass
, la définition du cluster doit spécifier un certain nombre de ces variables, qui s'appliquent par défaut à tous les déploiements de machines. La topologie de déploiement de machines permet de remplacer ces variables selon le déploiement de machines.Les objets ClusterClass
constituent la source définitive des propriétés qui peuvent être modifiées. Les objets TKG ClusterClass
définissent tous une variable, worker
, qui contient les propriétés de VM du nœud worker. Cela inclut instanceType
et vmSize
, respectivement pour AWS et Azure. La version de vSphere inclut des propriétés pour diskGiB
, memoryMiB
et numCPU
. TKG avec superviseur définit des variables de niveau supérieur pour vmClass
et storageClass
, ainsi qu'un tableau pour nodePoolVolumes
pour la personnalisation des nœuds worker. TKG sur vSphere définit également une variable vcenter
pour la mise à jour des propriétés associées à l'instance de vCenter Server.
Tous les objets TKG ClusterClass
définissent une variable nodePoolLabels
qui spécifie les étiquettes de nœud à appliquer aux nœuds worker.
ImportantLes commandes
node-pool
fournies par la CLI Tanzu nécessitent que les variables ci-dessus soient définies sur laClusterClass
pour prendre en charge la création et la mise à jour de pools de nœuds. Si vous utilisez uneClusterClass
personnalisée, ces variables sont requises comme définitions de variables de niveau supérieur dans laClusterClass
. Il est toujours possible d'obtenir et de supprimer des pools de nœuds sur des clusters personnalisés basés sur laClusterClass
à l'aide de la CLI Tanzu. Il existe un cas spécifique dans lequeltanzu cluster node-pool create
ettanzu cluster node-pool update
fonctionnent pour les objets personnalisésClusterClass
, en particulier si la définition du pool de nœuds transmise à la CLI Tanzu spécifie au maximum les variablesreplicas
,az
,name
,workerClass
, ettkrResolver
. Dans ce cas, laworkerClass
doit correspondre à une définitionworkerClass
dans laClusterClass
personnalisée.
tanzu cluster node-pool set
Lorsque la commande tanzu cluster node-pool set
est appelée à l'aide du nom d'un pool de nœuds existant, la mise à jour modifie uniquement le nombre de réplicas et les étiquettes du pool de nœuds nommé, le cas échéant. Toutes les autres options fournies sont ignorées. En particulier, la topologie du cluster est mise à jour avec un nouveau nombre de réplicas et un remplacement de variable nodePoolLabels
si ces valeurs sont fournies.
tanzu cluster node-pool set
La création de pools de nœuds peut suivre l'un des deux chemins. Vous pouvez fournir la commande tanzu cluster node-pool set
pour un déploiement de machines de base qui est utilisé comme point de départ pour le nouveau pool de nœuds. Une copie détaillée du déploiement de machines de base nommé agit comme base sur laquelle les propriétés fournies par l'utilisateur sont superposées. En général, cela signifie que tous les remplacements de variables du déploiement de machines copié sont mis à jour avec les nouvelles valeurs que vous fournissez. Cela est différent du cas où aucun déploiement de machines de base n'est fourni. Dans ce cas, les remplacements de variables sont copiés à partir des définitions de variables globales définies dans la topologie du cluster, puis les valeurs fournies par l'utilisateur sont superposées sur celles-ci. En outre, lorsque vous ne fournissez pas de déploiement de machines de base, vous devez fournir une définition workerClass
et tkrResolver
. Les objets TKG ClusterClass
disposent d'une classe tkg-worker
définie par défaut et doivent être utilisés, sauf si vous avez ajouté votre propre définition de classe de travailleur. Le tkrResolver
est la valeur de l'annotation tkr-resolver
.
Pour utiliser un déploiement de machines de base afin de créer un pool de nœuds, exécutez la commande suivante :
tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml –-base-machine-deployment md-0
Avec le contenu suivant dans le fichier node-pool.yml
:
name: np-1
replicas: 1
nodeMachineType: t3.large
Créez un pool de nœuds sans utiliser un déploiement de machines de base, exécutez la commande suivante :
tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml
Avec le contenu suivant dans le fichier node-pool.yml
:
name: np-1
replicas: 1
nodeMachineType: t3.large
workerClass: tkg-worker
tkrResolver: os-name=ubuntu,os-arch=amd64