Mit der Cluster-API v1beta1 können Sie einen Cluster basierend auf einer standardmäßigen ClusterClass-Definition bereitstellen.

ClusterClass API v1beta1

Die Kubernetes Cluster-API ist eine Suite von Tools, die die deklarative Bereitstellung, Upgrades und den Betrieb von Kubernetes-Clustern ermöglichen. ClusterClass ist eine Weiterentwicklung der Cluster-API, mit der Sie Vorlagen zur Verwaltung des Lebenszyklus von Clustergruppen definieren können. TKG 2.0 auf Supervisor unterstützt ClusterClass über die v1beta1-API.

TKG 2.0 auf Supervisor wird mit einer standardmäßigen ClusterClass-Definition mit dem Namen tanzukubernetescluster ausgeliefert. Die ClusterClass tanzukubernetescluster stellt die Vorlage für die Erstellung von TKG 2.0-Clustern auf Supervisor mithilfe der v1beta-API bereit. Die ClusterClass tanzukubernetescluster ist in allen Benutzer-Namespaces verfügbar. Um einen Cluster auf Basis dieser ClusterClass zu erstellen, verweisen Sie einfach in der Clusterspezifikation auf ihn. Weitere Informationen finden Sie in den v1beta-Beispielen.

Standard-ClusterClass tanzukubernetescluster

Die standardmäßige ClusterClass tanzukubernetescluster ist unveränderlich. Sie dient hier als Referenz.
apiVersion: cluster.x-k8s.io/v1beta1
kind: ClusterClass
metadata:
  name: tanzukubernetescluster
  annotations:
    run.tanzu.vmware.com/resolve-tkr: ""
spec:
  controlPlane:
    metadata:
      annotations:
        run.tanzu.vmware.com/resolve-os-image: os-name=photon
    ref:
      apiVersion: controlplane.cluster.x-k8s.io/v1beta1
      kind: KubeadmControlPlaneTemplate
      name: "tkc-control-plane"
    machineInfrastructure:
      ref:
        kind: VSphereMachineTemplate
        apiVersion: vmware.infrastructure.cluster.x-k8s.io/v1beta1
        name: "tkc-control-plane"
    machineHealthCheck:
      maxUnhealthy: 100%
      nodeStartupTimeout: 2h0m0s
      unhealthyConditions:
        - status: Unknown
          timeout: 5m0s
          type: Ready
        - status: "False"
          timeout: 12m0s
          type: Ready
  infrastructure:
    ref:
      apiVersion: vmware.infrastructure.cluster.x-k8s.io/v1beta1
      kind: VSphereClusterTemplate
      name: "tkc-infrastructure"
  workers:
    machineDeployments:
      - class: node-pool  
        template:
          metadata:
            annotations:
              run.tanzu.vmware.com/resolve-os-image: os-name=photon            
          bootstrap:
            ref:
              kind: KubeadmConfigTemplate
              apiVersion: bootstrap.cluster.x-k8s.io/v1beta1
              name: "tkc-md"
          infrastructure:
            ref:
              kind: VSphereMachineTemplate
              apiVersion: vmware.infrastructure.cluster.x-k8s.io/v1beta1
              name: "tkc-md"
        machineHealthCheck:
          maxUnhealthy: 100%
          nodeStartupTimeout: 2h0m0s
          unhealthyConditions:
            - status: Unknown
              timeout: 5m0s
              type: Ready
            - status: "False"
              timeout: 12m0s
              type: Ready
  variables:
    - name: TKR_DATA
      required: false
      schema:
        openAPIV3Schema:
          type: object
          additionalProperties:
            type: object
            properties:
              kubernetesSpec:
                type: object
                properties:
                  version:
                    type: string
                  imageRepository:
                    type: string
                  etcd:
                    type: object
                    properties:
                      imageTag:
                        type: string
                  coredns:
                    type: object
                    properties:
                      imageTag:
                        type: string
              osImageRef:
                type: object
                properties:
                  name:
                    type: string
              labels:
                type: object
                additionalProperties:
                  type: string
    - name: vmClass
      required: true
      schema:
        openAPIV3Schema:
          type: string
    - name: storageClass
      required: true
      schema:
        openAPIV3Schema:
          type: string
    - name: storageClasses
      required: false
      schema:
        openAPIV3Schema:
          type: array
          items:
            type: string
    - name: defaultStorageClass
      required: false
      schema:
        openAPIV3Schema:
          type: string
    - name: extensionCert
      required: false
      schema:
        openAPIV3Schema:
          type: object
          properties:
            contentSecret:
              type: object
              properties:
                name:
                  type: string
                key:
                  type: string
    - name: clusterEncryptionConfigYaml
      required: false
      schema:
        openAPIV3Schema:
          type: string
    - name: defaultRegistrySecret
      required: false
      schema:
        openAPIV3Schema:
          type: object
          properties:
            namespace:
              type: string
            name:
              type: string
            data:
              type: string
    - name: ntp
      required: false
      schema:
        openAPIV3Schema:
          type: string
    - name: user
      required: false
      schema:
        openAPIV3Schema:
          type: object
          properties:
            passwordSecret:
              type: object
              properties:
                name:
                  type: string
                key:
                  type: string
            sshAuthorizedKey:
              type: string
    - name: nodePoolTaints
      required: false
      schema:
        openAPIV3Schema:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
              value:
                type: string
              effect:
                type: string
              timeAdded:
                type: integer
    - name: nodePoolLabels
      required: false
      schema:
        openAPIV3Schema:
          type: array
          items:
            type: object
            properties:
              key:
                type: string
              value:
                type: string
    - name: proxy
      required: false
      schema:
        openAPIV3Schema:
          type: object
          properties:
            httpProxy:
              type: string
            httpsProxy:
              type: string
            noProxy:
              type: array
              items:
                type: string
    - name: trust
      required: false
      schema:
        openAPIV3Schema:
          type: object
          properties:
            additionalTrustedCAs:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
    - name: controlPlaneVolumes
      required: false
      schema:
        openAPIV3Schema:
          type: array
          items:
            type: object
            properties:
              storageClass:
                type: string
              mountPath:
                type: string
              name:
                type: string
              capacity:
                type: object
                properties:
                  storage:
                    type: string                   
    - name: nodePoolVolumes
      required: false
      schema:
        openAPIV3Schema:
          type: array
          items:
            type: object
            properties:
              storageClass:
                type: string
              mountPath:
                type: string
              name:
                type: string
              capacity:
                type: object
                properties:
                  storage:
                    type: string

ClusterClass-Variablen zum Anpassen eines Clusters

Sie passen einen Cluster basierend auf der ClusterClass tanzukubernetescluster mithilfe von Variablen an. Variablen werden mithilfe von Name-Wert-Paaren definiert. Die Syntax muss dem openAPIV3Schema entsprechen.

Für die Bereitstellung eines Clusters mithilfe der v1beta1-API sind zwei Variablen erforderlich:
  • VM-Klasse
  • Speicherklasse
Zusätzliche Variablen sind für die Anpassung eines Clusters verfügbar, wie z. B.:
  • Proxy
  • TLS-Zertifikate
  • SSH-Schlüssel

In den folgenden Abschnitten werden alle Variablen aufgelistet, die mit der Standard-ClusterClass tanzukubernetescluster verfügbar sind.

clusterEncryptionConfigYaml

Verwenden Sie die clusterEncryptionConfigYaml-Variable, um die Clusterverschlüsselung zu konfigurieren.

clusterEncryptionConfigYaml
Zeichenfolge, bei der es sich um eine YAML-Datei mit Details zur Verschlüsselungskonfiguration handelt.
Sie können die Verschlüsselung von Daten in der etcd-Datenbank mit dem Paket kube-apiserver Encryption Configuration konfigurieren. Weitere Informationen finden Sie unter Verschlüsseln von geheimen inaktiven Daten in der Kubernetes-Dokumentation.
...
    variables:
    #clusterEncryptionConfigYaml specifies the base64 encoded 
    #EncryptionConfiguration YAML
    #the YAML contains a base64 encryption configuration for the cluster identity
    #the key is generated randomly
    - name: clusterEncryptionConfigYaml
      value: string which is name of the EncryptionConfiguration YAML 

controlPlaneCertificateRotation

Verwenden Sie die controlPlaneCertificateRotation-Variable, um das System so zu konfigurieren, dass die TLS-Zertifikate für Knoten der Steuerungsebene rotiert werden, indem ein Rollout dieser Zertifikate vor deren Ablauf ausgelöst wird. Bei entsprechender Konfiguration ist die Zertifikatrotation der Steuerungsebene für alle neuen und vorhandenen Knoten der Steuerungsebene verfügbar.
controlPlaneCertificateRotation
Boolesche Variable für die Aktivierung der Funktion und Anzahl der Tage vor Ablauf für die Rotation der Zertifikate (mindestens 7 Tage vor Ablauf). Weitere Informationen finden Sie unter Automatically rotating certificates using Kubeadm Control Plane provider (Automatische Rotation von Zertifikaten mithilfe des Kubeadm-Steuerungsebenenanbieters).
...
    variables:
    - name: controlPlaneCertificateRotation.activate
      value: true (default is false which means not enabled)
    - name: controlPlaneCertificateRotation.daysBefore
      value: EXPIRY-DAYS 

controlPlaneVolumes

Verwenden Sie die controlPlaneVolumes-Variable, um dauerhafte Volumes für Steuerungsebenenknoten zu konfigurieren.
controlPlaneVolumes
Optionales Array von Objekten, von denen jedes name, storageClass und mountPath enthält, die jeweils Zeichenfolgen sind, und ein optionales capacity-Objekt, das eine storage-Zeichenfolge enthält.
...
    variables:
      #controlPlaneVolumes is an optional set of PVCs to create and
      #attach to each node
      - name: controlPlaneVolumes
        value: |
          #name of the PVC to be used as the suffix (node.name)
          - name: NAME
            #mountPath is the directory where the volume device is mounted
            #takes the form /dir/path
            mountPath: /dir/path
            #storageClass is the storage class to use for the PVC
            storageClass: tkg2-storage-profile
            #capacity is the PVC storage capacity
            capacity:
              #storage sets the capacity for the disk volume
              #if not specified defaults to storageClass capacity
              storage: 4Gi           

defaultRegistrySecret

Verwenden Sie die defaultRegistrySecret-Variable, um eine Standard-Containerregistrierung für den Cluster zu konfigurieren.

defaultRegistrySecret
Objekt, das einen öffentlichen Schlüssel, einen Zertifikatsnamen und einen Namespace für eine standardmäßige Containerregistrierung enthält.
Wenn Sie die Harbor-Registrierung auf Supervisor aktivieren, gibt die Variable defaultRegistrySecret das Registrierungsdienstzertifikat an, dem der Cluster vertraut. Der geheime Zertifikatschlüssel ist mit managed-by: vmware-vRegistry gekennzeichnet. Bei der Clustererstellung wird ein defaultRegistry-Zertifikat in die Variable defaultRegistrySecret eingefügt. Nach der Clustererstellung verwalten Sie die Zertifikatrotation oder ein beliebiges Update, indem Sie die Variable manuell aktualisieren.
...
    variables:
    - name: defaultRegistrySecret
      value:
        #data holds the base64 encoded data.ca\.crt content
        #data.ca\.crt is already encoded, so raw cert data is encoded twice
        data: LS0tLS1CRUdJTiBDRVJU...S0tRU5EIENFUlRJRklDQVRFL
        #name specifies the name of the registry cert secret 
        name: harbor-ca-key-pair
        #namespace specifies the ns of the registry cert secret
        namespace: svc-harbor-domain-c9

defaultStorageClass

Verwenden Sie die defaultStorageClass-Variable, um eine Standardspeicherklasse für den Cluster zu konfigurieren.

defaultStorageClass
Zeichenfolge, die angibt, welche Speicherklasse als Standardspeicherklasse verwendet werden soll, die häufig von bestimmten Anwendungen wie Helm-Diagrammen und Tanzu-Paketen benötigt wird.
...
    variables:
    - name: defaultStorageClass
      value: tkg2-storage-profile

extensionCert

Verwenden Sie die extensionCert-Variable, um ein TLS-Zertifikat zu konfigurieren.

extensionCert
Objekt, das ein contentSecret-Objekt mit name- und key-Zeichenfolgen enthält. Das contentSecret-Objekt verweist auf ein geheimes Kubernetes-Objekt, das für ein TLS-Zertifikat erstellt wurde.
...
    variables:
    #extensionCert specifies the cert and key for Extensions Controller
    #self-signed issuer and certificates must be created in advance
    - name: extensionCert
      value: 
        contentSecret:
          #name specifies the name of secret
          name: string
          #key specifies the content of tls\.crt in the secret's data map
          key: string

nodePoolLabels

Verwenden Sie die nodePoolLabels-Variable, um Bezeichnungen für Worker-Knoten zu konfigurieren.

nodePoolLabels
Array aus einem oder mehreren Objekten, wobei jedes Objekt ein Schlüssel/Wert-Paar enthält, beides Zeichenfolgen.
Mithilfe von Bezeichnungen können Sie Systemobjekte gemäß Ihren Anforderungen organisieren, um die Abfrage und Berichterstellung zu vereinfachen. Informationen zur Nutzung finden Sie in der Dokumentation zu Kubernetes-Bezeichnungen.

nodePoolTaints

Verwenden Sie die nodePoolTaints-Variable, um Taints auf Worker-Knoten anzuwenden.

nodePoolTaints
Array von Objekten. Jedes Objekt enthält ein Merkmal (Taint), das für Worker-Knoten gilt.
Jedes Objekt enthält einen key (Zeichenfolge), einen value (Zeichenfolge) und eine effect (Zeichenfolge). Das Feld timeAdded wird beim Erstellen oder Aktualisieren durch das System aufgefüllt.

nodePoolVolumes

Verwenden Sie die nodePoolVolumes-Variable, um dauerhafte Volumes für Clusterknoten anzugeben.

nodePoolVolumes
Optionales Array von Objekten, von denen jedes name, storageClass und mountPath enthält, die jeweils Zeichenfolgen sind, und ein optionales capacity-Objekt, das eine storage-Zeichenfolge enthält.
...
    variables:
      #nodePoolVolumes is an optional set of PVCs to create and
      #attach to each node; use for high-churn components like containerd
      - name: nodePoolVolumes
        value: |
          #name of the PVC to be used as the suffix (node.name)
          - name: etcd
            #mountPath is the directory where the volume device is mounted
            #takes the form /dir/path
            mountPath: /var/lib/containerd
            #storageClass is the storage class to use for the PVC
            storageClass: tkg2-storage-profile
            #capacity is the PVC storage capacity
            capacity:
              #storage sets the capacity for the disk volume
              #if not specified defaults to storageClass capacity
              storage: 4Gi           

ntp

Verwenden Sie die ntp-Variable, um einen NTP-Server für den Cluster zu konfigurieren.

ntp
Zeichenfolge, die den FQDN oder die IP-Adresse eines NTP-Servers darstellt.
Die NTP-Variable gibt den Domänennamen des NTP-Servers an, wie im Beispiel gezeigt. Der NTP-Server wird bei der Clustererstellung in die Clustervariable eingefügt. Nach der Clustererstellung verwalten Sie die Rotation des Servernamens oder ein beliebiges Update, indem Sie die Clustervariable manuell aktualisieren.
...
    variables:
    - name: ntp
      value: time1.vmware.com

Proxy

Verwenden Sie die proxy-Variable, um einen Proxyserver für den Cluster zu konfigurieren.

Proxy
Objekt mit Parametern, die auf einen Proxyserver für ausgehende Clusterverbindungen verweisen.
Zu den erforderlichen proxy-Parametern gehören httpProxy, httpsProxy und noProxy. Alle drei Felder sind erforderlich, wenn Sie die Variable proxy in die Clusterdefinition aufnehmen.
Die Felder httpProxy und httpsProxy enthalten Zeichenfolgenwerte, die auf den URI eines Proxyservers verweisen, der für die Verwaltung von ausgehenden HTTP- und HTTPS-Verbindungen vom TKG-Cluster konfiguriert ist. Sie können mithilfe von HTTP eine Verbindung zum Proxy-Server herstellen. HTTPS-Verbindungen werden nicht unterstützt.
Das Feld noProxy ist ein Array von Zeichenfolgen. Rufen Sie die noProxy-Werte über das Supervisor-Arbeitslastnetzwerk ab. Im Feld noProxy müssen Sie das Namespace-Netzwerk sowie die Ingress- und Egress-Subnetze angeben.
Das Dienste-Subnetz müssen Sie nicht in das Feld noProxy eingeben. Der TKG-Cluster interagiert nicht mit diesem Subnetz.
Sie müssen clusterNetwork.services.cidrBlocks und clusterNetwork.pods.cidrBlocks nicht in das Feld noProxy aufnehmen. Diese Endpoints werden nicht automatisch mit einem Proxy verbunden.
Sie müssen localhost und 127.0.0.1 nicht in das Feld noProxy aufnehmen. Diese Endpoints werden nicht automatisch mit einem Proxy verbunden.
...
    variables:
    #proxy specifies a proxy server to be used for the cluster
    #if omitted no proxy is configured
    - name: proxy
      value:
        #httpProxy is the proxy URI for HTTP connections
        #to endpoints outside the cluster
        httpProxy: http://<user>:<pwd>@<ip>:<port>
        #httpsProxy is the proxy URL for HTTPS connections 
        #to endpoints outside the cluster
        httpsProxy: http://<user>:<pwd>@<ip>:<port>
        #noProxy is the list of destination domain names, domains, 
        #IP addresses, and other network CIDRs to exclude from proxying
        #must include Supervisor Pod, Egress, Ingress CIDRs
        noProxy: [array of strings, comma-separated]

storageClass

Verwenden Sie die storageClass-Variable, um eine Speicherklasse für den Cluster zu konfigurieren.

storageClass
Zeichenfolge, die dem Namen eines vSphere-Speicherprofils entspricht, das dem vSphere-Namespace zugewiesen wurde, in dem der TKG-Cluster bereitgestellt wird.
...
    variables:
    - name: storageClass
      value: tkg2-storage-profile 
Verwenden Sie den folgenden Befehl zum Auflisten verfügbarer Speicherklassen:
kubectl describe namespace VSPHERE-NAMESPACE-NAME
Oder, wenn Sie über vSphere-Administratorrechte verfügen:
kubectl describe storageclasses

storageClasses

Verwenden Sie die storageClasses-Variable, um ein Array von Speicherklassen für den Cluster zu konfigurieren.

storageClasses
Array aus einer oder mehreren Zeichenfolgen, wobei jede Zeichenfolge der Name eines vSphere-Speicherprofils ist, das dem vSphere-Namespace zugewiesen wurde, in dem der TKG-Cluster bereitgestellt wird.
...
    variables:
    - name: storageClasses
      value: [tkg2-storage-profile, tkg2-storage-profile-latebinding] 
Verwenden Sie den folgenden Befehl zum Auflisten verfügbarer Speicherklassen:
kubectl describe namespace VSPHERE-NAMESPACE-NAME
Oder, wenn Sie über vSphere-Administratorrechte verfügen:
kubectl describe storageclasses

TKR_DATA

Verwenden Sie die TKR_DATA-Variable, um TKR-Informationen anzugeben.

TKR_DATA
Objekt, das Sie zum Angeben der TKR-Version und anderer Details verwenden.
version ist eine Zeichenfolge im TKR NAME-Format, die von Clusterknoten verwendet wird.
Nur TKRs, die nicht über die legacy-tkr-Bezeichnung verfügen, sind mit TKG auf vSphere 9 Supervisor kompatibel. Weitere Informationen hierzu finden Sie unter Verwenden von Tanzu Kubernetes-Versionen mit TKG-Clustern auf Supervisor.
Das Standardbetriebssystem ist PhotonOS. Verwenden Sie Anmerkungen, um die Ubuntu TKR anzugeben.

trust

Verwenden Sie die trust-Variable, um ein oder mehrere vertrauenswürdige CA-Zertifikate für den Cluster anzugeben.

trust
Objekt zum Hinzufügen von TLS-Zertifikaten zum Cluster, entweder zusätzliche Zertifizierungsstellen oder Endzertifikate.
Der Wert ist „additionalTrustedCAs“, ein Array von Zeichenfolgen. Jede Zeichenfolge ist der Name des geheimen Kubernetes-Schlüssels, der den Inhalt des zusätzlichen vertrauenswürdigen Zertifikats in der Base64-codierten Zeichenfolge im PEM-Format enthält.
So konfigurieren Sie eine trust-Variable:
  1. Erstellen Sie eine YAML-Datei für die geheime Kubernetes-Definition mit den folgenden Inhalten.
    apiVersion: v1
    data:
      additional-ca-1: TFMwdExTMUNSGlSzZ3Jaa...VVNVWkpRMEMwdExTMHRDZz09
    kind: Secret
    metadata:
      name: cluster01-user-trusted-ca-secret
      namespace: tkg-cluster-ns
    type: Opaque
    Der Inhalt der Datenzuordnung des geheimen Schlüssels ist ein benutzerdefinierter Name für das Zertifikat ( additional-ca-1), dessen Wert ein doppelt Base64-codiertes Zertifikat ist.
    Hinweis: Doppelte Base64-Codierung ist erforderlich. Wenn der Inhalt des Datenzuordnungswerts nicht doppelt Base64-codiert ist, kann die resultierende PEM-Datei nicht verarbeitet werden.

    Legen Sie für den geheimen Schlüssel den Namen CLUSTER-NAME -user-trusted-ca-secret fest, wobei CLUSTER-NAME der Name des Clusters ist. Dieser geheime Schlüssel muss im selben vSphere-Namespace wie der Cluster erstellt werden.

  2. Erstellen Sie den geheimen Kubernetes-Schlüssel mithilfe von kubectl -f apply additional-ca-1.yaml.
  3. Überprüfen Sie die Erstellung des geheimen Schlüssels.
    kubeclt get secret -n tkg2-cluster-ns cluster01-user-trusted-ca-secret
    NAME                                             TYPE     DATA   AGE
    cluster01-user-trusted-ca-secret                   Opaque   12     2d22h
    
  4. Schließen Sie die Variable trust in die Clusterspezifikation ein, die auf den Wert name der Datenzuordnung für den geheimen Schlüssel verweist, d. h. in diesem Beispiel auf additional-ca-1.
    spec:
      clusterNetwork:
        pods:
          cidrBlocks:
          - 193.0.0.0/16
        serviceDomain: cluster.local
        services:
          cidrBlocks:
          - 198.201.0.0/16
      topology:
        class: tanzukubernetescluster
        controlPlane:
          metadata: {}
          replicas: 3
        variables:
        - name: storageClass
          value: tkg-storage-profile
        - name: trust
          value:
            additionalTrustedCAs:
            - name: additional-ca-1

Benutzer

Verwenden Sie die user-Variable, um die Anmeldedaten für Clusterbenutzer anzugeben.

Benutzer
Objekt, das ein passwordSecret-Objekt mit Namen und Schlüsselzeichenfolgen sowie eine sshAuthorizedKey-Zeichenfolge enthält. Sie können diese Variable verwenden, um den SSH-Schlüssel eines Benutzers zu Clusterknoten für den Remote-SSH-Zugriff hinzuzufügen.
Die Benutzervariable gibt die SSH-Anmeldedaten an, einschließlich Kennwort und autorisierter Schlüssel. Der Benutzername lautet standardmäßig vmware-system-user. Das Kennwort muss gehasht und in einem geheimen Schlüssel im selben Namespace gespeichert werden, in dem der Cluster bereitgestellt wird. Das Objekt passwordSecret verweist auf diesen geheimen Schlüssel. Unter Linux können Sie beispielsweise mit mkpasswd --method=SHA-512 --rounds=4096 einen sicheren Hash generieren. Weitere Informationen finden Sie unter Einschließen von Benutzern und Gruppen.
...
    variables:
    #user specifies an authorized user and credentials
    - name: user
      value:
        #passwordSecret is an object that contains a Kubernetes secret and key
        passwordSecret:
          #name specifies the secret name
          name: string
          #key specifies the key value pair in the secret's data map
          key: string
        sshAuthorizedKey: string that is the base64-encoded public key

vmClass

Verwenden Sie die vmClass-Variable, um die VM-Klasse für Clusterknoten zu konfigurieren.

vmClass
Erforderliche Zeichenfolge, die dem Namen einer VM-Klasse zugeordnet ist, die an den vSphere-Namespace gebunden ist, in dem der TKG-Cluster bereitgestellt wird.
vmClass ist der Name der VirtualMachineClass, die die für Clusterknoten zu verwendenden virtuellen Hardwareeinstellungen beschreibt. Die VirtualMachineClass steuert die für den Knoten verfügbare CPU und den Arbeitsspeicher sowie die Anforderungen und Grenzwerte für diese Ressourcen. Weitere Informationen finden Sie unter Verwenden von VM-Klassen mit TKG-Clustern auf Supervisor.
Sie können nur VM-Klassen verwenden, die an den vSphere-Namespace gebunden sind, in dem der TKG-Cluster bereitgestellt wird. Verwenden Sie den Befehl kubectl get virtualmachineclassbinding, um gebundene Klassen aufzulisten.
Sie können die Variable vmClass in unterschiedlichen Geltungsbereichen definieren, sodass Sie verschiedene VM-Klassen für Steuerungsebenenknoten und Knotenpool-Worker-Knoten verwenden können.
Beispiel: Hier überschreibt ( overrides) eine Inline- vmClass-Variable die primäre Variable vmClass für diese spezifische machineDeployment-Topologie.
...
    workers:
      machineDeployments:
      - class: tkg-worker
        name: compute
        replicas: 3
        variables:
          overrides:
          - name: vmClass
            value: guaranteed-large