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.3 in den Versionshinweisen zu VMware Tanzu Kubernetes Grid 2.3.
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.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
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.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
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.
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:
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-1dot26dot8-ubuntu-2004
, k8s-1dot25dot13-ubuntu-2004
.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.
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.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
.
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-13-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.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.
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.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.