Mehrere Kubernetes-Versionen

In diesem Thema wird erläutert, wie Sie verfügbare Kubernetes-Versionen auflisten und einen Arbeitslastcluster mit einer nicht standardmäßigen Kubernetes-Version bereitstellen.

Informationen zu Kubernetes-Versionen

Jede Version von Tanzu Kubernetes Grid mit einem eigenständigen Verwaltungscluster stellt eine Standard- und zwei nicht standardmäßige Versionen von Kubernetes bereit, die Sie durch Ausführen von tanzu kubernetes-release get auflisten können.

Tanzu Kubernetes Grid verwaltet Kubernetes-Versionen mit TKr-Objekten (Tanzu Kubernetes Release). Ein TKr gibt die Betriebssystem-Images, Kubernetes-Kernkomponenten und Bootstrap-Pakete an, die mit der im TKr definierten Kubernetes-Version kompatibel sind. Wenn Sie tanzu cluster create mit einem Standard- oder einem nicht standardmäßigen TKr ausführen, verwendet Tanzu Kubernetes Grid die im TKr angegebenen Komponenten und Bootstrap-Pakete zum Erstellen des Clusters. Außerdem wird die Clusterkonfigurationsdatei gelesen, um die kompatiblen Betriebssystem-Images zu ermitteln, die beim Erstellen des Clusters verwendet werden sollen.

Eine vollständige Liste der unterstützten Kubernetes-Versionen finden Sie unter Unterstützte Kubernetes-Versionen in Tanzu Kubernetes Grid v2.3 in den Versionshinweisen zu VMware Tanzu Kubernetes Grid 2.3.

Auflisten verfügbarer Versionen

Um alle verfügbaren Kubernetes-Releases mit ihrem aktuellen Kompatibilitäts- und Upgrade-Status aufzulisten, führen Sie tanzu kubernetes-release get mit einem optionalen Versionsabgleichsargument aus. Beispiel:

  • Um alle Versionen aufzulisten, führen Sie tanzu kubernetes-release get aus.
  • Um alle Versionen aufzulisten, die zu v1.24.17 passen, führen Sie tanzu kubernetes-release get v1.24.17 aus.
tanzu kubernetes-release get
NAME                       VERSION                  COMPATIBLE  ACTIVE  UPDATES AVAILABLE
v1.24.17---vmware.1-tkg.1  v1.24.17+vmware.1-tkg.1  True        True
v1.25.13---vmware.1-tkg.1  v1.25.13+vmware.1-tkg.1  True        True
v1.26.8---vmware.2-tkg.1   v1.26.8+vmware.1-tkg.1   True        True

Auflisten verfügbarer Upgrades

Um herauszufinden, welche TKr-Versionen für einen spezifischen Arbeitslastcluster verfügbar sind, führen Sie tanzu cluster available-upgrades get mit dem vollständigen Namen des Clusters aus, zum Beispiel:

tanzu cluster available-upgrades get my-cluster

Aktivieren oder Deaktivieren eines Tanzu Kubernetes-Release

Ein TKr kann aktiviert oder deaktiviert werden. So aktivieren Sie ein TKr:

tanzu kubernetes-release activate TKR-NAME

Beispiel:

tanzu kubernetes-release activate v1.25.13---vmware.1-tkg.1

So deaktivieren Sie ein TKr:

tanzu kubernetes-release deactivate TKR-NAME

Beispiel:

tanzu kubernetes-release deactivate v1.25.13---vmware.1-tkg.1

Bereitstellen eines Cluster mit einer nicht standardmäßigen Kubernetes-Version

Jede Version von Tanzu Kubernetes Grid stellt eine Standardversion von Kubernetes bereit. Die Standardversion für Tanzu Kubernetes Grid v2.3 ist Kubernetes v1.26.8.

Wenn Upstream-Kubernetes Patches oder neue Versionen freigibt, veröffentlicht VMware sie in einer öffentlichen Registrierung und der Tanzu Kubernetes Release Controller importiert sie in den Verwaltungscluster. Auf diese Weise kann die tanzu-CLI Cluster basierend auf den neuen Versionen erstellen.

  • Informationen zum Auflisten verfügbarer Kubernetes-Versionen finden Sie unter Verfügbare Kubernetes-Versionen oben.
  • Führen Sie die folgenden Schritte aus, um Cluster bereitzustellen, auf denen eine nicht standardmäßige Version von Kubernetes ausgeführt wird.

Veröffentlichen der Kubernetes-Version in Ihrer Infrastruktur

Auf vSphere und Azure müssen Sie einen zusätzlichen Schritt durchführen, bevor Sie Cluster bereitstellen können, die nicht standardmäßige Versionen von Kubernetes ausführen:

  • vSphere: Importieren Sie die entsprechende OVA-Datei der Basisimage-Vorlage in vSphere und konvertieren Sie sie in eine VM-Vorlage. Informationen zum Importieren von Basis-OVA-Dateien in vSphere finden Sie unter Importieren einer Basisimage-Vorlage in vSphere.

  • Azure: Führen Sie den Azure CLI-Befehl aus, um die Lizenz für die Basis-Betriebssystemversion zu akzeptieren. Wenn Sie einmal eine Lizenz akzeptiert haben, können Sie diesen Schritt überspringen:

    1. Konvertieren Sie Ihre Kubernetes-Zielversion, die in der Ausgabe des Befehls tanzu kubernetes-release get aufgeführt ist, wie folgt in die zugehörige Azure-Image-SKU:
      • Ändern Sie v in k8s-.
      • Ändern Sie in der Versionsnummer . in dot.
      • Ändern Sie das +vmware.* am Ende in -ubuntu-2004, um Ubuntu v20.04, die Standard-Betriebssystemversion für alle Tanzu Kubernetes Grid-VMs in Azure, anzugeben.
      • Beispiele: k8s-1dot26dot8-ubuntu-2004, k8s-1dot25dot13-ubuntu-2004.
    2. Führen Sie az vm image terms accept aus. Beispiel:

      az vm image terms accept --publisher vmware-inc --offer tkg-capi-2022-06-24 --plan k8s-1dot26dot8-ubuntu-2004
      
  • Amazon Web Services (AWS): Keine Aktion erforderlich. Die Amazon Linux 2 Amazon Machine Images (AMI), die die unterstützten Kubernetes-Versionen enthalten, sind für alle AWS-Benutzer in allen unterstützten AWS-Regionen öffentlich verfügbar. Tanzu Kubernetes Grid verwendet automatisch das entsprechende AMI für die von Ihnen angegebene Kubernetes-Version.

Bereitstellen des Kubernetes-Clusters

Um den Arbeitslastcluster mit einer nicht standardmäßigen Kubernetes-Version bereitzustellen:

  1. Wenn Sie einen planbasierten Cluster bereitstellen, legen Sie eine Umgebungsvariable vom Typ ALLOW_LEGACY_CLUSTER auf true fest:

    export ALLOW_LEGACY_CLUSTER=true
    
  2. Wenn die Kubernetes-Patch-Version, mit der Sie den Cluster bereitstellen, älter ist als der neueste unterstützte Patch für seine Nebenversion, wie unter Unterstützte Kubernetes-Versionen aufgeführt, erstellen Sie ein ConfigMap-Objekt für sein TKr im Namespace tkg-system:

    1. Erstellen Sie eine ConfigMap-Objektdefinition im Namespace tkg-system, in dem die älteren TKrs aufgelistet sind:

      apiVersion: v1
      kind: ConfigMap
      metadata:
        namespace: tkg-system
        name: TKR-CONFIG-NAME
        labels:
          run.tanzu.vmware.com/additional-compatible-tkrs: ""
      data:
        tkrVersions: |
            - TKR-VERSON-1
            - TKR-VERSON-2
      

      Dabei ist TKR-CONFIG-NAME ein beliebiger zulässiger Objektname, wie z. B. tkg-v2.3.1, und die TKR-VERSON-*-Werte sind die älteren TKr-Versionen, die in tanzu kubernetes-release get aufgeführt sind, z. B. v1.24.14--vmware.1-tkg.

    2. Erstellen Sie das ConfigMap-Objekt:

      kubectl apply -f old-tkrs-config.yaml
      
  3. Um einen Arbeitslastcluster mit einer Kubernetes-Version bereitzustellen, die nicht die Standardversion für Ihre Version von Tanzu Kubernetes Grid ist, geben Sie die Tanzu Kubernetes-Version in der Option --tkr an. Um beispielsweise einen Kubernetes v1.25.13-Cluster bereitzustellen, führen Sie folgenden Befehl aus:

    tanzu cluster create my-1-25-13-cluster --tkr v1.25.13---vmware.1-tkg
    

Weitere Details zum Erstellen eines Arbeitslastclusters finden Sie unter Erstellen von Arbeitslastclustern.

Bereitstellen eines Clusters mit einem benutzerdefinierten Systemimage

Für gängige Kombinationen aus Betriebssystemversion, Kubernetes-Version und Zielinfrastruktur stellt Tanzu Kubernetes Grid mit einem eigenständigen Verwaltungscluster Standard-Systemimages bereit. Sie können optional benutzerdefinierte Maschinen-Images angeben, einschließlich Images, die Sie selbst erstellen.

In den folgenden Abschnitten wird erläutert, wie Sie einen Cluster mit einem alternativen oder benutzerdefinierten Maschinen-Image bereitstellen:

Verwenden eines alternativen Maschinen-Images

In einer Clusterkonfigurationsdatei legen Sie OS_NAME, OS_VERSION und OS_ARCH fest, um das Basismaschinen-Image anzugeben, z. B. ubuntu, 20.04 oder photon, 3; und amd64. Standardmäßig handelt es sich dabei um Betriebssystem-Images, die von VMware verteilt werden, aber Sie können auch ein eigenes alternatives Betriebssystem-Image für die Clusterknoten angeben:

  1. Laden Sie das Image in vSphere hoch, wie unter Importieren einer Basisimage-Vorlage in vSphere beschrieben.

  2. Führen Sie einen der folgenden Schritte aus, je nachdem, ob Ihr Image dieselbe Betriebssystemversion aufweist wie ein vorhandenes, von VMware verteiltes Maschinen-Image:

    • Wenn Sie ein alternatives Image mit demselben Betriebssystemnamen, derselben Version und derselben Architektur wie ein vorhandenes TKr- und Image angeben, das von VMware verteilt wird, bearbeiten Sie z. B. dessen OSImage-Objekt, z. B.:

      kubectl edit OSImage v1.26.4---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
      
    • Andernfalls erstellen und wenden Sie ein neues OSImage-Objekt an und verwenden Sie dabei eine vorhandene OSImage-Objektdefinition als Vorlage. Legen Sie die Werte metadata.name und spec.image.ref.version auf den OVA-Dateinamen fest.

  3. Fügen Sie im OSImage-Block spec.image.ref des Objekts ein Bezeichnerfeld und einen Wert hinzu. Zum Beispiel, um eine Alternative zum Kubernetes-Image v1.26.4 auf Ubuntu 20.04 zu aktivieren, das von VMware verteilt wird:

    apiVersion: run.tanzu.vmware.com/v1alpha3
    kind: OSImage
    metadata:
      creationTimestamp: "2023-06-02T06:08:35Z"
      generation: 2
      labels:
        image-type: ova
        os-arch: amd64
        os-name: ubuntu
        os-type: linux
        ...
    spec:
      image:
        ref:
          MY-FIELD: MY-VALUE
          version: v1.26.4---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
        type: ova
      kubernetesVersion: v1.26.4+vmware.1
      os:
        arch: amd64
        name: ubuntu
        type: linux
        version: "2004"
    

    Dabei sind MY-FIELD und MY-VALUE das Bezeichnerfeld und der Wert, die Sie in die Cluster-Objektspezifikationen aufnehmen wollen.

    • MY-VALUE muss zwischen 0 und 63 Zeichen lang sein und kann leer sein. Ansonsten muss er mit alphanumerischen Zeichen beginnen und enden und alphanumerische Zeichen Bindestriche (-), Unterstriche (_) oder Punkte (.) enthalten.
    • TKG kopiert diese Werte in die Einstellungen OSImage metadata.labels nach dem Muster ova-MY-FIELD: MY-VALUE.
  4. Um das alternative Maschinen-Image in einem Cluster zu verwenden, bearbeiten Sie das Cluster-Objekt und fügen Sie die Einstellung ova-MY-FIELD=MY-VALUE der metadata.annotations für die Clusterknoten hinzu, die das Image verwenden werden.

    • Bearbeiten Sie für Knoten der Steuerungsebene die metadata.annotations unter topology.controlPlane.
    • Bearbeiten Sie für Worker-Knoten die metadata.annotations unter topology.workers.machineDeployments für die Maschinenbereitstellungen, die das Image verwenden.
    • Beispiel:

      metadata:
        annotations:
          run.tanzu.vmware.com/resolve-os-image: image-type=ova,ova-my-field=my-value
      

Erstellen und Verwenden eines benutzerdefinierten Maschinen-Images

Sie können Ihr eigenes Maschinen-Image erstellen, das für Clusterknoten verwendet werden soll. Dies kann folgende Gründe haben:

  • Um Cluster auf einem Basisbetriebssystem zu erstellen, das VMware unterstützt, aber nicht verteilt, wie z. B. Red Hat Enterprise Linux (RHEL) v8.
  • Installieren oder anderweitiges Anpassen von zusätzlichen Paketen im Basismaschinen-Image, wie unter Anpassung in der Image Builder-Dokumentation beschrieben.

Anweisungen finden Sie unter Erstellen von Maschinen-Images.

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