Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Lernprogramm, Teil three von fünf, migrieren Sie Ihre vorhandenen Knoten zu Azure Linux. Sie können Ihre vorhandenen Knoten mit einer der folgenden Methoden zu Azure Linux migrieren:
- Entfernen Sie vorhandene Knotenpools und fügen Sie neue Azure Linux-Knotenpools hinzu.
- Führen Sie eine In-Place-Migration der Betriebssystem-SKU durch.
Die Befehle in diesem Lernprogramm verwenden die Umgebungsvariablen, die in Tutorial 1 festgelegt sind: Erstellen eines Clusters mit dem Azure Linux-Containerhost für AKS.
Wenn keine Knoten für die Migration zu Azure Linux vorhanden sind, fahren Sie mit dem nächsten Tutorial fort. In späteren Tutorials erfahren Sie, wie Sie Telemetriedaten und Überwachung in Ihren Clustern aktivieren und Azure Linux-Knoten aktualisieren.
Voraussetzungen
- In den vorherigen Tutorials haben Sie einen Cluster für den Azure Linux-Containerhost für AKS erstellt und bereitgestellt. Für dieses Tutorial müssen Sie Ihrem vorhandenen Cluster einen Azure Linux-Knotenpool hinzufügen. Wenn Sie diesen Schritt noch nicht ausgeführt haben und fortfahren möchten, beginnen Sie mit Tutorial 2: Hinzufügen eines Azure Linux-Knotenpools zu einem vorhandenen AKS-Cluster.
Note
Wenn Sie einen neuen Azure Linux-Knotenpool hinzufügen, müssen Sie mindestens einen als --mode System hinzufügen. Andernfalls lässt AKS nicht zu, dass Sie Ihren vorhandenen Knotenpool löschen.
- Sie benötigen die aktuellste Version der Azure-Befehlszeilenschnittstelle. Führen Sie
az --versionaus, um die Version zu ermitteln. Wenn Sie eine Installation oder ein Upgrade durchführen müssen, finden Sie weitere Informationen unter Azure CLI installieren.
Festlegen von Umgebungsvariablen
Legen Sie die folgenden Umgebungsvariablen fest, um eindeutige Ressourcennamen für jede Bereitstellung zu erstellen. Ersetzen Sie den Platzhalter <your-node-pool-name> durch einen Namen Ihrer Wahl. Sie können optional ein zufälliges Suffix anfügen, um die Eindeutigkeit sicherzustellen. Der Name eines Knotenpools muss mit einem Kleinbuchstaben beginnen und darf nur alphanumerische Zeichen enthalten. Bei Linux-Knotenpools muss die Länge zwischen einem und 12 Zeichen bestehen.
# Set random suffix for uniqueness
export RANDOM_SUFFIX=$(openssl rand -hex 3)
# Set node pool name
export NODE_POOL_NAME="<your-node-pool-name>$RANDOM_SUFFIX"
Fügen Sie Azure Linux-Knotenpools hinzu und entfernen Sie vorhandene Knotenpools.
Fügen Sie einen neuen Azure Linux-Kontenpool mit dem Befehl
az aks nodepool addhinzu. Dieser Befehl fügt Ihrem Cluster einen neuen Knotenpool mit dem Flag--mode Systemhinzu, wodurch er zu einem Systemknotenpool wird. Systemknotenpools sind für Azure Linux-Cluster erforderlich.az aks nodepool add --resource-group $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --mode System --os-sku AzureLinuxBeispielausgabe:
{ "id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/systempool", "name": "systempool", "provisioningState": "Succeeded" }Entfernen Sie Ihre vorhandenen Knoten mithilfe des Befehls
az aks nodepool delete.
Direkte SKU-Migration des Betriebssystems
Sie können Ihre vorhandenen Ubuntu-Knotenpools zu Azure Linux 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 die Erstellung neuer Knotenpools.
Einschränkungen bei der direkten Migration von Betriebssystem-SKUs
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 Feature SKU-Migration des Betriebssystems kann bestehende Knotenpools nicht umbenennen.
- 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 die Option "Trusted Launch" aktiviert haben, damit Sie mit OS Guard zu Azure Linux migrieren können. Da Sie den vertrauenswürdigen Start in vorhandenen Knotenpools nicht aktivieren können, müssen Sie einen neuen Knotenpool mit aktiviertem vertrauenswürdigem Start erstellen und Ihre Arbeitslasten in diesen Knotenpool migrieren.
- Kunden, die ausschließlich VM-Größen der Generation 1 verwenden, können nicht auf Azure Linux mit OS Guard migrieren, da es kein unterstütztes Gen 1-Image gibt. In diesem Fall müssen Sie neue Knotenpools mit einer VM-Größe erstellen, die Gen 2 unterstützt.
- Eine Ubuntu-Betriebssystem-SKU, für die
UseGPUDedicatedVHDaktiviert ist, kann keine SKU-Migration des Betriebssystems durchführen. - Eine Ubuntu-Betriebssystem-SKU, für die CVM 20.04 aktiviert ist, kann keine SKU-Migration des Betriebssystems durchführen.
- Knotenpools, für die Kata aktiviert ist, können keine SKU-Migration des Betriebssystems durchführen.
- Die SKU-Migration des Windows-Betriebssystems wird nicht unterstützt.
Voraussetzungen für die direkte Migration der Betriebssystem-SKU
- Ein vorhandenes AKS-Cluster mit mindestens einem Ubuntu-Knotenpool.
- Sie sollten sicherstellen, dass Ihre Workloads erfolgreich auf dem Azure Linux Container-Host konfiguriert und ausgeführt werden, bevor Sie versuchen, die SKU-Migration des Betriebssystems zu nutzen, indem Sie einen Azure Linux-Cluster in dev/prod bereitstellen und überprüfen, ob Ihr Dienst weiterhin funktioniert.
- 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. Führen Sie
az --versionaus, um die Version zu ermitteln. Wenn Sie eine Installation oder ein Upgrade durchführen müssen, finden Sie weitere Informationen unter Azure CLI installieren. - Wenn Sie Terraform verwenden, müssen Sie über v3.111.0 oder höher des AzureRM Terraform-Moduls verfügen.
Migrieren der Betriebssystem-SKU Ihres Ubuntu-Knotenpools
Migrieren Sie die Betriebssystem-SKU Ihres Knotenpools mithilfe des Befehls az aks nodepool update zu Azure Linux. Mit diesem Befehl wird die Betriebssystem-SKU für Ihren Knotenpool von Ubuntu auf Azure Linux aktualisiert. 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 AzureLinux
Beispielausgabe:
{
"id": "/subscriptions/xxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/nodePools/nodepool1",
"name": "nodepool1",
"osSku": "AzureLinux",
"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
Sobald die Migration auf Ihren Testclustern abgeschlossen ist, sollten Sie die folgenden Punkte überprüfen, um die erfolgreiche Migration zu bestätigen:
- Wenn Ihr Migrationsziel Azure Linux ist, führen Sie den Befehl
kubectl get nodes -o wideaus. Die Ausgabe sollteMicrosoft Azure Linux 3.0als Betriebssystemimage und.azl3am Ende der Kernelversion anzeigen. - Führen Sie den Befehl
kubectl get pods -o wide -Aaus, um zu überprüfen, ob alle Ihre Pods und Daemonsets auf dem neuen Knotenpool ausgeführt werden. - Führen Sie den Befehl
kubectl get nodes --show-labelsaus, um zu überprüfen, ob alle Knotenbezeichnungen in Ihrem aktualisierten Knotenpool Ihren Erwartungen entsprechen.
Tip
Sie sollten den Zustand Ihres Dienstes ein paar Wochen lang überwachen, bevor Sie Ihre Produktionscluster migrieren.
Ausführen der SKU-Migration des Betriebssystems auf Ihren Produktionsclustern
Aktualisieren Sie Ihre vorhandenen Vorlagen, um
OSSKU=AzureLinuxfestzulegen. Stellen Sie sicher, dass IhreapiVersionauf2023-07-01oder höher festgelegt ist.-
ARM-Vorlagen: Verwenden Sie
"OSSKU": "AzureLinux"im AbschnittagentPoolProfile. -
Bicep: Verwenden Sie
osSku: "AzureLinux"im AbschnittagentPoolProfile. -
Terraform: Verwenden Sie
os_sku = "AzureLinux"im Abschnittdefault_node_pool.
-
ARM-Vorlagen: Verwenden Sie
Stellen Sie Ihre ARM-, Bicep- oder Terraform-Vorlage für den Cluster erneut bereit, um die neue
OSSKUEinstellung anzuwenden. Während dieser Bereitstellung verhält sich Ihr Cluster so, als ob ein Knotenimageupgrade ausgeführt wird. Ihr Cluster erhöht die Kapazität und bootet dann die vorhandenen Knoten einen nach dem anderen mit dem neuesten AKS-Image Ihrer neuen Betriebssystem-SKU neu.
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. Dazu müssen Sie das Feld für die Betriebssystem-SKU in Ihrer Vorlage ändern und die Bereitstellung erneut übermitteln. Dies löst einen weiteren Upgradevorgang aus und setzt den Knotenpool auf seine vorherige Betriebssystem-SKU zurück.
Sie können ein Rollback zu Ihrer vorherigen Betriebssystem-SKU mithilfe des az aks nodepool update Befehls ausführen. Dieser Befehl führt eine Aktualisierung der Betriebssystem-SKU für Ihren Knotenpool von Azure Linux zurück auf Ubuntu durch.
Nächster Schritt
In diesem Lernprogramm haben Sie vorhandene Knoten zu Azure Linux migriert, indem Sie vorhandene Knotenpools entfernen und neue Azure Linux-Knotenpools hinzufügen oder eine direkte Betriebssystem-SKU-Migration durchführen.
Im nächsten Tutorial erfahren Sie, wie Sie die Telemetrie zur Überwachung Ihrer Cluster aktivieren.