你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
在本教程中(共五部分中的第一部分),你将了解如何:
- 安装 Kubernetes CLI
kubectl。 - 安装 Azure CLI 扩展
aks-preview。 - 注册
AzureLinuxOSGuardPreview功能标志。 - 创建 Azure 资源组。
- 使用 OS Guard 群集创建和部署 Azure Linux。
- 配置
kubectl以连接到具有 OS Guard 集群的 Azure Linux。
在后面的教程中,了解如何将具有 OS Guard 节点池的 Azure Linux 添加到现有群集,以及使用 OS Guard 将现有节点迁移到 Azure Linux。
注意事项和限制
在开始之前,请查看以下 Azure Linux 与 OS Guard 的注意事项和限制(预览版):
- 使用 OS Guard 的 Azure Linux 需要 Kubernetes 版本 1.32.0 或更高版本。
- 所有带操作系统防护的 Azure Linux 均已启用联邦信息处理标准 (FIPS) 和受信任启动。
- 在 AKS 上的 Azure Linux,只有 Azure CLI 和 ARM 模板这两种部署方法受支持,并且 OS Guard 目前处于预览状态。 不支持 PowerShell 和 Terraform。
- 在预览版中,带操作系统防护的 Azure Linux 在 AKS 上不支持 Arm64 映像。
-
对于 AKS 上带操作系统防护的 Azure Linux,唯一支持的 OS 升级通道是
NodeImage和None。 由于 /usr 目录不可变,Unmanaged和SecurityPatch与带操作系统防护的 Azure Linux 不兼容。 - 不支持工件流式传输。
- 不支持Pod 沙盒功能。
- 不支持机密虚拟机(CVM)。
- 不支持第 1 代虚拟机(VM)。
先决条件
- 需要最新版本的 Azure CLI。 使用
az version命令查找版本。 若要升级到最新版本,请使用az upgrade命令。 -
aks-preview安装Azure CLI 扩展。 -
注册
AzureLinuxOSGuardPreview功能标志。
安装 aks-preview Azure CLI 扩展
重要
AKS 预览功能可在自助服务和自愿选择的基础上启用。 预览版按“现状”和“视供应情况”提供,它们不包括在服务级别协议和有限保证范围内。 AKS 预览功能是由客户支持尽最大努力部分覆盖。 因此,这些功能并不适合用于生产。 有关详细信息,请参阅以下支持文章:
使用
aks-preview命令安装az extension add扩展。az extension add --name aks-preview使用
az extension update命令更新到扩展的最新版本。az extension update --name aks-preview
注册 Azure Linux OS Guard 预览版功能标志
使用
AzureLinuxOSGuardPreview命令注册az feature register功能标志。az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"几分钟后,状态将显示为“已注册”。
使用
az feature show命令验证注册状态。az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"当状态显示“已注册”时,使用
az provider register命令刷新Microsoft.ContainerService资源提供程序的注册。az provider register --namespace "Microsoft.ContainerService"
创建资源组
Azure 资源组是用于部署和管理 Azure 资源的逻辑组。 创建资源组时,需要指定位置。 此位置为:
- 资源组元数据的存储位置。
- 如果在创建资源时未指定其他区域,则资源在 Azure 中运行的位置。
使用 az group create 命令创建资源组。 在运行命令之前,声明环境变量以确保每个部署的唯一资源名称。
export REGION="EastUS2"
az group create --name $RESOURCE_GROUP_NAME --location $REGION
示例输出:
{
"id": "/subscriptions/xxxxx/resourceGroups/testAzureLinuxOSGuardResourceGroupxxxxx",
"location": "EastUS2",
"managedBy": null,
"name": "testAzureLinuxOSGuardResourceGroupxxxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
使用 OS Guard 创建 Azure Linux(预览版)群集
使用带有 --os-sku AzureLinuxOSGuard 参数的 az aks create 命令创建 AKS 群集,以便预配带操作系统防护的 Azure Linux。 需要启用 FIPS、 安全启动和 vtpm 才能将 Azure Linux 与 OS Guard 配合使用。 以下示例使用 OS Guard 群集创建 Azure Linux:
az aks create --name $MY_AZ_CLUSTER_NAME --resource-group $MY_RESOURCE_GROUP_NAME --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": "WestUS2",
"name": "testAzureLinuxOSGuardClusterxxxxx",
"properties": {
"provisioningState": "Succeeded"
},
"type": "Microsoft.ContainerService/managedClusters"
}
片刻之后,该命令将会完成,并返回有关群集的 JSON 格式信息。
使用 kubectl 连接到群集
使用 kubectl 命令将 az aks get-credentials 配置为连接到你的 Kubernetes 群集。 以下示例使用前面创建的资源组和群集名称获取 Azure Linux 容器主机群集的凭据:
az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --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 添加到现有群集。