Es gibt Unterschiede im Verhalten bei der Verwendung der tanzu cluster node-pool
-Befehle für einen Cluster, der eine ClusterClass
-Definition verwendet, im Gegensatz zur Verwendung anderer tanzu
-Befehle. Eines haben alle diese APIs gemeinsam, wenn sie anhand eines ClusterClass
-basierten Cluster arbeiten: Der Cluster muss aktualisiert werden, insbesondere die Clustertopologie.
tanzu cluster node-pool delete
Der tanzu cluster node-pool delete
-Befehl ist die einfachste Änderung. Die Cluster-Ressource wird aktualisiert, um die Definition der Maschinenbereitstellung mit dem Namen des Knotenpools zu entfernen, der an die Lösch-API übergeben wird. Die API verbietet weiterhin das Löschen des endgültigen Knotenpools im Cluster.
tanzu cluster node-pool delete tkg-wc-vsphere -n md–0
tanzu cluster node-pool list
Der tanzu cluster node-pool list
-Befehl ruft die MachineDeployment
-Ressourcen auf die gleiche Weise ab wie im Fall des planbasierten Clusters und gleicht diese Ressourcen mit den Maschinenbereitstellungen in der Clustertopologie ab. Dadurch kann der Befehl tanzu cluster node-pool list
dieselben MachineDeployment
-Ressourcen mit aktualisierten Namen zurückgeben, damit sie mit den in der Clustertopologie definierten Maschinenbereitstellungen übereinstimmen.
tanzu cluster node-pool list tkg-wc-vsphere
NAME NAMESPACE PHASE REPLICAS READY UPDATED UNAVAILABLE
md-0 default Ready 1 1 1 0
Eigenschaften, die bei Knotenpools in ClusterClass
-basierten Clustern aktualisiert werden können, lassen sich in zwei Typen unterteilen:
ClusterClass
beruhen. Bei der Bereitstellung eines auf einer ClusterClass
basierenden Clusters muss die Clusterdefinition eine Reihe dieser Variablen angeben, die standardmäßig für alle Maschinenbereitstellungen gelten. Die Topologie der Maschinenbereitstellung ermöglicht es, diese Variablen auf Basis der einzelnen Maschinenbereitstellungen außer Kraft zu setzen.Die endgültige Quelle für Eigenschaften, die geändert werden können, sind die ClusterClass
-Objekte selbst. Die TKG ClusterClass
-Objekte definieren alle eine Variable, worker
, die Eigenschaften der Worker-Knoten-VM enthält. Dazu gehören instanceType
und vmSize
für AWS bzw. Azure. Die vSphere-Version enthält Eigenschaften für diskGiB
, memoryMiB
und numCPU
. TKG mit Supervisor definiert Variablen der obersten Ebene für vmClass
und storageClass
sowie ein Array für nodePoolVolumes
zur Anpassung von Worker-Knoten. TKG auf vSphere definiert auch eine vcenter
-Variable zur Aktualisierung von Eigenschaften, die sich auf die vCenter Server-Instanz beziehen.
Alle TKG ClusterClass
-Objekte definieren eine nodePoolLabels
-Variable, die die auf die Worker-Knoten anzuwendenden Knotenbezeichnungen angibt.
WichtigDie von der Tanzu CLI bereitgestellten
node-pool
-Befehle erfordern, dass die oben genannten Variablen in derClusterClass
definiert sind, um das Erstellen und Aktualisieren von Knotenpools zu unterstützen. Wenn Sie eine benutzerdefinierteClusterClass
verwenden, sind diese Variablen als Variablendefinitionen der obersten Ebene in derClusterClass
erforderlich. Es ist weiterhin möglich, Knotenpools auf benutzerdefiniertenClusterClass
-basierten Clustern mit der Tanzu CLI abzurufen und zu löschen. Es gibt einen Sonderfall, in demtanzu cluster node-pool create
undtanzu cluster node-pool update
für benutzerdefinierteClusterClass
-Objekte funktionieren, nämlich wenn die an die Tanzu CLI übergebene Knotenpooldefinition höchstens die Variablenreplicas
,az
,name
,workerClass
undtkrResolver
angibt. In diesem Fall muss dieworkerClass
mit einerworkerClass
-Definition in der benutzerdefiniertenClusterClass
übereinstimmen.
tanzu cluster node-pool set
Wenn der Befehl tanzu cluster node-pool set
mit dem Namen eines vorhandenen Knotenpools aufgerufen wird, ändert die Aktualisierung nur die Anzahl der Replikate und Bezeichnungen des benannten Knotenpools, falls angegeben. Alle anderen bereitgestellten Optionen werden ignoriert. Insbesondere wird die Clustertopologie mit einer neuen Anzahl von Replikaten und einer Überschreibung der nodePoolLabels
-Variablen aktualisiert, wenn diese Werte angegeben werden.
tanzu cluster node-pool set
Das Erstellen von Knotenpools kann auf zwei Wegen erfolgen. Sie können dem Befehl tanzu cluster node-pool set
eine Basismaschine zur Verfügung stellen, die als Ausgangspunkt für den neuen Knotenpool verwendet wird. Eine tiefgreifende Kopie der benannten Basisbereitstellung dient als Grundlage, auf der die vom Benutzer bereitgestellten Eigenschaften überlagert werden. Im Allgemeinen bedeutet dies, dass alle Variablenüberschreibungen der kopierten Maschinenbereitstellung mit neuen, von Ihnen bereitgestellten Werten aktualisiert werden. Dies unterscheidet sich von dem Fall, in dem keine Basismaschinenbereitstellung bereitgestellt wird. In diesem Fall werden die Variablenüberschreibungen aus den in der Clustertopologie definierten globalen Variablendefinitionen kopiert und anschließend mit den vom Benutzer bereitgestellten Werten überlagert. Wenn Sie keine Basismaschinenbereitstellung bereitstellen, müssen Sie außerdem eine workerClass
- und eine tkrResolver
-Definition angeben. TKG ClusterClass
-Objekte verfügen über eine standardmäßig definierte tkg-worker
-Klasse, die verwendet werden sollte, sofern Sie nicht Ihre eigene Worker-Klassendefinition hinzugefügt haben. Der tkrResolver
ist der Wert der tkr-resolver
-Anmerkung.
Um einen neuen Knotenpool mithilfe einer Basismaschinenbereitstellung zu erstellen, führen Sie den folgenden Befehl aus:
tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml –-base-machine-deployment md-0
Mit dem folgenden Inhalt in der Datei node-pool.yml
:
name: np-1
replicas: 1
nodeMachineType: t3.large
Um einen neuen Knotenpool zu erstellen, ohne eine Basismaschinenbereitstellung zu verwenden, führen Sie den folgenden Befehl aus:
tanzu cluster node-pool set tkg-wc-vsphere -f /path/to/node-pool.yml
Mit dem folgenden Inhalt in der Datei node-pool.yml
:
name: np-1
replicas: 1
nodeMachineType: t3.large
workerClass: tkg-worker
tkrResolver: os-name=ubuntu,os-arch=amd64