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.

  1. 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 AzureStackCloud
    

    Eine vollständige Zuordnung von AKS-Engine, AKS-Basisimage und Kubernetes-Versionen finden Sie unter Unterstützte AKS-Engine-Versionen.

  2. 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 local fü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.
  3. 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 FS
    
  4. Wenn 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

  1. 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 version aus, um die Version von aks-engine anzuzeigen.
  2. 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.x durch die Zielversion.
  3. Bitten Sie Ihren Azure Stack Hub-Operator, die erforderliche Version des AKS-Basisimages im Azure Stack-Marketplace hinzuzufügen, den Sie verwenden möchten.
  4. Führen Sie den Befehl aks-engine upgrade mit derselben Version von Kubernetes aus, die Sie bereits verwenden, fügen Sie jedoch --force hinzu. 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:

  1. 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 mit aks-engine verwendet wird.
  2. Suchen Sie nach den Abschnitten masterProfile und agentPoolProfiles. Ändern Sie in diesen Abschnitten den Wert von distro in aks-ubuntu-18.04.
  3. Speichern Sie die Datei api-model.json, und verwenden Sie die Datei api-model.json wie in api-model.json im Befehl aks-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