Lernprogramm: Migrieren von Knoten zu Azure Container Linux (ACL)

In diesem Lernprogramm, Teil 3 von fünf, migrieren Sie Ihre vorhandenen Knoten zu ACL. Sie können Ihre vorhandenen Knoten mit einer der folgenden Methoden migrieren:

  • Entfernen Sie vorhandene Knotenpools, und fügen Sie neue ACL-Knotenpools hinzu.
  • Führen Sie eine In-Place-Migration der Betriebssystem-SKU durch.

Die Befehle in diesem Lernprogramm verwenden die Umgebungsvariablen, die in Lernprogramm 1 festgelegt sind: Erstellen eines Clusters mit ACL für AKS.

Wenn Sie keine vorhandenen Knoten zum Migrieren haben, fahren Sie mit dem nächsten Tutorial fort. In späteren Lernprogrammen erfahren Sie, wie Sie Telemetrie und Überwachung in Ihren Clustern aktivieren und ACL-Knoten aktualisieren.

Voraussetzungen

  • In früheren Lernprogrammen haben Sie einen ACL-Cluster erstellt und bereitgestellt. Wenn Sie diese Schritte noch nicht abgeschlossen haben und sie ausführen möchten, lesen Sie Lernprogramm 1: Erstellen eines Clusters mit ACL für AKS.
  • Azure Container Linux erfordert Azure CLI Version 2.86.0 oder höher. Verwenden Sie den az version Befehl, um die Version zu finden. Verwenden Sie den az upgrade Befehl, um auf die neueste Version zu aktualisieren.

Überlegungen und Einschränkungen von Azure Container Linux (ACL)

Bevor Sie beginnen, lesen Sie die folgenden Überlegungen und Einschränkungen für ACL:

Hinzufügen von ACL-Knotenpools und Entfernen vorhandener Knotenpools

  1. Fügen Sie einen neuen ACL-Knotenpool mithilfe des az aks nodepool add Befehls hinzu. Verwenden Sie --mode System dies, damit der neue Pool als System-Agent-Pool dienen kann, mit dem Sie den ursprünglichen Knotenpool im nächsten Schritt löschen können. Im folgenden Beispiel wird ein Knotenpool mit dem Namen "aclsystem " erstellt, der dem Cluster drei Knoten hinzufügt:

    az aks nodepool add \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --name aclsystem \
        --mode System \
        --os-sku AzureContainerLinux \
        --node-count 3
    

    Beispielausgabe:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/aclsystem",
      "name": "aclsystem",
      "osSku": "AzureContainerLinux",
      "provisioningState": "Succeeded"
    }
    
  2. Entfernen Sie den vorhandenen Knotenpool mithilfe des az aks nodepool delete Befehls.

    az aks nodepool delete \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --name <existing-node-pool-name>
    

Direkte SKU-Migration des Betriebssystems

Einschränkungen für die Betriebssystem-SKU-Migration vor Ort

Es gibt mehrere Einstellungen, die die Anforderung der SKU-Migration des Betriebssystems blockieren können. Um eine erfolgreiche Migration zu gewährleisten, sollten Sie die folgenden Richtlinien und Grenzwerte beachten:

  • Die SKU-Migration des Betriebssystems ist nicht über PowerShell oder das Azure-Portal verfügbar.
  • Das SKU-Migrationsfeature des Betriebssystems unterstützt das Umbenennen vorhandener Knotenpools nicht.
  • Ubuntu, Azure Linux und AzureContainerLinux sind die einzigen unterstützten Linux OS-SKU-Migrationsziele.
  • ACL erfordert Trusted Launch. Wenn dies in Ihrem Knotenpool noch nicht aktiviert ist, müssen Sie bei der Migration zur AzureContainerLinux-OS-SKU --enable-secure-boot und --enable-vtpm einschließen. Die VM-Größe Ihres Knotenpools muss auch den vertrauenswürdigen Start unterstützen. Wenn ihre aktuelle VM-Größe sie nicht unterstützt, müssen Sie die Größe des Knotenpools mit einer unterstützten VM-Größe ändern oder neu erstellen, bevor Sie die Migration durchführen.
  • VMs der Generation 1 werden nicht unterstützt.
  • Eine Ubuntu-Betriebssystem-SKU, für die UseGPUDedicatedVHD aktiviert ist, kann keine SKU-Migration des Betriebssystems durchführen.
  • Vertrauliche virtuelle Computer (CVMs) werden nicht unterstützt.
  • Pod Sandboxing wird nicht unterstützt.
  • Die SKU-Migration des Windows-Betriebssystems wird nicht unterstützt.

Voraussetzungen für die direkte Betriebssystem-SKU-Migration

  • Ein vorhandener AKS-Cluster mit mindestens einem Linux-Knotenpool.
  • Es wird empfohlen, sicherzustellen, dass Ihre Workloads erfolgreich auf ACL ausgeführt werden, indem Sie einen ACL-Cluster in einer Entwicklungs- oder Stagingumgebung bereitstellen, bevor Sie Produktionscluster migrieren.
  • Vergewissern Sie sich, dass die Migrationsfunktion bei Ihnen in test/dev funktioniert, bevor Sie den Prozess in einem Produktionscluster anwenden.
  • Stellen Sie sicher, dass Ihre Pods über genügend Pod Disruption Budget (PDB) verfügen, um AKS das Verschieben von Pods zwischen virtuellen Computern während des Upgrades zu ermöglichen.
  • Sie benötigen Azure CLI Version 2.61.0 oder höher. Verwenden Sie den az version Befehl, um die Version zu finden. Verwenden Sie den az upgrade Befehl, um auf die neueste Version zu aktualisieren.

Zu ACL migrieren mithilfe von In-Place-Migration der Betriebssystem-SKU

Sie können Ihre vorhandenen Ubuntu- oder Azure Linux-Knotenpools zu ACL migrieren, indem Sie die Betriebssystem-SKU des Knotenpools ändern, der den Cluster über den standardmäßigen Upgradeprozess für Knotenimages rollt. Für diese Methode ist kein Erstellen neuer Knotenpools erforderlich. Stattdessen werden Ihre vorhandenen Knotenpools automatisch umgestalten.

Important

ACL erfordert Trusted Launch. Sie müssen --enable-secure-boot und --enable-vtpm einbeziehen, wenn Sie zur Betriebssystem-SKU AzureContainerLinux migrieren. Die VM-Größe Ihres Knotenpools muss auch den vertrauenswürdigen Start unterstützen.

Migrieren Sie die Betriebssystem-SKU Ihres Knotenpools mithilfe des az aks nodepool update Befehls zu ACL. Mit diesem Befehl wird ein Reimaging des Knotenpools ausgelöst. Die Änderung der Betriebssystem-SKU löst einen sofortigen Upgradevorgang aus, der mehrere Minuten dauert.

az aks nodepool update \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --name <existing-node-pool-name> \
    --os-sku AzureContainerLinux \
    --enable-secure-boot \
    --enable-vtpm

Beispielausgabe:

{
  "id": "/subscriptions/xxxxx/resourceGroups/myACLResourceGroup/providers/Microsoft.ContainerService/managedClusters/myACLCluster/nodePools/nodepool1",
  "name": "nodepool1",
  "osSku": "AzureContainerLinux",
  "provisioningState": "Succeeded"
}

Note

Wenn während der SKU-Migration des Betriebssystems Probleme auftreten, können Sie ein Rollback auf die vorherige Betriebssystem-SKU durchführen.

Überprüfen der SKU-Migration des Betriebssystems

Überprüfen Sie nach Abschluss der Migration auf Ihren Testclustern Folgendes, um eine erfolgreiche Migration sicherzustellen:

  1. Vergewissern Sie sich, dass die neuen Knoten ACL mit dem folgenden Befehl ausführen:

    kubectl get nodes -o wide
    
  2. Überprüfen Sie, ob alle Ihre Pods und Daemonsets im neuen Knotenpool ausgeführt werden, indem Sie den folgenden Befehl verwenden:

    kubectl get pods -o wide -A
    
  3. Überprüfen Sie mit dem folgenden Befehl, ob alle Knoten-Labels in Ihrem aktualisierten Knotenpool Ihren Erwartungen entsprechen:

    kubectl get nodes --show-labels
    
  4. Überprüfen Sie die Knotenbildversion mithilfe des az aks nodepool list Befehls.

    az aks nodepool list \
        --resource-group $RESOURCE_GROUP \
        --cluster-name $CLUSTER_NAME \
        --query '[].{name: name, osSku: osSku, nodeImageVersion: nodeImageVersion}'
    

    Beispielausgabe:

    [
      {
        "name": "nodepool1",
        "nodeImageVersion": "AKSAzureContainerLinux-202606.01.0",
        "osSku": "AzureContainerLinux"
      }
    ]
    

Tip

Es wird empfohlen, den Status Ihres Diensts einige Wochen vor der Migration Ihrer Produktionscluster zu überwachen.

Zurücksetzen auf Ihre vorherige Betriebssystem-SKU

Wenn während der SKU-Migration des Betriebssystems Probleme auftreten, können Sie ein Rollback auf die vorherige Betriebssystem-SKU durchführen. Ändern Sie dazu das SKU-Feld des Betriebssystems wieder in Ihren vorherigen Wert, und übermitteln Sie die Bereitstellung erneut, wodurch ein weiterer Upgradevorgang ausgelöst wird und der Knotenpool in die vorherige Betriebssystem-SKU umgestaltet wird.

Führen Sie mithilfe des Befehls az aks nodepool update einen Rollback zu Ihrer vorherigen Betriebssystem-SKU durch. In diesem Beispiel wird von ACL auf Azure Linux zurückgesetzt:

az aks nodepool update \
    --resource-group $RESOURCE_GROUP \
    --cluster-name $CLUSTER_NAME \
    --name <existing-node-pool-name> \
    --os-sku AzureLinux

Nächster Schritt

In diesem Tutorial haben Sie vorhandene Knoten nach ACL migriert. Im nächsten Lernprogramm erfahren Sie, wie Sie Telemetrie und Überwachung für Ihren ACL-Cluster aktivieren.