Einzelknotencluster auf vSphere

Tanzu Kubernetes Grid (TKG) unterstützt Einzelknotencluster. Einzelknotencluster sind Arbeitslastcluster, auf denen gehostete Arbeitslasten neben der Steuerungsebenen-Infrastruktur auf einem einzelnen ESXi-Host ausgeführt werden.

Um die Stellfläche eines Einzelknotenclusters weiter zu minimieren, können Sie ihn aus einem tiny Tanzu Kubernetes-Release (TKr) erstellen, das über eine Photon oder Ubuntu Tiny OVA für sein Basisbetriebssystem verfügt. Solche Cluster werden minimale Einzelknotencluster genannt.

Einzelknotencluster sind klassenbasierte Arbeitslastcluster, die auf vSphere ausgeführt werden und von eigenständigen Verwaltungsclustern bereitgestellt werden.

Einzelknotencluster werden für Telco Cloud Automation (TCA) vollständig unterstützt.

Hinweis

Sie können Tanzu Mission Control (TMC) nicht zum Erstellen und Verwalten von Einzelknotenclustern verwenden, aber diese Funktion ist für eine zukünftige Version von TMC geplant.

Beispiele für Anwendungsfälle für Einzelknotencluster:

  • Minimale Einzelknotencluster
    • Ressourcenbeschränkte Hostumgebungen wie weit entfernte Edge-Zellen-Sites und andere Edge-Standorte
  • Standardmäßige Einzelknotencluster
    • Experimentelle Entwicklungs- und Testumgebungen

Kompatibilität

Einzelknotencluster werden für die folgenden Umgebungen und Komponenten unterstützt:

Kategorie Unterstützte Optionen
Infrastruktur vSphere 7, vSphere 8
Knotenbetriebssystem Ubuntu 20.04, Photon 3
Knotengröße small
Paket Cert Manager, Fluent Bit, Multus, Prometheus, Whereabouts
Steuerungsebenen-Endpoint-Anbieter Kube-Vip*
Arbeitslastausgleichsdienst Kube-Vip*
Arbeitslastclustertyp Klassenbasiert
CNI Antrea, Calico
Konnektivitätsmodus Online, auf das Internet beschränkt

*NSX Advanced Load Balancer (ALB) wird für Einzelknotencluster in TKG v2.3 nicht unterstützt.

Voraussetzungen

Erstellen eines minimalen Einzelknotenclusters

So erstellen Sie einen Arbeitslastcluster mit einem Knoten auf vSphere, der ein tiny Tanzu Kubernetes-Release (TKr) verwendet, um seine Stellfläche zu minimieren:

  1. Bereiten Sie die OVA vor:

    1. Navigieren Sie zu VMware Customer Connect und melden Sie sich mit Ihren Anmeldedaten für VMware Customer Connect an.

    2. Navigieren Sie zu Produktdownloads von Tanzu Kubernetes Grid v2.3.1.

    3. Laden Sie unter Tiny TKG OVAs die Tiny OVA herunter, die für Ihren Einzelknotencluster verwendet werden soll:

      • Photon v3 Kubernetes v1.26.8 Tiny OVA

      • Ubuntu 2004 Kubernetes v1.26.8 Tiny OVA

    4. Importieren Sie die Tiny OVA in Ihre vSphere-Umgebung und konvertieren Sie sie in eine VM-Vorlage, wie unter Importieren der Basisimage-Vorlage in vSphere beschrieben.

  2. Erstellen Sie den Arbeitslastcluster mit einem Knoten.

    Hinweis

    Wenn Sie minimale Einzelknotencluster erstellen möchten, müssen Sie den Befehl tanzu cluster create mit einer Objektspezifikation im Kubernetes-Stil ausführen. Wenn Sie mit einer Clusterkonfigurationsdatei mit flacher Struktur beginnen, müssen Sie zunächst den unter Erstellen eines klassenbasierten Clusters beschriebenen zweistufigen Prozess ausführen, um die Objektspezifikation zu generieren. Dann können Sie diese wie unten beschrieben bearbeiten, bevor Sie den Befehl tanzu cluster create ein zweites Mal ausführen, um den Cluster zu erstellen.

    1. Legen Sie Umgebungsvariablen wie in diesem Beispiel fest:

      export CLUSTER_NAME='workload-snc'
      export CLUSTER_NAMESPACE='default'
      export CLUSTER_CIDR='100.96.0.0/11'
      export SERVICE_CIDR='100.64.0.0/13'
      export VSPHERE_CONTROL_PLANE_ENDPOINT=10.185.11.134
      export VSPHERE_SERVER=10.185.12.154
      export VSPHERE_USERNAME='[email protected]'
      export VSPHERE_PASSWORD=<encoded:QWRtaW4hMjM=>
      export VSPHERE_DATACENTER='/dc0'
      export VSPHERE_DATASTORE='/dc0/datastore/sharedVmfs-0'
      export VSPHERE_FOLDER='/dc0/vm'
      export VSPHERE_NETWORK='/dc0/network/VM Network'
      export VSPHERE_RESOURCE_POOL='/dc0/host/cluster0/Resources'
      export VSPHERE_SSH_AUTHORIZED_KEY=ssh-rsa AAAAB3[...]tyaw== [email protected]
      export VSPHERE_TLS_THUMBPRINT=47:F5:83:8E:5D:36:[...]:72:5A:89:7D:29:E5:DA
      export VSPHERE_CONTROL_PLANE_NUM_CPUS='2'
      export VSPHERE_CONTROL_PLANE_MEM_MIB='4096'
      export VSPHERE_CONTROL_PLANE_DISK_GIB='20'
      export TKG_CUSTOM_IMAGE_REPOSITORY='projects.registry.vmware.com/tkg'
      export OS_NAME='photon'
      export TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE="LS0tL[...]0tLQo="
      
    2. Erstellen Sie ein Manifest vsphere-snc.yaml mit Cluster- und Secret-Objektspezifikationen, die auf die oben genannten Variablen verweisen:

      apiVersion: cluster.x-k8s.io/v1beta1
      kind: Cluster
      metadata:
        annotations:
          tkg.tanzu.vmware.com/cluster-controlplane-endpoint: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
          run.tanzu.vmware.com/resolve-tkr: 'tkr.tanzu.vmware.com/tiny'
        labels:
          tkg.tanzu.vmware.com/cluster-name: ${CLUSTER_NAME}
        name: ${CLUSTER_NAME}
        namespace: ${CLUSTER_NAMESPACE}
      spec:
        clusterNetwork:
          pods:
            cidrBlocks:
            - ${CLUSTER_CIDR}
          services:
            cidrBlocks:
            - ${SERVICE_CIDR}
        topology:
          class: tkg-vsphere-default-v1.1.0
          controlPlane:
            metadata:
              annotations:
                run.tanzu.vmware.com/resolve-os-image: image-type=ova,os-name=${OS_NAME}
            replicas: 1
          variables:
          - name: controlPlaneTaint
            value: false
          - name: auditLogging
            value:
              enabled: false
          - name: apiServerEndpoint
            value: ${VSPHERE_CONTROL_PLANE_ENDPOINT}
          - name: aviAPIServerHAProvider
            value: false
          - name: imageRepository
            value:
              host: ${TKG_CUSTOM_IMAGE_REPOSITORY}
          - name: trust
            value:
              additionalTrustedCAs:
              - data: ${TKG_CUSTOM_IMAGE_REPOSITORY_CA_CERTIFICATE}
                name: imageRepository
          - name: vcenter
            value:
              cloneMode: fullClone
              datacenter: ${VSPHERE_DATACENTER}
              datastore: ${VSPHERE_DATASTORE}
              folder: ${VSPHERE_FOLDER}
              network: ${VSPHERE_NETWORK}
              resourcePool: ${VSPHERE_RESOURCE_POOL}
              server: ${VSPHERE_SERVER}
              storagePolicyID: ""
              tlsThumbprint: ${VSPHERE_TLS_THUMBPRINT}
          - name: user
            value:
              sshAuthorizedKeys:
              - ${VSPHERE_SSH_AUTHORIZED_KEY}
          - name: controlPlane
            value:
              machine:
                diskGiB: ${VSPHERE_CONTROL_PLANE_DISK_GIB}
                memoryMiB: ${VSPHERE_CONTROL_PLANE_MEM_MIB}
                numCPUs: ${VSPHERE_CONTROL_PLANE_NUM_CPUS}
          version: v1.26.8+vmware.1-tiny.2
      ---
      apiVersion: v1
      kind: Secret
      metadata:
        name: ${CLUSTER_NAME}
        namespace: ${CLUSTER_NAMESPACE}
      stringData:
        password: ${VSPHERE_PASSWORD}
        username: ${VSPHERE_USERNAME}
      EOF
      

      Beachten Sie Folgendes:

      • Die Einstellung metadata.annotations für run.tanzu.vmware.com/resolve-tkr
      • Die Einstellung topology.variables für controlPlaneTaint
      • Es ist kein topology.workers-Block vorhanden, nur topology.controlPlane
      • In früheren Versionen von TKG sollte die topology.version für v2.3.1 auf v1.26.5+vmware.1-tiny.2 , für v2.2.0 auf v1.25.7+vmware.1-tiny.1, für v2.1.1 auf v1.24.10+vmware.1-tiny.1 und für v2.1.0 auf v1.24.9+vmware.1-tiny.2 festgelegt sein.
    3. (Optional) Um den Cluster für die Verwendung von Calico als CNI anstelle der standardmäßigen Antrea-CNI zu konfigurieren, befolgen Sie die Anweisungen für Einzelknotencluster in Calico-CNI für Supervisor- oder klassenbasierte Arbeitslastcluster mit einem Knoten.

    4. Wenden Sie das Cluster-Objektmanifest an:

      tanzu cluster create -f vsphere-snc.yaml
      

Erstellen eines standardmäßigen Einzelknotenclusters

So erstellen Sie einen Arbeitslastcluster mit einem Knoten auf vSphere, der eine Standard-Photon oder -Ubuntu-TKr verwendet:

  1. Erstellen Sie eine flache Konfigurationsdatei für den Arbeitslastcluster, wie unter vSphere mit Konfigurationsdateien für eigenständige Verwaltungscluster beschrieben.

  2. Führen Sie tanzu cluster create mit dem Flag --dry-run aus, um die flache Konfigurationsdatei in eine Cluster-Objektspezifikation im Kubernetes-Stil zu konvertieren, wie unter Erstellen einer Objektspezifikation beschrieben.

  3. Bearbeiten Sie die Cluster-Objektspezifikation, um die folgenden Einstellungen einzubeziehen:

    • Unter topology.controlPlane:

      replicas: 1
      
    • Kein topology.workers-Block, Falls vorhanden, löschen.

    • Unter topology.variables:

      - name: controlPlaneTaint
        value: false
      
  4. Führen Sie tanzu cluster create mit der geänderten Cluster-Objektspezifikation aus, wie unter Erstellen eines klassenbasierten Clusters anhand der Objektspezifikation beschrieben.

check-circle-line exclamation-circle-line close-line
Scroll to top icon