Lernprogramm: Migrieren von Knoten zu Azure Linux mit OS Guard (Vorschau)

Note

Azure Linux mit OS Guard (Vorschau) wird durch Azure Container Linux (ACL) ersetzt.

Azure Container Linux ist das langfristige, unveränderliche, containeroptimierte Linux-Betriebssystem (OS) für Azure Kubernetes Service (AKS). Sie bietet ein sicheres, minimales und betriebskonsensiertes Hostbetriebssystem, das für die Ausführung von containerisierten Workloads im großen Maßstab konzipiert ist.

Weitere Informationen finden Sie in der Übersicht über Azure Container Linux (ACL).

In diesem Tutorial, Teil drei von fünf, migrieren Sie Ihre vorhandenen Knoten auf Azure Linux mit OS Guard. Sie können Ihre vorhandenen Knoten mit einer der folgenden Methoden migrieren:

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

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 Azure Linux mit OS Guard-Knoten aktualisieren.

Azure Linux mit Hinweisen und Einschränkungen zu OS Guard

Bevor Sie beginnen, lesen Sie die folgenden Überlegungen und Einschränkungen für Azure Linux mit OS Guard (Vorschau):

Voraussetzungen

  • Im vorherigen Lernprogramm haben Sie ein Azure Linux mit OS Guard-Cluster erstellt und bereitgestellt. Wenn Sie diese Schritte noch nicht abgeschlossen haben und dies ausführen möchten, lesen Sie Lernprogramm 1: Erstellen eines Clusters mit Azure Linux mit OS Guard für AKS.
  • Sie benötigen die aktuellste Version der Azure-Befehlszeilenschnittstelle. Verwenden Sie den az version Befehl, um die Version zu finden. Verwenden Sie den az upgrade Befehl, um auf die neueste Version zu aktualisieren.

Installieren Sie die aks-preview Azure CLI-Erweiterung

Important

AKS-Preview-Funktionen stehen auf Selbstbedienungs- und Opt-in-Basis zur Verfügung. Vorschauversionen werden „im Istzustand“ und „wie verfügbar“ bereitgestellt und sind von den Service Level Agreements und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:

Installieren Sie die „aks-preview“-Erweiterung mithilfe des Befehls „az extension add“.

az extension add --name aks-preview

Führen Sie mit dem Befehl az extension update ein Update auf die neueste Version der Erweiterung aus.

az extension update --name aks-preview

Registriere die AzureLinuxOSGuardPreview-Feature-Flag

  1. Registrieren Sie das Featureflag AzureLinuxOSGuardPreview mithilfe des Befehls az feature register.

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    

    Es dauert einige Minuten, bis der Status Registered (Registriert) angezeigt wird.

  2. Überprüfen Sie den Registrierungsstatus mithilfe des Befehls az feature show.

    az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    ``
    
    
  3. Wenn der Status Registriert zeigt, aktualisieren Sie die Registrierung des Microsoft.ContainerService Resource Providers mithilfe des Befehls az provider register.

    az provider register --namespace "Microsoft.ContainerService"
    

Hinzufügen von Azure Linux mit OS Guard-Knotenpools und Entfernen vorhandener Knotenpools

  1. Fügen Sie mithilfe des az aks nodepool add Befehls einen neuen Azure Linux mit OS Guard-Knotenpool hinzu. Dieser Befehl fügt Ihrem Cluster einen neuen Knotenpool mit dem Flag --mode System hinzu, wodurch er zu einem Systemknotenpool wird. Systemknotenpools sind für Azure Linux mit OS Guard-Clustern erforderlich.

    # Declare environment variables with a random suffix for uniqueness
    export RANDOM_SUFFIX=$(openssl rand -hex 3)
    export NODE_POOL_NAME="np$RANDOM_SUFFIX"
    
    # Add a new Azure Linux with OS Guard node pool
    az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
    

    Beispielausgabe:

    {
      "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool",
      "name": "systempool",
      "provisioningState": "Succeeded"
    }
    
  2. Entfernen Sie Ihre vorhandenen Knoten mithilfe des Befehls az aks nodepool delete.

    az aks nodepool delete --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $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. Bei Verwendung des Betriebssystem-SKU-Migrationsfeatures mit Azure Linux mit OS Guard pPreview) ist es nicht über Terraform, PowerShell oder das Azure-Portal verfügbar.
  • Das SKU-Migrationsfeature des Betriebssystems unterstützt das Umbenennen vorhandener Knotenpools nicht.
  • Ubuntu, Azure Linux und Azure Linux mit OS Guard sind die einzigen unterstützten Linux OS SKU-Migrationsziele.
  • Der vertrauenswürdige Start ist standardmäßig für Azure Linux mit OS Guard erforderlich. Sie müssen Trusted Launch aktiviert haben, um mit OS Guard zu Azure Linux zu migrieren. Dies kann das Erstellen neuer Knotenpools erfordern.
  • FIPS ist erforderlich, wenn Azure Linux mit OS Guard aktiviert wird. Wenn Sie derzeit kein FIPS-Image verwenden, können Sie --enable-fips in den Befehl zur Aktualisierung des Knotenpools einfügen.
  • Virtuelle Computer der Generation 1 (VMs) 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 Azure Linux-Knotenpool.
  • Es wird empfohlen, sicherzustellen, dass Ihre Workloads erfolgreich auf dem Azure Linux mit OS Guard-Containerhost ausgeführt werden, bevor Sie versuchen, das SKU-Migrationsfeature des Betriebssystems zu verwenden, indem Sie ein Azure Linux mit OS Guard-Cluster in Dev/Prod bereitstellen und überprüfen, ob Ihr Dienst fehlerfrei bleibt.
  • 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.

Migrieren Sie die Betriebssystem-SKU Ihres Azure Linux-Container-Host-Knotenpools zu Azure Linux mit OS Guard

Sie können Ihre vorhandenen Ubuntu- oder Azure Linux-Knotenpools zu Azure Linux mit OS Guard migrieren, indem Sie die Betriebssystem-SKU des Knotenpools ändern, der den Cluster über den standardmäßigen Upgradeprozess für Knotenimages rollt. Dieses neue Feature erfordert nicht, dass neue Knotenpools erstellt werden. Stattdessen werden Ihre vorhandenen Knotenpools automatisch neu abgebildet.

Migrieren Sie die Betriebssystem-SKU Ihres Knotenpools mithilfe des az aks nodepool update Befehls zu Azure Linux mit OS Guard. Dieser Befehl löst eine Neuabbildung Ihres Knotenpools aus, wobei die Betriebssystem-SKU Ihres Knotenpools von Azure Linux auf Azure Linux mit OS Guard aktualisiert wird. 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 $NODE_POOL_NAME --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm

Beispielausgabe:

{
  "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
  "name": "nodepool1",
  "osSku": "AzureLinuxOSGuard",
  "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.