Note
带有 OS Guard(预览版)的 Azure Linux 正被 Azure Container Linux(ACL)取代。
Azure容器 Linux 是用于Azure Kubernetes 服务 (AKS)的长期、不可变、容器优化的 Linux 操作系统(OS)。 它提供了一个安全、最少且可操作一致的主机 OS,旨在大规模运行容器化工作负荷。
有关详细信息,请参阅 Azure 容器 Linux (ACL) 概述。
具有 OS Guard 的 Azure Linux 通过更新的节点映像和自动包更新提供更新。 作为应用程序和群集生命周期的一部分,我们建议通过为群集启用升级来让群集保持最新状态并受到保护。 可以启用自动节点映像升级,以确保群集在纵向扩展时将最新的 Azure Linux 与 OS Guard 映像配合使用。 还可以手动升级群集上的节点映像。
在本教程的五个部分中的第五部分中,你将学习如何:
- 手动升级群集上的节点映像。
- 使用 OS Guard 群集自动升级 Azure Linux。
- 使用 OS Guard 群集在 Azure Linux 中部署 Kured。
Note
任何升级操作,无论是手动执行还是自动执行,都会升级节点映像版本(如果该版本还不是最新版本)。 最新版本取决于完整的 AKS 版本,可以通过访问 AKS 发布跟踪器来确定它。
先决条件
- 在前面的教程中,你已创建并部署了具有 OS Guard 群集的 Azure Linux。 若要完成本教程,需要一个现有群集。 如果尚未完成此步骤并想要继续执行,请参阅 教程 1:使用适用于 AKS 的 OS Guard 创建具有 Azure Linux 的群集。
- 需要最新版本的 Azure CLI。 使用
az version命令查找版本。 若要升级到最新版本,请使用az upgrade命令。
Azure Linux 使用 OS Guard 时的注意事项和限制
在开始之前,请查看以下 Azure Linux 与 OS Guard 的注意事项和限制(预览版):
- 使用 OS Guard 的 Azure Linux 需要 Kubernetes 版本 1.32.0 或更高版本。
- 所有具有 OS Guard 映像的 Azure Linux 都启用了 联邦信息进程标准(FIPS) 和 受信任的启动 。
- 在 AKS 上的 Azure Linux,只有 Azure CLI 和 ARM 模板这两种部署方法受支持,并且 OS Guard 目前处于预览状态。 不支持 PowerShell 和 Terraform。
-
NodeImage和None是唯一受支持的操作系统(OS)升级通道,适用于在 AKS 上使用 OS Guard 的 Azure Linux。Unmanaged和SecurityPatch与带有 OS Guard 的 Azure Linux 不兼容,因为 /usr 目录是不可变的。 - 不支持工件流式传输。
- 不支持 Pod Sandboxing。
- 不支持机密虚拟机(CVM)。
- 不支持第 1 代虚拟机(VM)。
手动升级群集
使用 az aks nodepool upgrade 命令手动升级群集上的节点映像。
az aks nodepool upgrade --resource-group $RESOURCE_GROUP --cluster-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"
}
}
有关升级通道的详细信息,请参阅使用群集自动升级。
自动升级节点 OS 映像
AKS 提供了多个专用于及时节点级 OS 安全更新的自动升级通道。 此通道不同于群集级别的 Kubernetes 版本升级并将取代后者。
Important
NodeImage 和 None是唯一受支持的操作系统(OS)升级通道,适用于在 AKS 上使用 OS Guard 的 Azure Linux。
Unmanaged 和 SecurityPatch 与带有 OS Guard 的 Azure Linux 不兼容,因为 /usr 目录是不可变的。
使用带参数的 az aks update 命令 --node-os-upgrade-channel 在现有群集上设置节点 OS 升级通道。 以下示例将现有群集的节点操作系统升级通道设置为 NodeImage:
az aks update --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --node-os-upgrade-channel NodeImage
示例输出:
{
"id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxResourceGroup",
"location": "chinanorth3",
"name": "testAzureLinuxCluster",
"properties": {
"nodeOsUpgradeChannel": "NodeImage",
"provisioningState": "Succeeded"
}
}
有关节点升级通道的详细信息,请参阅 使用节点 OS 自动升级。
清理资源
由于本教程是本系列的最后一部分,因此可能需要使用 OS Guard 群集删除 Azure Linux。 Kubernetes 节点在Azure虚拟机(VM)上运行,即使不使用群集,也会继续产生费用。
使用 az group delete 命令删除Azure资源组和所有相关资源。
az group delete --name $RESOURCE_GROUP --yes --no-wait
后续步骤
在本教程中,你升级了 Azure Linux 容器主机群集。
有关具有 OS Guard 的 Azure Linux 的详细信息,请参阅 带有 OS Guard 的 Azure Linux 概述。