教程:使用具有 OS 保护的 Azure Linux(预览版)在 Azure Kubernetes 服务(AKS)中创建群集

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-preview Azure CLI 扩展。
  • 注册AzureLinuxOSGuardPreview功能标志。
  • 创建 Azure 资源组。
  • 使用 OS Guard 群集创建和部署 Azure Linux。
  • 配置 kubectl 以连接到具有 OS Guard 集群的 Azure Linux。

在后面的教程中,了解如何将具有 OS Guard 节点池的 Azure Linux 添加到现有群集,以及使用 OS Guard 将现有节点迁移到 Azure Linux。

先决条件

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

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

安装 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 功能标志

  1. 使用 AzureLinuxOSGuardPreview 命令注册 az feature register 功能标志。

    az feature register --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    

    几分钟后,状态将显示为“已注册”

  2. 使用 az feature show 命令验证注册状态。

    az feature show --namespace "Microsoft.ContainerService" --name "AzureLinuxOSGuardPreview"
    
  3. 当状态显示已注册时,请使用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。 需要启用 FIPSsecure bootvtpm才能将 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 连接到群集

  1. 使用 kubectl 命令将 az aks get-credentials 配置为连接到你的 Kubernetes 群集。

    az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
    
  2. 使用 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 添加到现有群集。