教程:使用 Azure Kubernetes 服务 (AKS) 群集中的 OS Guard(预览版)节点升级 Azure Linux

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 发布跟踪器来确定它。

先决条件

Azure Linux 使用 OS Guard 时的注意事项和限制

在开始之前,请查看以下 Azure Linux 与 OS Guard 的注意事项和限制(预览版):

手动升级群集

使用 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

NodeImageNone是唯一受支持的操作系统(OS)升级通道,适用于在 AKS 上使用 OS Guard 的 Azure Linux。 UnmanagedSecurityPatch 与带有 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 概述