Azure Linux 容器主机通过两种机制提供更新:更新的 Azure Linux 节点映像和自动包更新。
作为应用程序和群集生命周期的一部分,我们建议通过为群集启用升级来让群集保持最新状态并受到保护。 可以启用自动节点映像升级,以确保群集在纵向扩展时使用最新的 Azure Linux 容器主机映像。 还可以手动升级群集上的节点映像。
在本教程的五个部分中的第五部分中,你将学习如何:
- 手动升级群集上的节点映像。
- 自动升级 Azure Linux 容器主机群集。
- 在 Azure Linux 容器主机群集中部署 Kured。
本教程中的命令使用 Tutorial 1 中设置的环境变量:使用适用于 AKS 的 Azure Linux 容器主机创建群集和 Tutorial 2:将 Azure Linux 节点池添加到现有 AKS 群集。
Note
如尚未升级到最新版本,任何升级操作(无论是手动执行还是自动执行)都会升级节点映像版本。 最新版本取决于完整的 AKS 版本,可通过访问 AKS 发布跟踪器来确定。
先决条件
- 在前面的教程中,你创建并部署了 Azure Linux 容器主机群集。 若要完成本教程,需要一个现有群集。 如果尚未完成这一步并想要继续操作,请从教程 1:使用适用于 AKS 的 Azure Linux 容器主机创建群集开始。
- 需要最新版本的 Azure CLI。 使用
az --version命令查找版本。 如果需要进行安装或升级,请参阅安装 Azure CLI。
手动升级群集
使用 az aks nodepool upgrade 命令手动升级群集上的节点映像。
az aks nodepool upgrade --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --name $NODE_POOL_NAME
自动升级群集
自动升级在功能上与手动升级相同。 所选通道将决定升级的时间。 更改自动升级后,更改需要 24 小时才能生效。
使用带 az aks update 参数的 --auto-upgrade-channel 命令在现有群集上设置自动升级通道。 以下示例将现有群集的自动升级通道设置为 stable :
az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --auto-upgrade-channel stable
示例输出:
{
"id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxResourceGroup",
"location": "chinanorth3",
"name": "testAzureLinuxCluster",
"properties": {
"autoUpgradeChannel": "stable",
"provisioningState": "Succeeded"
}
}
有关升级通道的详细信息,请参阅使用群集自动升级。
启用自动包升级
还可以启用自动包升级。 如果启用了自动包升级,dnf 自动系统服务将每天运行并安装已发布的任何更新包。
使用带参数的 az aks update 命令 --node-os-upgrade-channel 在现有群集上设置节点 OS 升级通道。 以下示例将现有群集的节点操作系统升级通道设置为 Unmanaged:
az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --node-os-upgrade-channel Unmanaged
示例输出:
{
"id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxResourceGroup",
"location": "chinanorth3",
"name": "testAzureLinuxCluster",
"properties": {
"nodeOsUpgradeChannel": "Unmanaged",
"provisioningState": "Succeeded"
}
}
启用自动重新启动守护程序
为保护群集,安全更新会自动应用于 Azure Linux 节点。 这些更新包括 OS 安全修补程序、内核更新和包升级。 其中的部分更新需要重启节点才能完成更新进程。 AKS 不会自动重新启动这些来完成更新进程。
建议启用 Kured 等自动重新启动守护程序,以便群集可以重新启动已执行内核更新的节点。 若要在 Azure Linux 容器主机群集中部署 Kured DaemonSet,请参阅在 AKS 群集中部署 Kured。
清理资源
由于本教程是本系列的最后一部分,因此可能需要删除Azure Linux 容器主机群集。 Kubernetes 节点在Azure虚拟机(VM)上运行,即使不使用群集,也会继续产生费用。
使用 az group delete 命令删除Azure资源组和所有相关资源。
az group delete --name $RESOURCE_GROUP --yes --no-wait
后续步骤
在本教程中,你升级了 Azure Linux 容器主机群集。
有关 Azure Linux 容器主机的详细信息,请参阅 Azure Linux 容器主机概述。