Note
带有 OS Guard(预览版)的 Azure Linux 正被 Azure Container Linux(ACL)取代。
Azure容器 Linux 是用于Azure Kubernetes 服务 (AKS)的长期、不可变、容器优化的 Linux 操作系统(OS)。 它提供了一个安全、最少且可操作一致的主机 OS,旨在大规模运行容器化工作负荷。
有关详细信息,请参阅 Azure 容器 Linux (ACL) 概述。
在本教程中,第 1 部分(共 5 部分)将介绍如何:
- 安装 Kubernetes CLI
kubectl。 - 安装
aks-previewAzure CLI 扩展。 - 注册
AzureLinuxOSGuardPreview功能标志。 - 创建 Azure 资源组。
- 使用 OS Guard 群集创建和部署 Azure Linux。
- 配置
kubectl以连接到具有 OS Guard 集群的 Azure Linux。
在后面的教程中,了解如何将具有 OS Guard 节点池的 Azure Linux 添加到现有群集,以及使用 OS Guard 将现有节点迁移到 Azure Linux。
先决条件
- 需要最新版本的 Azure CLI。 使用
az version命令查找版本。 若要升级到最新版本,请使用az upgrade命令。 -
aks-preview安装Azure CLI 扩展。 -
注册
AzureLinuxOSGuardPreview功能标志。
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)。
安装 aks-preview Azure CLI 扩展
Important
AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
使用 aks-preview 命令安装 az extension add 扩展。
az extension add --name aks-preview
使用 az extension update 命令更新到扩展的最新版本。
az extension update --name aks-preview
注册 AzureLinuxOSGuardPreview 功能标志
使用
AzureLinuxOSGuardPreview命令注册az feature register功能标志。az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"几分钟后,状态将显示为“已注册”。
使用
az feature show命令验证注册状态。az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"当状态显示已注册时,请使用
Microsoft.ContainerService命令刷新资源提供程序的az provider register注册。az provider register --namespace "Microsoft.ContainerService"
设置环境变量。
设置以下环境变量,为每个部署创建唯一的资源名称:
export RESOURCE_GROUP="<your-resource-group-name>"
export REGION="<your-region>"
export CLUSTER_NAME="<your-cluster-name>"
创建资源组
在Azure中创建资源组时,需要指定位置。 此位置是资源组元数据的存储位置,如果在创建资源时未指定其他区域,则资源在Azure中运行的位置。
使用 az group create 命令创建资源组。
az group create --name $RESOURCE_GROUP --location $REGION
示例输出:
{
"id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxOSGuardResourceGroupxxxxx",
"location": "chinanorth3",
"managedBy": null,
"name": "testAzureLinuxOSGuardResourceGroupxxxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
使用 OS Guard 创建 Azure Linux(预览版)群集
使用 az aks create 带有参数的 --os-sku AzureLinuxOSGuard 命令创建 AKS 群集,以使用 OS Guard 群集预配 Azure Linux。 需要启用 FIPS、secure boot 和 vtpm才能将 Azure Linux 与 OS Guard 配合使用。
az aks create --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --os-sku AzureLinuxOSGuard --node-osdisk-type Managed --enable-fips-image --enable-secure-boot --enable-vtpm
示例输出:
{
"id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxOSGuardResourceGroupxxxxx/providers/Microsoft.ContainerService/managedClusters/testAzureLinuxOSGuardClusterxxxxx",
"location": "chinanorth3",
"name": "testAzureLinuxOSGuardClusterxxxxx",
"properties": {
"provisioningState": "Succeeded"
},
"type": "Microsoft.ContainerService/managedClusters"
}
片刻之后,该命令将会完成,并返回有关群集的 JSON 格式信息。
使用 kubectl 连接到群集
使用
kubectl命令将az aks get-credentials配置为连接到你的 Kubernetes 群集。az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME使用
kubectl get nodes命令验证与群集的连接,以返回群集节点的列表。kubectl get nodes示例输出:
NAME STATUS ROLES AGE VERSION aks-nodepool1-00000000-0 Ready agent 10m v1.20.7 aks-nodepool1-00000000-1 Ready agent 10m v1.20.7
后续步骤
在本教程中,你已创建并部署了具有 OS Guard 群集的 Azure Linux。 在下一教程中,了解如何将包含 OS Guard 节点池的 Azure Linux 添加到现有群集。