Eine Tanzu Kubernetes-Version (TKr) bietet die von VMware signierte und unterstützte Kubernetes-Softwareverteilung für die Verwendung mit TKG-Dienstclustern. Das TKr-Format wird für vSphere 8 aktualisiert, um Pakete und mehrere Betriebssysteme zu unterstützen.

Versionshinweise zu TKr

In den Versionshinweisen zu Tanzu Kubernetes-Versionen finden Sie eine vollständige Liste der verfügbaren TKrs, die neuen Funktionen für jede Version, bekannte Probleme und die TKr-Kompatibilität.

TKr – Verteilung und Verbrauch

VMware verteilt Tanzu Kubernetes-Versionen über ein Content Delivery Network. Mithilfe einer vSphere-Inhaltsbibliothek verknüpfen Sie TKrs mit vSphere-Namespaces. Um den Verbrauch von TKrs zu automatisieren, verwenden Sie eine abonnierte Inhaltsbibliothek. Verwenden Sie für Umgebungen mit eingeschränktem Internetzugriff eine lokale Inhaltsbibliothek.

Jede Tanzu Kubernetes-Version wird als OVA-Vorlage bereitgestellt. Der TKr-Controller auf Supervisor verwendet die OVA-Vorlage, um die VMs für TKG-Clusterknoten zu erstellen. Die VM-Festplattengröße wird durch die TKr-OVA-Vorlage festgelegt. Sie geben CPU- und RAM-Ressourcen mithilfe von VM-Klassen an.

Die TKr-Inhaltsbibliothek ist nicht auf den Namespace-Geltungsbereich beschränkt. Alle vSphere-Namespaces verwenden dieselbe TKr-Inhaltsbibliothek für TKG mit Supervisor. Wenn Sie die TKr-Inhaltsbibliothek für einen vSphere-Namespace ändern, wird sie auch für alle anderen aktualisiert.

TKr NAME-Zeichenfolge

Listen Sie mithilfe des Befehls kubectl get tkr die TKr-Images auf, die im vSphere-Namespace zur Verfügung stehen. Beispiel:
kubectl get tkr
NAME                                  VERSION                             READY   COMPATIBLE   CREATED
v1.16.14---vmware.1-tkg.1.ada4837     v1.16.14+vmware.1-tkg.1.ada4837     False   False        19d
v1.17.17---vmware.1-tkg.1.d44d45a     v1.17.17+vmware.1-tkg.1.d44d45a     False   False        19d
v1.18.19---vmware.1-tkg.1.17af790     v1.18.19+vmware.1-tkg.1.17af790     False   False        19d
v1.19.16---vmware.1-tkg.1.df910e2     v1.19.16+vmware.1-tkg.1.df910e2     False   False        19d
v1.20.12---vmware.1-tkg.1.b9a42f3     v1.20.12+vmware.1-tkg.1.b9a42f3     False   False        19d
v1.21.6---vmware.1-tkg.1.b3d708a      v1.21.6+vmware.1-tkg.1.b3d708a      True    True         19d
v1.22.9---vmware.1-tkg.1.cc71bc8      v1.22.9+vmware.1-tkg.1.cc71bc8      True    True         19d
v1.23.8---vmware.2-tkg.2-zshippable   v1.23.8+vmware.2-tkg.2-zshippable   True    True         19d
v1.23.8---vmware.3-tkg.1              v1.23.8+vmware.3-tkg.1              True    True         19d
Sie verwenden die TKr NAME-Zeichenfolge, um TKG-Cluster auf Supervisor bereitzustellen. Wenn Sie die v1alpha3-API verwenden, geben Sie die vollständige TKr NAME-Zeichenfolge im Feld tkr.reference.name an. Wenn Sie die v1beta1-API verwenden, geben Sie die vollständige TKr NAME-Zeichenfolge im Feld topology.version an.
Hinweis: Verwenden Sie nicht die VERSION-Zeichenfolge, wenn Sie auf die TKr in der Clusterspezifikation verweisen. Das Format muss exakt mit der TKr NAME-Zeichenfolge übereinstimmen.

Der Name der TKr in der Inhaltsbibliothek muss der vollständigen TKr NAME-Zeichenfolge entsprechen. Wenn Sie eine abonnierte Inhaltsbibliothek verwenden, wird die TKr NAME-Zeichenfolge für Sie erstellt. Wenn Sie eine lokale Inhaltsbibliothek verwenden, stellen Sie sicher, dass der für die TKr vergebene Name mit der TKr NAME-Zeichenfolge übereinstimmt. Weitere Informationen finden Sie unter Lokale Inhaltsbibliothek.

TKr-Kompatibilität mit TKG-Dienst

TKrs werden unabhängig vom TKG-Dienst und vom Supervisor freigegeben und aktualisiert.

Zum Bereitstellen eines TKG-Clusters muss die TKr mit dem TKG-Dienst kompatibel sein. Sie können keine TKr verwenden, die nicht mit dem TKG-Dienst kompatibel ist. Darüber hinaus müssen Sie sicherstellen, dass eine kompatible TKr für die zu aktualisierende Version ausgeführt wird.

Sie können die TKr-Kompatibilität mithilfe des Befehls kubectl get tkr überprüfen. Die COMPATIBLE-Spalte gibt einen booleschen Wert zurück. True bedeutet, dass die TKr kompatibel ist. False bedeutet, dass die TKr nicht kompatibel ist.

TKr-Kompatibilität mit vSphere

Das TKr-Format wird für vSphere 8 aktualisiert. TKrs für vSphere 8 können nur auf vSphere 8.x ausgeführt werden. TKrs für vSphere 7.x sind Legacy-Images, die mit vSphere 7 funktionieren. Solche Images können auf vSphere 8 ausgeführt werden, aber nur zu Upgrade-Zwecken. Legacy-TKr-Images werden durch die Anmerkungsbezeichnung legacy-tkr angegeben.

Sie können die TKr-Kompatibilität mithilfe der Befehle kubectl get tkr -o yaml und kubectl get tkr --show-labels überprüfen. Wenn die Anmerkungsbezeichnung legacy-tkr vorhanden ist, unterstützt die TKr vSphere 8-Funktionen nicht und sollte nur für das Upgrade von vSphere 7 auf vSphere 8 verwendet werden.

Der folgende Befehl zeigt beispielsweise an, dass es sich bei dem angegebenen Image um die Bezeichnung legacy-tkr handelt.
kubectl get tkr v1.23.8---vmware.3-tkg.1 -o yaml
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesRelease
metadata:
  creationTimestamp: "2023-03-15T20:33:17Z"
  finalizers:
  - tanzukubernetesrelease.run.tanzu.vmware.com
  generation: 1
  labels:
    os-arch: amd64
    os-name: photon
    os-type: linux
    os-version: "3.0"
    run.tanzu.vmware.com/legacy-tkr: ""
    v1: ""
    v1.23: ""
    v1.23.8: ""
    v1.23.8---vmware: ""
    v1.23.8---vmware.3: ""
    v1.23.8---vmware.3-tkg: ""
    v1.23.8---vmware.3-tkg.1: ""
  name: v1.23.8---vmware.3-tkg.1
Im folgenden Beispiel wird das --show-labels-Flag verwendet, um die TKr-Kompatibilität zu überprüfen. Die legacy-tkr-Bezeichnung ist vorhanden, sodass das Image nur zum Erstellen eines TKG-Clusters verwendet werden kann.
kubectl get tkr v1.23.8---vmware.3-tkg.1 --show-labels
NAME                       VERSION                  READY   COMPATIBLE   CREATED   LABELS
v1.23.8---vmware.3-tkg.1   v1.23.8+vmware.3-tkg.1   True    True         19d       os-arch=amd64,os-name=photon,os-type=linux,os-version=3.0,run.tanzu.vmware.com/legacy-tkr=,
Das folgende Beispiel zeigt eine für vSphere 8.x vorgesehene TKr, da die Bezeichnung legacy-tkr in der Liste der Bezeichnungen nicht vorhanden ist.
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 --show-labels
NAME                              VERSION                         READY   COMPATIBLE   CREATED   LABELS
v1.28.8---vmware.1-fips.1-tkg.2   v1.28.8+vmware.1-fips.1-tkg.2   True    True         21d       os-arch=amd64,os-name=photon,os-type=linux,os-version=5.0,tkr.tanzu.vmware.com/standard=,v1.28.8---vmware.1-fips.1-tkg.2=,v1.28.8---vmware.1-fips.1-tkg=,v1.28.8---vmware.1-fips.1=,v1.28.8---vmware.1-fips=,v1.28.8---vmware.1=,v1.28.8---vmware=,v1.28.8=,v1.28=,v1=
Wenn Sie den entsprechenden Befehl mit -o yaml ausführen, wird auch angezeigt, dass die Bezeichnung legacy-tkr nicht vorhanden ist. Dies spricht dafür, dass die TKr speziell für vSphere 8.x entwickelt wurde.
 kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 -o yaml
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesRelease
metadata:
  creationTimestamp: "2024-05-08T20:03:57Z"
  finalizers:
  - tanzukubernetesrelease.run.tanzu.vmware.com
  generation: 2
  labels:
    os-arch: amd64
    os-name: photon
    os-type: linux
    os-version: "5.0"
    tkr.tanzu.vmware.com/standard: ""
    v1: ""
    v1.28: ""
    v1.28.8: ""
    v1.28.8---vmware: ""
    v1.28.8---vmware.1: ""
    v1.28.8---vmware.1-fips: ""
    v1.28.8---vmware.1-fips.1: ""
    v1.28.8---vmware.1-fips.1-tkg: ""
    v1.28.8---vmware.1-fips.1-tkg.2: ""
  name: v1.28.8---vmware.1-fips.1-tkg.2
...

TKr-Betriebssystem-Image-Format

Das TKr-Betriebssystem-Image-Format unterstützt mehrere Betriebssystem-Images für eine einzelne TKr. Dies bedeutet, dass es eine einzige Tanzu Kubernetes-Version für eine bestimmte Kubernetes-Version für alle unterstützten Betriebssysteme gibt. Dies sind derzeit Photon OS und Ubuntu. Photon OS ist das standardmäßige Betriebssystem-Image-Format.

Standardmäßig wird die Photon OS-Edition der benannten TKr für TKG-Clusterknoten verwendet. Wenn die referenzierte TKr das Betriebssystem-Image-Format unterstützt und eine Ubuntu-Betriebssystemedition verfügbar ist, geben Sie mithilfe der Anmerkung run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu die Ubuntu-Betriebssystemedition der TKr an. Beispiel: Die folgende TKG-Clusterspezifikation verwendet die Ubuntu-Edition der benannten TKr.
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesCluster
metadata:
  name: tkgs-cluster-ubuntu
  namespace: tkgs-cluster-ns
  annotations:
    run.tanzu.vmware.com/resolve-os-image: os-name=ubuntu
spec:
   topology:
     controlPlane:
       ...
       tkr:
         reference:
           name: v1.28.8---vmware.1-fips.1-tkg.2
Das Betriebssystem-Image-Format unterstützt heterogene Clusterbereitstellungen. Beispielsweise erstellt das folgende Clustermanifest einen Tanzu Kubernetes-Cluster mit dem Standardbetriebssystem Photon OS für die Steuerungsebenenknoten und Ubuntu für die Worker-Knoten. Die TKr-Version wird im Abschnitt der Steuerungsebene referenziert, und die Anmerkung gibt Ubuntu für den benannten Worker-Knotenpool an.
apiVersion: run.tanzu.vmware.com/v1alpha3
kind: TanzuKubernetesCluster
metadata:    
  name: tkgs-cluster-multiOS
  namespace: tkgs-cluster-ubuntu
  annotations:
    //Worker nodes annotation
    run.tanzu.vmware.com/resolve-os-image.np-1: os-name=ubuntu
spec:    
  topology:      
    controlPlane:        
      tkr:          
        reference:            
          name: v1.28.8---vmware.1-fips.1-tkg.2
      replicas: 3
      vmClass: guaranteed-medium
      storageClass: tkgs-storage-profile 
    nodePools:     
    - replicas: 3
      name: np-1
      vmClass: guaranteed-medium
      storageClass: tkgs-storage-profile

Wenn das System auf vSphere 8 aktualisiert wird, werden vorhandene TKrs automatisch in das TKr-Betriebssystem-Image-Format mit Referenz auf ein einzelnes Betriebssystem-Image konvertiert. Dadurch können Legacy-TKrs für das Upgrade auf ein Nicht-Legacy-TKr kompatibel sein.

Legacy-TKrs haben zwei Editionen: Photon und Ubuntu. Wenn die Legacy-TKr über eine Ubuntu-spezifische Edition verfügt, können Sie die vollständige Versionszeichenfolge (mit „ubuntu“) verwenden und die Anmerkungsbezeichnung weglassen oder die kurze Versionszeichenfolge (ohne „ubuntu“) verwenden und die Versionsbezeichnung einschließen.

TKr-Pakete

TKr-Images, die mit vSphere 8 kompatibel sind, werden auf ein paketbasiertes Framework für zentrale Komponenten aktualisiert, etwa das Container Storage Interface (CSI) und das Container Network Interface (CNI). Wenn Sie die v1beta-API verwenden, werden diese Komponenten mithilfe benutzerdefinierter Ressourcendefinitionen geändert oder aktualisiert.

Um die Pakete anzuzeigen, aus denen sich eine TKr zusammensetzt, führen Sie den folgenden Befehl aus:
kubectl get tkr TKR-NAME -o yaml
Beispiel:
kubectl get tkr v1.28.8---vmware.1-fips.1-tkg.2 -o yaml
Der Befehl gibt alle Pakete in der TKr zurück. Beispiel:
spec:
  bootstrapPackages:
  - name: antrea.tanzu.vmware.com.1.13.3+vmware.3-tkg.2-vmware
  - name: vsphere-pv-csi.tanzu.vmware.com.3.1.0+vmware.1-tkg.6-vmware
  - name: vsphere-cpi.tanzu.vmware.com.1.28.0+vmware.1-tkg.1-vmware
  - name: kapp-controller.tanzu.vmware.com.0.48.2+vmware.1-tkg.1-vmware
  - name: guest-cluster-auth-service.tanzu.vmware.com.1.3.3+tkg.1-vmware
  - name: metrics-server.tanzu.vmware.com.0.6.2+vmware.3-tkg.5-vmware
  - name: secretgen-controller.tanzu.vmware.com.0.15.0+vmware.1-tkg.1-vmware
  - name: pinniped.tanzu.vmware.com.0.25.0+vmware.2-tkg.1-vmware
  - name: capabilities.tanzu.vmware.com.0.32.1+vmware.1
  - name: gateway-api.tanzu.vmware.com.1.0.0+vmware.1-tkg.1-vmware
  - name: calico.tanzu.vmware.com.3.26.3+vmware.1-tkg.1-vmware

Unter v1beta1-Beispiel: Cluster mit Calico-CNI finden Sie ein Beispiel für einen Anwendungsfall.

Migrieren von TKr-Betriebssystemtypen

Direkte Cluster-Updates zwischen TKr-Betriebssystemen werden nicht unterstützt. Dies bedeutet beispielsweise, dass Sie kein Upgrade eines TKG-Clusters mit TKr v1.27.11 Photon auf TKr v1.28.8 Ubuntu durchführen können.

Wenn Sie den von einem TKG-Cluster verwendeten TKr-Betriebssystemtyp ändern möchten, verwenden Sie folgendes Verfahren. In diesem Beispiel verwendet der ursprüngliche Cluster TKr-Photon, während auf dem Zielcluster TKr Ubuntu ausgeführt wird.

TKr-Härtung

Security Technical Implementation Guides (STIG) für Systemkomponenten, einschließlich Supervisor und TKrs, stehen zur Verfügung. Weitere Informationen finden Sie unter Tanzu STIG-Härtung.

Erstellen einer eigenen TKr

Ab TKr v1.25.7 für vSphere 8.x können Sie benutzerdefinierte TKr-Maschinen-Images für TKG-Cluster auf vSphere 8 erstellen. Ein benutzerdefiniertes Maschinen-Image enthält ein unterstütztes Betriebssystem in einer unterstützten Version, eine Kubernetes-Version basierend auf einer freigegebenen TKr und alle von Ihnen vorgenommenen Anpassungen.

Zum Erstellen benutzerdefinierter Maschinen-Images für TKG-Clusterknoten verwenden Sie den vSphere Tanzu Kubernetes Grid Image Builder. Weitere Informationen zum Erstellen benutzerdefinierter Images, unterstützter TKr-Versionen und unterstützter Anpassungen finden Sie in der Dokumentation.