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 deleteDer 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 listDer 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 derClusterClassdefiniert sind, um das Erstellen und Aktualisieren von Knotenpools zu unterstützen. Wenn Sie eine benutzerdefinierteClusterClassverwenden, sind diese Variablen als Variablendefinitionen der obersten Ebene in derClusterClasserforderlich. 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 createundtanzu cluster node-pool updatefür benutzerdefinierteClusterClass-Objekte funktionieren, nämlich wenn die an die Tanzu CLI übergebene Knotenpooldefinition höchstens die Variablenreplicas,az,name,workerClassundtkrResolverangibt. In diesem Fall muss dieworkerClassmit einerworkerClass-Definition in der benutzerdefiniertenClusterClassübereinstimmen.
tanzu cluster node-pool setWenn 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 setDas 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