Freigeben über


Problembehandlung bei veralteten Kernelversionen in Azure Linux-Containerhost-Knotenimages

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 jedes Jahr 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.

Führen Sie zum Überprüfen der KERNEL-VERSION Ihrer Knotenpools Folgendes aus:

    kubectl get nodes -o wide

Vergleichen Sie dann 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:

  • Azure Linux-Knoten nicht die neueste Kernelversion verwenden.

Ursachen

Für dieses Problem gibt es zwei Hauptursachen:

  1. Beim Erstellen des Knotenpools wurden keine automatischen Knotenimageupgrades aktiviert.
  2. 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 mithilfe von GitHub Actions aktivieren und die Knoten neu starten, um dieses Problem zu beheben.

Aktivieren von automatischen Knotenimageupgrades mithilfe der Azure CLI

Um automatische Knotenimageupgrades beim Bereitstellen eines Clusters aus az-cli zu aktivieren, fügen Sie den Parameter --auto-upgrade-channel node-image hinzu.

az aks create --name testAzureLinuxCluster --resource-group testAzureLinuxResourceGroup --os-sku AzureLinux --auto-upgrade-channel node-image

Aktivieren von automatischen Knotenimageupgrades mithilfe von ARM-Vorlagen

Um automatische Knotenimageupgrades bei Verwendung einer ARM-Vorlage zu aktivieren, können Sie die Eigenschaft upgradeChannel in autoUpgradeProfile auf node-image festlegen.

    autoUpgradeProfile: {
      upgradeChannel: 'node-image'
    }

Neustarten der Knoten

Beim Aktualisieren der Kernelversion müssen Sie den Knoten neu starten, um die neue Kernelversion zu verwenden. Es wird empfohlen, das kured daemonset einzurichten. Kured, 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 auf einem Cluster mithilfe von az aks nodepool upgrade manuell aktualisieren. Hierzu können Sie Folgendes ausführen:

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

Nächste Schritte

Sollte sich das Problem mit den oben genannten Schritten nicht beheben lassen, erstellen Sie ein Supportticket.