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:
- 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 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.