Tutorial: Durchführen eines Upgrades für Kubernetes in Azure Kubernetes Service in Azure Stack HCI und Windows Server
Im Rahmen der Verwaltung des Anwendungs- und Clusterlebenszyklus möchten Sie möglicherweise ein Upgrade auf die neueste verfügbare Version von Kubernetes in Azure Kubernetes Service (AKS) in Azure Stack HCI und Windows Server durchführen.
In diesem Tutorial (Teil 7 von 7) wird beschrieben, wie ein Upgrade für einen Kubernetes-Cluster durchgeführt wird. Sie lernen Folgendes:
- Identifizieren der aktuellen und verfügbaren Kubernetes-Versionen
- Aktualisieren der Kubernetes-Version von Kubernetes-Knoten
- Aktualisieren der Betriebssystemversion von Kubernetes-Knoten
- Aktualisieren eines Kubernetes-Clusters auf die neueste Version
- Überprüfen des erfolgreichen Upgrades
- Entfernen eines Kubernetes-Clusters
Welche Aktualisierungsoptionen sind verfügbar?
Es gibt mehrere Arten von Updates, die unabhängig voneinander und in bestimmten unterstützten Kombinationen durchgeführt werden können:
- Aktualisieren des Hosts von AKS in Azure Stack HCI und Windows Server auf die aktuelle Version
- Aktualisieren eines Workloadclusters in AKS in Azure Stack HCI und Windows Server auf eine neue Kubernetes-Version
- Aktualisieren der Containerhosts von AKS in Azure Stack HCI und Windows Server auf eine neuere Version des Betriebssystems
- Kombiniertes Update von Betriebssystem und Kubernetes-Version
Alle Updates werden in einem parallelen Flow durchgeführt, um Ausfälle bei der Verfügbarkeit von Workloads zu vermeiden. Wenn ein neuer Kubernetes-Workerknoten mit einem neueren Build in den Cluster integriert wird, werden die Ressourcen vom alten Knoten auf den neuen Knoten verschoben. Anschließend wird der alte Knoten außer Betrieb genommen und aus dem Cluster entfernt.
In den Beispielen in diesem Tutorial wird vorausgesetzt, dass der Workloadcluster mycluster derzeit Kubernetes-Version 1.18.8 entspricht und über eine Betriebssystemversion verfügt, die älter ist als 30 Tage.
Vorbereitung
In vorherigen Tutorials haben Sie gelernt, wie Sie eine Anwendung in ein Containerimage packen, es in Azure Container Registry hochladen und einen AKS-Cluster erstellen. Anschließend haben Sie die Anwendung in einem Cluster in AKS in Azure Stack HCI und Windows Server bereitgestellt. Wenn Sie diese Schritte nicht ausgeführt haben, beginnen Sie mit Tutorial 1: Erstellen von Containerimages.
Aktualisieren der Kubernetes-Version eines Workloadclusters
Sie müssen zuerst ein Upgrade der PowerShell-Module und des Hosts von AKS in Azure Stack HCI und Windows Server durchführen, bevor Sie die Kubernetes-Version aktualisieren.
Wichtig
Das Aktualisieren eines Workloadclusters auf eine neuere Version von Kubernetes funktioniert nur, wenn die Kubernetes-Zielversion von der aktuellen Betriebssystemversion unterstützt wird. Überprüfen Sie mit dem Befehl Get-AksHciUpdates die unterstützten Kombinationen von Betriebssystem- und Kubernetes-Version.
Aktualisieren der Kubernetes-Version eines Workloadclusters: Beispiel
Führen Sie die folgenden Schritte aus, um die Kubernetes-Version zu aktualisieren:
Führen Sie den folgenden Befehl aus, um die aktuelle Version Ihres Workloadclusters abzurufen:
Get-AksHciClusterAusgabe
ProvisioningState : provisioned KubernetesVersion : v1.20.7 NodePools : linuxnodepool WindowsNodeCount : 0 LinuxNodeCount : 0 ControlPlaneNodeCount : 1 Name : myclusterFühren Sie den folgenden Befehl aus, um die verfügbaren Kubernetes-Versionen abzurufen:
PS C:\> Get-AksHciKubernetesVersionAusgabe
OrchestratorType OrchestratorVersion OS IsPreview ---------------- ------------------- -- --------- Kubernetes v1.19.9 Linux False Kubernetes v1.19.11 Linux False Kubernetes v1.20.5 Linux False Kubernetes v1.20.7 Linux False Kubernetes v1.21.1 Linux False Kubernetes v1.19.9 Windows False Kubernetes v1.19.11 Windows False Kubernetes v1.20.5 Windows False Kubernetes v1.20.7 Windows False Kubernetes v1.21.1 Windows FalseDie Ausgabe zeigt die Kubernetes-Versionen und -Betriebssysteme, unter denen die Version verfügbar ist. Sie sehen, dass weitere Upgradeversionen verfügbar sind. Beim Upgrade von Clustern können Sie Versionen jedoch nicht überspringen. Das Upgrade von v1.18.xx auf v1.19.xx ist beispielsweise zulässig, das Upgrade von v1.18.xx auf v1.20.xx jedoch nicht.
Initiieren des Updates der Kubernetes-Version
Führen Sie den folgenden Befehl aus, um die Kubernetes-Version zu aktualisieren:
PS C:\> Update-AksHciCluster -name mycluster -kubernetesVersion v1.21.1Hinweis
Dieser Befehl aktualisiert nur die vorhandenen Clusterknoten im Workloadcluster
myclusterauf die neue Version von Kubernetes.
Ausschließliches Aktualisieren der Betriebssystemversion
Wichtig
Sie können einen Workloadcluster auf eine neuere Betriebssystemversion ohne Änderung der Kubernetes-Version aktualisieren. Dies funktioniert jedoch nur, wenn für die neue Betriebssystemversion keine andere Kubernetes-Version erforderlich ist.
Ausschließliche Aktualisierung des Betriebssystems: Beispiel
Verwenden Sie die Schritte im folgenden Beispiel, um die Betriebssystemversion zu aktualisieren:
Führen Sie den folgenden Befehl aus, um verfügbare Workloadclusterupdates abzurufen:
PS C:\> Get-AksHciClusterUpdates -name myclusterdetails kubernetesversion operatingsystemversion ------- ----------------- ---------------------- This is a patch kubernetes upgrade. (i.e v1.1.X to v1.1.Y) v1.19.9 @{mariner=April 2021; windows=April 2021} This is a minor kubernetes upgrade. (i.e v1.X.1 to v1.Y.1) v1.20.5 @{mariner=April 2021; windows=April 2021}Führen Sie den folgenden Befehl aus, um die Aktualisierung der Betriebssystemversion zu initiieren:
PS C:\> Update-AksHciCluster -clusterName mycluster -kubernetesVersion v1.21.1 -operatingSystem
Aktualisieren der Betriebssystemversion und der Kubernetes-Version
Wichtig
Das Aktualisieren eines Workloadclusters auf eine neuere Betriebssystem- und Kubernetes-Version wird unterstützt.
Aktualisieren eines Workloadclusters: Beispiel
Im folgenden Beispiel wird davon ausgegangen, dass eine neue Kubernetes-Version verfügbar ist und die aktuelle Versionsnummer v1.20.7 lautet.
Führen Sie den folgenden Befehl aus, um alle verfügbaren Workloadclusterupdates abzurufen:
PS C:\> Get-AksHciClusterUpgrades -name myclusterdetails kubernetesversion operatingsystemversion ------- ----------------- ---------------------- This is a patch kubernetes upgrade. (i.e v1.1.X to v1.1.Y) v1.19.9 @{mariner=April 2021; windows=April 2021} This is a minor kubernetes upgrade. (i.e v1.X.1 to v1.Y.1) v1.20.5 @{mariner=April 2021; windows=April 2021}Führen Sie den folgenden Befehl aus, um das Workloadclusterupdate zu initiieren:
PS C:\> Update-AksHciCluster -clusterName mycluster -kubernetesVersion v1.21.1
Überprüfen eines Upgrades
Überprüfen Sie mithilfe des Befehls Get-AksHciCluster wie folgt, ob das Upgrade erfolgreich durchgeführt wurde:
Get-AksHciCluster -name mycluster
Die folgende Beispielausgabe zeigt, dass der Cluster KubernetesVersion v1.21.1 ausführt:
Ausgabe
ProvisioningState : provisioned
KubernetesVersion : v1.21.1
NodePools : linuxnodepool
WindowsNodeCount : 0
LinuxNodeCount : 0
ControlPlaneNodeCount : 1
Name : mycluster
Löschen des Clusters
Da dieses Tutorial der letzte Teil der Reihe ist, ist es ratsam, den Cluster zu löschen. Führen Sie den Befehl Remove-AksHciCluster aus, um die Ressourcengruppe, den Containerdienst und alle dazugehörigen Ressourcen zu entfernen.
Remove-AksHciCluster -name mycluster
Nächste Schritte
In diesem Tutorial haben Sie Kubernetes in einem Cluster in AKS in Azure Stack HCI und Windows Server aktualisiert. Sie haben Folgendes gelernt:
- Identifizieren der aktuellen und verfügbaren Kubernetes-Versionen
- Aktualisieren der Kubernetes-Version von Kubernetes-Knoten
- Aktualisieren der Betriebssystemversion von Kubernetes-Knoten
- Aktualisieren eines Kubernetes-Clusters auf die neueste Version
- Überprüfen des erfolgreichen Upgrades
Weitere Informationen zu AKS in Azure Stack HCI und Windows Server finden Sie unter Was ist lokales Kubernetes mit Azure Kubernetes Service in Azure Stack HCI und Windows Server? und Clusterarchitektur und -workloads von Kubernetes für Azure Kubernetes Service in Azure Stack HCI und Windows Server.