In diesem Thema wird die Vorgehensweise zum Aktualisieren von TKG-Arbeitslastclustern (Tanzu Kubernetes Grid) erläutert. Für TKG mit einem eigenständigen Verwaltungscluster müssen Sie zuerst ein Upgrade des Verwaltungsclusters durchführen, der die Arbeitslastcluster verwaltet.
Wichtig
- Informationen zum Upgrade von Arbeitslastclustern, die Sie mit Supervisor in vSphere 8 bereitgestellt haben, finden Sie unter Upgrade von durch Supervisor bereitgestellten Clustern (nur vSphere 8) in Erstellen und Verwalten von TKG 2.3-Arbeitslastclustern mit der Tanzu CLI.
- Informationen zum Upgrade von Edge-Arbeitslastclustern, die lokal gespeicherte VM-Vorlagen verwenden, finden Sie unter Upgrade eines Edge-Clusters mit einer lokalen VM-Vorlage.
- Informationen zum Upgrade von Arbeitslastclustern, die Sie anhand eines benutzerdefinierten Clustermanifests erstellt haben, finden Sie unter Upgrade von benutzerdefinierten Clustern.
- Eigenständige Verwaltungs- und Arbeitslastcluster verwenden Clientzertifikate für die Authentifizierung von Clients. Diese Zertifikate sind ein Jahr lang gültig. Um sie zu erneuern, führen Sie mindestens einmal pro Jahr ein Upgrade Ihrer Cluster durch.
WichtigTanzu Kubernetes Grid v2.4.x ist die letzte Version von TKG, die das Upgrade vorhandener TKG-Arbeitslastcluster auf AWS und Azure unterstützt. Die Möglichkeit, TKG-Arbeitslastcluster auf AWS und Azure zu aktualisieren, wird in Tanzu Kubernetes Grid v2.5 entfernt.
Ab sofort empfiehlt VMware die Verwendung von Tanzu Mission Control zur Erstellung nativer AWS EKS- und Azure AKS-Cluster. Die Aktualisierung vorhandener TKG-Arbeitslastcluster auf AWS und Azure wird jedoch weiterhin für alle TKG-Versionen bis einschließlich TKG v2.4.x vollständig unterstützt.
Weitere Informationen finden Sie unter Veraltete TKG-Verwaltungs- und -Arbeitslastcluster in AWS und Azure in den Versionshinweisen zu VMware Tanzu Kubernetes Grid v2.4.
Mit dem Upgrade-Vorgang wird die Version von Kubernetes in allen Steuerungsebenen- und Worker-Knoten Ihrer Arbeitslastcluster aktualisiert.
Zum Anzeigen einer interaktiven Liste der verfügbaren Verwaltungscluster und Auswählen des Verwaltungsclusters, der die zu aktualisierenden Cluster verwaltet, führen Sie den Befehl tanzu context use
aus:
tanzu context use
Führen Sie folgenden Befehl aus, um Ihre Arbeitslastcluster aufzulisten:
tanzu cluster list --include-management-cluster -A
Der Befehl tanzu cluster list
mit den --include-management-cluster -A
-Optionen zeigt die Kubernetes-Version an, die im Verwaltungscluster und allen von ihm verwalteten Clustern ausgeführt wird. In diesem Beispiel wird deutlich, dass der Verwaltungscluster bereits auf v1.26.8 aktualisiert wurde, auf den Arbeitslastclustern aber ältere Versionen von Kubernetes ausgeführt werden.
NAME NAMESPACE STATUS CONTROLPLANE WORKERS KUBERNETES ROLES PLAN TKR
k8s-1-24-14-cluster default running 1/1 1/1 v1.24.14+vmware.1 <none> dev v1.24.14---vmware.1-tkg.1
k8s-1-25-10-cluster default running 1/1 1/1 1.25.10+vmware.1 <none> dev 1.25.10---vmware.1-tkg.1
mgmt-cluster tkg-system running 1/1 1/1 v1.26.8+vmware.1 management dev v1.26.8---vmware.1-tkg.1
Zum Ermitteln der Kubernetes-Versionen, die von einem Verwaltungscluster bereitgestellt werden, führen Sie den Befehl tanzu kubernetes-release get
aus:
tanzu kubernetes-release get
In dieser Ausgabe werden alle Kubernetes-Versionen, die Sie zum Bereitstellen von Clustern verwenden können, mit folgenden Hinweisen aufgelistet.
COMPATIBLE
: Der aktuelle Verwaltungscluster kann Arbeitslastcluster mit dieser Tanzu Kubernetes-Version (tkr
) bereitstellen.UPDATES AVAILABLE
: Diese tkr
entspricht nicht der aktuellsten Version in der zugehörigen Kubernetes-Versionszeile. Alle Arbeitslastcluster, auf denen diese tkr
-Version ausgeführt wird, können auf neuere Versionen aktualisiert werden.Beispiel:
NAME VERSION COMPATIBLE ACTIVE UPDATES AVAILABLE
v1.24.17---vmware.1-tiny.2-tkg.1 v1.24.17+vmware.1-tiny.2-tkg.1 True True
v1.24.17---vmware.2-tkg.1 v1.24.17+vmware.2-tkg.1 True True
v1.25.13---vmware.1-tiny.2-tkg.1 v1.25.13+vmware.1-tiny.2-tkg.1 True True
v1.25.13---vmware.2-tkg.1 v1.25.13+vmware.2-tkg.1 True True
v1.26.8---vmware.1-tiny.2-tkg.1 v1.26.8+vmware.1-tiny.2-tkg.1 True True
v1.26.8---vmware.2-tkg.1 v1.26.8+vmware.2-tkg.1 True True
Zum Ermitteln der neueren tkr
-Versionen, auf die Sie einen Arbeitslastcluster unter einer älteren tkr
-Version aktualisieren können, führen Sie den Befehl tanzu kubernetes-release available-upgrades get
aus und geben die aktuelle tkr
-Version an:
tanzu kubernetes-release available-upgrades get v1.25.10---vmware.2-tkg.1
Dieser Befehl listet alle verfügbaren Kubernetes-Versionen auf, auf die Sie Cluster aktualisieren können, die die angegebene Version verwenden.
Sie können auch die tkr
-Versionen ermitteln, die für einen bestimmten Arbeitslastcluster verfügbar sind, indem Sie den Clusternamen im Befehl tanzu cluster available-upgrades get
angeben:
tanzu cluster available-upgrades get k8s-1-24-14-cluster
Dieser Befehl listet alle Kubernetes-Versionen auf, die mit dem angegebenen Cluster kompatibel sind.
Sie können Nebenversionen nicht überspringen, wenn Sie ein Upgrade der tkr
-Version durchführen. Sie können beispielsweise kein direktes Upgrade eines Clusters von v1.24.x auf v1.26.x durchführen. Sie müssen einen v1.24.x-Cluster auf v1.25.x aktualisieren, bevor Sie das Upgrade des Clusters auf v1.26.x durchführen.
(Azure) Wenn der Cluster unter Azure ausgeführt wird, legen Sie die Umgebungsvariable AZURE_CLIENT_SECRET
vor dem Upgrade des Clusters fest:
export AZURE_CLIENT_SECRET=YOUR-AZURE-CLIENT-SECRET
(vSphere) Jeder Cluster, der Knoten-IPAM verwendet, benötigt vor dem Upgrade mindestens eine nicht zugewiesene IP-Adresse in seinem IP-Pool.
Um zu überprüfen, ob ein Cluster Knoten-IPAM verwendet, suchen Sie in der Einstellung spec.topology.variables
network
des Clusterobjekts nach addressesFromPools
:
kubectl -n NAMESPACE get cluster CLUSTER-NAME -o json | jq '.spec.topology.variables[] | select(.name=="network")'
Dabei sind CLUSTER-NAME
und NAMESPACE
der Name des Arbeitslastclusters und der Namespace des Verwaltungsclusters. Beispiel:
kubectl -n default get cluster my-work-cluster -o json | jq '.spec.topology.variables[] | select(.name=="network")'
{
"name": "network",
"value": {
"addressesFromPools": [
{
"apiGroup": "ipam.cluster.x-k8s.io",
"kind": "InClusterIPPool",
"name": "mgmt-cluster-nimbus"
}
],
"ipv6Primary": false
}
}
Um zu überprüfen, ob der IP-Pool des Clusters über ungenutzte Adressen verfügt, vergleichen Sie die Gesamtzahl im Pool mit der Anzahl der derzeit zugewiesenen Adressen, wie vom folgenden Befehl ausgegeben:
kubectl -n NAMESPACE get ipaddress | grep POOL-NAME | wc -l
Führen Sie den Befehl tanzu cluster upgrade CLUSTER-NAME
aus und geben Sie zur Bestätigung y
ein. Zum Überspringen des Bestätigungsschritts geben Sie die Option --yes
an.
Um ein Upgrade des Clusters auf die Standardversion von Kubernetes für diese Tanzu Kubernetes Grid-Version durchzuführen, führen Sie den Befehl tanzu cluster upgrade
ohne Optionen aus. In dieser Version wird v1.26.8
als Standardversion verwendet. Beispiel:
tanzu cluster upgrade k8s-1-25-7-cluster
Wenn der Cluster nicht im Namespace default
ausgeführt wird, geben Sie die Option --namespace
an:
tanzu cluster upgrade CLUSTER-NAME --namespace NAMESPACE-NAME
Wenn vor Abschluss eines Upgrades eine Zeitüberschreitung eintritt, führen Sie tanzu cluster upgrade
erneut aus und geben Sie die Option --timeout
mit einem Wert an, der größer als der Standardwert von 30 Minuten ist:
tanzu cluster upgrade CLUSTER-NAME --timeout 45m0s
WichtigVorgänge in Azure dauern manchmal länger als auf anderen Plattformen. Wenn Sie Cluster in Azure aktualisieren, legen Sie routinemäßig die Option
--timeout
fest, um Fehler zu vermeiden.
Wenn mehrere Basis-VM-Images in Ihrem IaaS-Konto dieselbe Kubernetes-Version aufweisen, auf die Sie ein Upgrade durchführen, können Sie --os-name
und andere Optionen hinzufügen, um das Zielbetriebssystem anzugeben, wie unter Auswählen eines Betriebssystems für das Upgrade beschrieben:
tanzu cluster upgrade CLUSTER-NAME --os-name ubuntu
Auf vSphere können Sie die Option --vsphere-vm-template-name
verwenden, um eine Ziel-OVA-Vorlage für Clusterknoten anzugeben, wie unter Auswählen einer OVA-Vorlage für das Upgrade beschrieben:
tanzu cluster upgrade CLUSTER-NAME --vsphere-vm-template-name "/dc0/vm/tanzu/ubuntu-2004-kube-v1.29.9-vmware.1"
Da Nebenversionen von tkr
nicht übersprungen werden können, schlägt der Upgrade-Befehl fehl, wenn Sie ein Upgrade eines Clusters durchführen, der mehr als eine Nebenversion hinter der Standardversion liegt. Sie können beispielsweise kein direktes Upgrade von v1.24.x auf v1.26.x durchführen. Zum Aktualisieren eines Clusters auf eine Kubernetes-Version, die nicht als Standardversion für diese Tanzu Kubernetes Grid-Version fungiert, geben Sie die Option --tkr
mit dem NAME
der ausgewählten Version an, die oben von tanzu kubernetes-release get
aufgelistet wird. Beispielsweise zum Aktualisieren des Clusters k8s-1-24-14-cluster
von v1.24.14 auf v1.25.13.
tanzu cluster upgrade k8s-1-24-14-cluster --tkr v1.25.13---vmware.1-tkg.1
Führen Sie nach Abschluss des Upgrades den Befehl tanzu cluster list
aus, um sicherzustellen, dass der Arbeitslastcluster aktualisiert wurde:
tanzu cluster list --include-management-cluster -A
Generieren Sie die Admin-kubeconfig
neu:
tanzu cluster kubeconfig get CLUSTER-NAME --admin
Dabei gilt: CLUSTER-NAME
ist der Name des Arbeitslastclusters.
WichtigWenn Sie
kubeconfig
nach dem Upgrade nicht verlängern, können Sie nach Ablauf der Konfiguration nicht mehr auf den Cluster zugreifen.
Wenn Sie einen LDAP- oder OIDC-Identitätsanbieter verwenden, bestätigen Sie, dass Sie sich mit kubectl
beim Cluster authentifizieren können. Beispiel:
kubectl get pods -A --kubeconfig my-cluster-credentials
Führen Sie ein Upgrade aller CLI-verwalteten Pakete wie Contour, Fluent Bit oder Prometheus durch, die in Ihren Arbeitslastclustern ausgeführt werden. Weitere Informationen zum Upgrade von CLI-verwalteten Paketen finden Sie unter Aktualisieren eines Pakets.
WichtigWenn Sie Prometheus auf einem Arbeitslastcluster installiert haben und den Arbeitslastcluster auf Kubernetes v1.25 upgraden, müssen Sie Prometheus mindestens auf Version
2.37.0+vmware.3-tkg.1
aktualisieren. Frühere Versionen des Prometheus-Pakets, wie z. B. Version2.37.0+vmware.1-tkg.1
, sind nicht mit Kubernetes 1.25 kompatibel.
Sie können den Befehl tanzu cluster upgrade
nicht verwenden, um ein Upgrade der Kubernetes-Version eines Edge-Arbeitslastclusters mit einer lokalen VM-Vorlage durchzuführen, wie oben unter Angeben einer lokalen VM-Vorlage beschrieben.
Führen Sie stattdessen ein Upgrade der Kubernetes-Version des Edge-Arbeitslastclusters wie folgt durch:
Laden Sie die neue VM-Vorlage in den lokalen vCenter hoch und notieren Sie sich ihren Bestandspfad, z. B. /dc0/vm/ubuntu-2004-kube-v1.26.8+vmware.1-tkg.1
.
Bearbeiten Sie das Manifest für das zu aktualisierende Cluster
-Objekt:
kubectl edit cluster CLUSTER-NAME
Dabei ist CLUSTER-NAME
der Name des Clusters
Aktualisieren Sie unter spec.topology
Folgendes:
version
so fest, dass sie die neue Kubernetes-Version widerspiegelt.vcenter.template
-Werte, clusterweit oder unter einzelnen Maschinenbereitstellungen, auf den Bestandspfad der neuen lokalen Vorlage fest.Speichern und beenden Sie, um die neuen Cluster
-Objekteinstellungen anzuwenden.
Sie können jetzt mit der Verwendung der Tanzu CLI zum Verwalten Ihrer Cluster fortfahren. Weitere Informationen finden Sie unter Erstellen und Verwalten von TKG 2.3-Arbeitslastclustern mit der Tanzu CLI.