In diesem Thema wird erläutert, wie Sie verfügbare Kubernetes-Versionen auflisten und einen Arbeitslastcluster mit einer nicht standardmäßigen Kubernetes-Version bereitstellen.
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.
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:
tanzu kubernetes-release get
aus.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
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
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
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.
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:
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:
v
in k8s-
..
in dot
.+vmware.*
am Ende in -ubuntu-2004
, um Ubuntu v20.04, die Standard-Betriebssystemversion für alle Tanzu Kubernetes Grid-VMs in Azure, anzugeben.k8s-1dot27dot5-ubuntu-2004
, k8s-1dot26dot8-ubuntu-2004
.
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
Um den Arbeitslastcluster mit einer nicht standardmäßigen Kubernetes-Version bereitzustellen:
Wenn Sie einen planbasierten Cluster bereitstellen, legen Sie eine Umgebungsvariable vom Typ ALLOW_LEGACY_CLUSTER
auf true
fest:
export ALLOW_LEGACY_CLUSTER=true
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
:
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
.
Erstellen Sie das ConfigMap
-Objekt:
kubectl apply -f old-tkrs-config.yaml
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.
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:
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:
Laden Sie das Image in vSphere hoch, wie unter Importieren einer Basisimage-Vorlage in vSphere beschrieben.
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.
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.OSImage
metadata.labels
nach dem Muster ova-MY-FIELD: MY-VALUE
.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.
metadata.annotations
unter topology.controlPlane
.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
Sie können Ihr eigenes Maschinen-Image erstellen, das für Clusterknoten verwendet werden soll. Dies kann folgende Gründe haben:
Anweisungen finden Sie unter Erstellen von Maschinen-Images.