Knotenpoolkonfiguration für ClusterClass-basierte Cluster

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 in Knotenpools in ClusterClass-basierten Clustern

Eigenschaften, die bei Knotenpools in ClusterClass-basierten Clustern aktualisiert werden können, lassen sich in zwei Typen unterteilen:

  • Direkte Eigenschaften der Topologieressourcen der Maschinenbereitstellung, wie die Anzahl der Replikate, die die Topologie der Maschinenbereitstellung direkt ändern.
  • Variablenüberschreibungen, die auf der Definition von Variablen auf der Ebene der 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.

Wichtig

Die von der Tanzu CLI bereitgestellten node-pool-Befehle erfordern, dass die oben genannten Variablen in der ClusterClass definiert sind, um das Erstellen und Aktualisieren von Knotenpools zu unterstützen. Wenn Sie eine benutzerdefinierte ClusterClass verwenden, sind diese Variablen als Variablendefinitionen der obersten Ebene in der ClusterClass erforderlich. Es ist weiterhin möglich, Knotenpools auf benutzerdefinierten ClusterClass-basierten Clustern mit der Tanzu CLI abzurufen und zu löschen. Es gibt einen Sonderfall, in dem tanzu cluster node-pool create und tanzu cluster node-pool update für benutzerdefinierte ClusterClass-Objekte funktionieren, nämlich wenn die an die Tanzu CLI übergebene Knotenpooldefinition höchstens die Variablen replicas, az, name, workerClass und tkrResolver angibt. In diesem Fall muss die workerClass mit einer workerClass-Definition in der benutzerdefinierten ClusterClass übereinstimmen.

Aktualisieren eines vorhandenen Knotenpools mit 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.

Erstellen eines neuen Knotenpools mit 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.

Erstellen eines neuen Knotenpools mithilfe einer Basismaschinenbereitstellung

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

Erstellen eines neuen Knotenpools ohne Verwendung einer Basismaschinenbereitstellung

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
check-circle-line exclamation-circle-line close-line
Scroll to top icon