Problembehandlung für veraltete Kernelversionen in Azure Linux Container Host-Knotenimages für Azure Kubernetes Service (AKS)

Während der Migration oder beim Hinzufügen neuer Knotenpools zu Ihrem Azure Linux-Containerhost können Probleme mit veralteten Kernelversionen auftreten. Azure Kubernetes Service (AKS) veröffentlicht jede Woche ein neues Azure Linux-Knotenimage, das für neue Knotenpools und als Startimage für die Skalierung verwendet wird. Ältere Knotenpools aktualisieren ihre Kernelversionen jedoch möglicherweise nicht wie erwartet.

Dieser Artikel bietet Anleitungen zur Problembehandlung bei Problemen, bei denen Knotenimages für Azure Linux Container Host in AKS mit veralteten Kernelversionen ausgeführt werden. Dazu gehört das Identifizieren der Symptome, das Verstehen der zugrunde liegenden Ursachen und das Anwenden empfohlener Lösungen, damit Ihre Knoten die neuesten Kernelversionen verwenden.

Überprüfen der Kernelversion Ihrer Knotenpools

  1. Überprüfen Sie die Kernelversion Ihrer Knotenpools mit dem folgenden Befehl:

    kubectl get nodes -o wide
    
  2. Vergleichen Sie die Kernelversion Ihrer Knotenpools mit dem neuesten kernel, der auf packages.microsoft.com veröffentlicht wurde.

Symptom

Ein häufiges Symptom dieses Problems ist, dass die Azure Linux-Knoten nicht die neueste Kernelversion verwenden.

Ursachen

Möglicherweise stoßen Sie in AKS in den Azure Linux Container Host-Knotenimages auf veraltete Kernelversionen, und zwar aus einem oder beiden der folgenden Gründe:

  • Beim Erstellen des Knotenpools wurden keine automatischen Knotenimageupgrades aktiviert.
  • Das Basis-Image, das AKS zum Starten von Clustern verwendet, liegt aufgrund ihres Rolloutverfahrens etwa zwei Wochen hinter den neuesten Kernelversionen.

Lösung

Sie können automatische Upgrades mit GitHub Actions aktivieren und die Knoten neu starten.

Automatische Upgrades für AKS-Knotenimages aktivieren

Aktivieren Sie automatische Knotenimageupgrades auf einem neuen AKS-Cluster mithilfe des az aks create Befehls mit dem Parameter --auto-upgrade-channel node-image. Ersetzen Sie die Platzhalterwerte durch Ihre eigenen Werte.

az aks create --name <cluster-name> --resource-group <resource-group-name> --os-sku AzureLinux --auto-upgrade-channel node-image

Starten Sie die Knoten neu

Beim Aktualisieren der Kernelversion müssen Sie den Knoten neu starten, um die neue Kernelversion zu verwenden. Es wird empfohlen, das kured daemonset einzurichten. Sie können Kured verwenden, um Ihre Knoten für die /var/run/reboot-required Datei zu überwachen, die Workload zu entladen und die Knoten neu zu starten.

Problemumgehung: manuelle Upgrades

Wenn Sie eine schnelle Problemumgehung benötigen, können Sie das Knotenimage mithilfe des az aks nodepool upgrade Befehls manuell auf einem AKS-Cluster aktualisieren. Beispiel:

az aks nodepool upgrade \
    --resource-group testAzureLinuxResourceGroup \
    --cluster-name testAzureLinuxCluster \
    --name myAzureLinuxNodePool \
    --node-image-only

Nächste Schritte

Wenn das Problem durch die vorstehenden Schritte nicht behoben wird, öffnen Sie ein Supportticket.