Aktualisieren eines Kubernetes-Clusters in Azure Stack Hub
Mit der AKS-Engine können Sie den Cluster aktualisieren, der ursprünglich mit dem Tool bereitgestellt wurde. Sie können die Cluster mithilfe der AKS-Engine verwalten. Die Verwaltungsaufgaben ähneln den IaaS-Systemen. Beachten Sie die Verfügbarkeit neuer Updates, und wenden Sie sie mit der AKS-Engine an.
Durchführen eines Clusterupgrades
Mit dem Upgradebefehl werden die Kubernetes-Version und das Betriebssystem-Basisimage aktualisiert. Bei jeder Ausführung des Upgradebefehls erstellt die AKS-Engine für jeden Knoten des Clusters einen neuen virtuellen Computer unter Verwendung des AKS-Basisimages, das der Version der verwendeten aks-engine zugeordnet ist. Mit dem Befehl aks-engine upgrade können Sie die Währung aller Master- und Agent-Knoten im Cluster beibehalten.
Microsoft verwaltet Ihren Cluster nicht. Microsoft stellt jedoch das Tool und das VM-Image bereit, mit denen Sie Ihren Cluster verwalten können.
Für ein bereitgestelltes Cluster decken Upgrades Folgendes ab:
- Kubernetes
- Azure Stack Hub-Kubernetes-Anbieter
- Basisbetriebssystem
Beachten Sie bei der Aktualisierung eines Produktionsclusters Folgendes:
- Verwenden Sie die richtige Clusterspezifikation (
apimodel.json) und Ressourcengruppe für den Zielcluster? - Verwenden Sie einen zuverlässigen Computer als Clientcomputer, auf dem die AKS-Engine ausgeführt wird und von dem Sie Upgradevorgänge ausführen?
- Stellen Sie sicher, dass ein funktionsfähiger Sicherungscluster vorhanden ist.
- Führen Sie den Befehl wenn möglich von einem virtuellen Computer in der Azure Stack Hub-Umgebung aus, um die Anzahl der Netzwerkhops und potenzielle Verbindungsfehler zu verringern.
- Stellen Sie sicher, dass das Kontingent Ihres Abonnements ausreicht, um den gesamten Prozess auszuführen. Während des Prozesses werden neue virtuelle Computer zugeordnet.
- Systemupdates oder geplante Tasks sind nicht vorgesehen.
- Richten Sie ein gestaffeltes Upgrade auf einem Cluster ein, der genau wie der Produktionscluster konfiguriert ist, und testen Sie das Upgrade dort, bevor Sie es im Produktionscluster ausführen.
Schritte zum Durchführen eines Upgrades auf eine neuere Kubernetes-Version
Hinweis
Das AKS-Basisimage wird auch aktualisiert, wenn Sie eine neuere Version der AKS-Engine verwenden und das Image im Marketplace verfügbar ist.
In den folgenden Anweisungen werden die minimalen Schritte zum Ausführen des Upgrades verwendet. Weitere Details finden Sie im Artikel Versionszuordnung für AKS-Engine und Azure Stack.
Sie müssen zunächst die Versionen bestimmen, die Sie für das Upgrade als Ziel festlegen können. Diese Version hängt von der Version ab, die Sie zurzeit verwenden, und verwenden Sie dann diesen Versionswert, um das Upgrade durchzuführen. Die von der AKS-Engine unterstützten Kubernetes-Versionen können durch Ausführen des folgenden Befehls aufgelistet werden:
aks-engine get-versions --azure-env AzureStackCloudEine vollständige Zuordnung von AKS-Engine, AKS-Basisimage und Kubernetes-Versionen finden Sie unter Unterstützte AKS-Engine-Versionen.
Sammeln Sie die Informationen, die Sie zum Ausführen des
upgrade-Befehls benötigen. Für das Upgrade werden die folgenden Parameter verwendet:Parameter Beispiel BESCHREIBUNG azure-env AzureStackCloud Um der AKS-Engine mitzuteilen, dass die Zielplattform Azure Stack Hub ist, verwenden Sie AzureStackCloud.location local Der Regionsname für Ihre Azure Stack Hub-Instanz. Für das ASDK ist localfür die Region festgelegt.resource-group kube-rg Geben Sie den Namen einer neuen Ressourcengruppe ein, oder wählen Sie eine vorhandene Ressourcengruppe aus. Der Ressourcenname muss alphanumerisch und in Kleinbuchstaben angegeben sein. subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Geben Sie Ihre Abonnement-ID ein. Weitere Informationen finden Sie unter Abonnieren von Angeboten. api-model ./kubernetes-azurestack.json Pfad zur Clusterkonfigurationsdatei oder zum API-Modell. client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Geben Sie die Dienstprinzipal-GUID ein. Die als Anwendungs-ID identifizierte Client-ID, wenn Ihr Azure Stack Hub-Administrator den Dienstprinzipal erstellt hat. client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Geben Sie das Dienstprinzipalgeheimnis ein. Dies ist das Clientgeheimnis, das Sie beim Erstellen Ihres Diensts einrichten. identity-system adfs Optional. Geben Sie Ihre Identitätsverwaltungslösung an, wenn Sie Active Directory-Verbunddienste (AD FS) nutzen. Führen Sie mit Ihren Werten den folgenden Befehl aus:
aks-engine upgrade \ --azure-env AzureStackCloud \ --location <for an ASDK is local> \ --resource-group kube-rg \ --subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --api-model kube-rg/apimodel.json \ --upgrade-version 1.18.15 \ --client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ --identity-system adfs # required if using AD FSWenn aus einem beliebigen Grund beim Upgradevorgang ein Fehler auftritt, können Sie den Upgradebefehl erneut ausführen, nachdem Sie das Problem behoben haben. Die AKS-Engine setzt den Vorgang dort fort, wo zuvor der Fehler aufgetreten ist.
Schritte zum alleinigen Upgrade des Betriebssystemimages
- Sehen Sie sich die Tabelle der unterstützten Kubernetes-Versionen an, und überprüfen Sie, ob Sie über die Version von aks-engine und des AKS-Basisimages verfügen, für die Sie das Upgrade durchführen möchten. Führen Sie
aks-engine versionaus, um die Version von aks-engine anzuzeigen. - Aktualisieren Sie die AKS-Engine entsprechend. Führen Sie auf dem Computer, auf dem Sie aks-engine installiert haben, Folgendes aus:
./get-akse.sh --version vx.xx.x. Ersetzen Sie dabei./get-akse.sh --version vx.xx.xdurch die Zielversion. - Bitten Sie Ihren Azure Stack Hub-Operator, die erforderliche Version des AKS-Basisimages im Azure Stack-Marketplace hinzuzufügen, den Sie verwenden möchten.
- Führen Sie den Befehl
aks-engine upgrademit derselben Version von Kubernetes aus, die Sie bereits verwenden, fügen Sie jedoch--forcehinzu. Ein Beispiel finden Sie unter Erzwingen eines Upgrades.
Schritte zum Aktualisieren des Clusters auf die Ubuntu-Betriebssystemversion 18.04
Mit der AKS-Engine-Version 0.60.1 und höher können Sie Ihre Cluster-VMs von Ubuntu 16.04 auf 18.04 aktualisieren. Folgen Sie diesen Schritten:
- Suchen und bearbeiten Sie die Datei
api-model.json, die während der Bereitstellung generiert wurde. Dabei sollte es sich um dieselbe Datei handeln, die für jeden Upgrade- oder Skalierungsvorgang mitaks-engineverwendet wird. - Suchen Sie nach den Abschnitten
masterProfileundagentPoolProfiles. Ändern Sie in diesen Abschnitten den Wert vondistroinaks-ubuntu-18.04. - Speichern Sie die Datei
api-model.json, und verwenden Sie die Dateiapi-model.jsonwie inapi-model.jsonim Befehlaks-engin upgrade.
Erzwingen eines Upgrades
Unter bestimmten Bedingungen möchten Sie möglicherweise ein Upgrade Ihres Clusters erzwingen. Beispielsweise stellen Sie am ersten Tag einen Cluster in einer nicht verbundenen Umgebung mithilfe der neuesten Kubernetes-Version bereit. Am folgenden Tag gibt Ubuntu einen Patch zu einem Sicherheitsrisiko heraus, für den Microsoft ein neues AKS-Basisimage generiert. Sie können das neue Image anwenden, indem Sie ein Upgrade mit der gleichen Kubernetes-Version erzwingen, die Sie bereits bereitgestellt haben.
aks-engine upgrade \
--azure-env AzureStackCloud
--location <for an ASDK is local> \
--resource-group kube-rg \
--subscription-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--api-model kube-rg/apimodel.json \
--upgrade-version 1.18.15 \
--client-id xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
--force
Anweisungen dazu finden Sie unter Force upgrade (Upgrade erzwingen).
Nächste Schritte
- Informieren Sie sich über die AKS-Engine in Azure Stack Hub.
- Skalieren eines Kubernetes-Cluster in Azure Stack Hub