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.4 in den Versionshinweisen zu VMware Tanzu Kubernetes Grid v2.4.

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.26.8 passen, führen Sie tanzu kubernetes-release get v1.26.8 aus.
tanzu kubernetes-release get
NAME                       VERSION                  COMPATIBLE  ACTIVE  UPDATES AVAILABLE
v1.25.13---vmware.1-tkg.1  v1.25.13+vmware.1-tkg.1  True        True
v1.26.8---vmware.1-tkg.1   v1.26.8+vmware.1-tkg.1   True        True
v1.27.5---vmware.2-tkg.1   v1.27.5+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.27.5---vmware.1-tkg.1

So deaktivieren Sie ein TKr:

tanzu kubernetes-release deactivate TKR-NAME

Beispiel:

tanzu kubernetes-release deactivate v1.27.5---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.4 ist Kubernetes v1.27.5.

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 auf Basis neuer 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.
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.
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-1dot27dot5-ubuntu-2004, k8s-1dot26dot8-ubuntu-2004.
      1. 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-1dot27dot5-ubuntu-2004
    

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.4.0, und die TKR-VERSON-*-Werte sind die älteren TKr-Versionen, die in tanzu kubernetes-release get aufgeführt sind, z. B. v1.24.11--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-10-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.8---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.8 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.8---vmware.1-tkg.1-6c92aa1cbb96b644085e6229f41ef14d
        type: ova
      kubernetesVersion: v1.26.8+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