你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

排查 Azure Linux 容器主机上的包升级问题

适用于 AKS 的 Azure Linux 容器主机默认启用 dnf-automatic,这是一个 systemd 服务,每天运行并自动安装任何最近发布的更新包。 这样可确保在发布修补程序时,Azure Linux 容器主机中的包会自动更新。 请注意,对于节点 OS 升级通道的某些设置,默认情况下会禁用 dnf-automatic

现象

但是,有时 Azure Linux 容器主机中的包无法接收自动升级,这可能会导致以下问题:

  • 引用或使用更新的包时出现错误消息。
  • 包未按预期运行。
  • 检查 Azure Linux 容器主机包列表时显示包的过时版本。 可以通过访问 packages.microsoft.com 上的存储库,或检查 Azure Linux GitHub 存储库中的发行说明,验证映像上的包是否与最近发布的包同步。

原因

某些包(如 Linux 内核)需要重新启动才能使更新生效。 为了方便自动重启,Azure Linux VM 会运行 check-restart 服务,当包更新需要重新启动时,该服务会创建 /var/run/reboot-required 文件。

解决方案

为了确保 Kubernetes 能够执行重新启动请求,建议设置 Kured DaemonSetKured 会监视节点是否存在 /var/run/reboot-required 文件,如果发现该文件,就会从节点中清空工作并重新启动该节点。

后续步骤

如果上述步骤无法解决问题,请开具支持票证