Behandeln von Problemen mit Paketupgrades auf dem Azure Linux-Containerhost
Auf dem Azure Linux Container Host für AKS ist dnf-automatic
standardmäßig aktiviert, ein systemd-Dienst, der täglich läuft und automatisch alle kürzlich veröffentlichten aktualisierten Pakete installiert. Dadurch wird sichergestellt, dass die Pakete im Azure Linux-Containerhost automatisch aktualisiert werden, wenn ein Fix veröffentlicht wird. Beachten Sie, dass für einige Einstellungen des Kanals für das Upgrade des Knotenbetriebssystemsdnf-automatic
standardmäßig deaktiviert ist.
Problembeschreibung
Manchmal erhalten die Pakete im Azure Linux Containerhost jedoch keine automatischen Upgrades, was zu den folgenden Symptomen führen kann:
- Fehlermeldungen beim Referenzieren oder Verwenden eines aktualisierten Pakets.
- Pakete funktionieren nicht wie erwartet.
- Veraltete Versionen von Paketen werden angezeigt, wenn Sie die Paketliste des Azure Linux-Containerhost überprüfen. Sie können überprüfen, ob die Pakete auf Ihrem Image mit den kürzlich veröffentlichten Paketen synchronisiert sind, indem Sie das Repository auf packages.microsoft.com besuchen oder die Versionshinweise im Azure Linux GitHub Repository überprüfen.
Ursache
Einige Pakete, z. B. der Linux-Kernel, erfordern einen Neustart, damit die Updates wirksam werden. Um automatische Neustarts zu vereinfachen, führt die Azure Linux-VM den Dienst check-restart aus, der die Datei /var/run/reboot-required
erstellt, wenn ein Paketupdate einen Neustart erfordert.
Lösung
Um sicherzustellen, dass Kubernetes auf die Anforderung eines Neustarts reagiert, empfehlen wir, das kured daemonset einzurichten. Kured überwacht Ihre Knoten auf die Datei /var/run/reboot-required
. Wenn sie gefunden wird, wird die Arbeit vom Knoten abgezogen, und er wird neu gestartet.
Nächste Schritte
Sollte sich das Problem mit den oben genannten Schritten nicht beheben lassen, erstellen Sie ein Supportticket.