在本快速入门中,你将使用 Azure 资源管理器 (ARM) 模板创建Azure Kubernetes 服务 (AKS)群集,该群集作为节点操作系统(OS)运行Azure容器 Linux(ACL)。 安装必备组件后,创建 SSH 密钥对、查看模板、部署模板并连接到群集。
Azure容器 Linux (ACL) 注意事项和限制
在开始之前,请了解以下有关 ACL 的注意事项和限制:
- ACL 自 AKS v1.34 起正式发布。
- ACL 需要有安全启动和 vTPM 的受信任启动。 非受信任的启动变体不可用。
- Arm64 上的 ACL 要求使用基于 Cobalt 的 (v6) SKU,以支持受信任启动兼容性。
-
NodeImage并且None是唯一受支持的 操作系统(OS)升级通道。Unmanaged和SecurityPatch由于不可变的/usr目录而与 ACL 不兼容。 - 不支持工件流式传输。
- 不支持 Pod Sandboxing。
- 不支持机密虚拟机(CVM)。
- 不支持第 1 代 VM。
- 不支持启用 FIPS 的节点。
先决条件
Note
可以使用Azure CLI的本地安装来运行本快速入门中的命令。
- 如果在本地运行Azure CLI,安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
- 如果使用本地安装,请使用
az login命令登录到Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。 - 如果收到系统提示,请在首次使用时安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 将扩展与 Azure CLI 配合使用。
- Azure容器 Linux 需要Azure CLI 2.86.0 或更高版本。 使用
az version命令查找已安装的Azure CLI版本和依赖库。 若要升级到最新版本,请使用az upgrade命令。 - 如果尚未安装 kubectl,请使用
az aks install-cli命令通过 Azure CLI 安装它,或按照 upstream 说明安装。 - 若要使用 ARM 模板创建 AKS 群集,需要提供 SSH 公钥。 如果需要此资源,请转到“ 创建 SSH 密钥对 ”部分,在部署模板之前生成一个。 如果已有 SSH 密钥对,可以跳到“ 查看模板 ”部分。
- 用于创建群集的标识需要具有适当的最低权限。 有关 AKS 的访问和标识的详细信息,请参阅 Azure Kubernetes 服务 (AKS) 的访问和标识选项。
- 若要部署 ARM 模板,需要对要部署的资源具有写入权限,并有权执行 Microsoft.Resources/deployments 资源类型上的所有操作。 例如,若要部署虚拟机(VM),需要 Microsoft.Compute/virtualMachines/write 和 Microsoft.Resources/deployments/* 权限。 有关角色和权限的列表,请参阅 Azure 内置角色。
创建 SSH 密钥对
若要访问 AKS 节点,请使用通过 ssh-keygen 命令生成的 SSH 密钥对(公钥和私钥)进行连接。 默认情况下,这些文件在 ~/.ssh 目录中创建。 运行 ssh-keygen 命令会覆盖给定位置中同名的任何 SSH 密钥对。
运行
ssh-keygen命令。 以下示例使用 RSA 加密和 4096 位长度创建 SSH 密钥对:ssh-keygen -t rsa -b 4096
有关创建 SSH 密钥的详细信息,请参阅在 Azure 中创建和管理用于身份验证的 SSH 密钥。
查看模板
以下部署使用来自 Azure 快速入门模板的 ARM 模板:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"clusterName": {
"type": "string",
"defaultValue": "aclakscluster",
"metadata": {
"description": "The name of the Managed Cluster resource."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "The location of the Managed Cluster resource."
}
},
"dnsPrefix": {
"type": "string",
"metadata": {
"description": "Optional DNS prefix to use with hosted Kubernetes API server FQDN."
}
},
"osDiskSizeGB": {
"type": "int",
"defaultValue": 0,
"minValue": 0,
"maxValue": 1023,
"metadata": {
"description": "Disk size (in GB) to provision for each of the agent pool nodes. Specifying 0 applies the default disk size for that agentVMSize."
}
},
"agentCount": {
"type": "int",
"defaultValue": 3,
"minValue": 1,
"maxValue": 50,
"metadata": {
"description": "The number of nodes for the cluster."
}
},
"agentVMSize": {
"type": "string",
"defaultValue": "standard_d2s_v3",
"metadata": {
"description": "The size of the Virtual Machine."
}
},
"linuxAdminUsername": {
"type": "string",
"metadata": {
"description": "User name for the Linux Virtual Machines."
}
},
"sshRSAPublicKey": {
"type": "string",
"metadata": {
"description": "Configure all linux machines with the SSH RSA public key string."
}
}
},
"resources": [
{
"type": "Microsoft.ContainerService/managedClusters",
"apiVersion": "2026-03-01",
"name": "[parameters('clusterName')]",
"location": "[parameters('location')]",
"identity": {
"type": "SystemAssigned"
},
"properties": {
"dnsPrefix": "[parameters('dnsPrefix')]",
"agentPoolProfiles": [
{
"name": "agentpool",
"osDiskSizeGB": "[parameters('osDiskSizeGB')]",
"count": "[parameters('agentCount')]",
"vmSize": "[parameters('agentVMSize')]",
"osType": "Linux",
"osSKU": "AzureContainerLinux",
"mode": "System"
}
],
"linuxProfile": {
"adminUsername": "[parameters('linuxAdminUsername')]",
"ssh": {
"publicKeys": [
{
"keyData": "[parameters('sshRSAPublicKey')]"
}
]
}
}
}
}
],
"outputs": {
"controlPlaneFQDN": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerService/managedClusters', parameters('clusterName')), '2024-02-01').fqdn]"
}
}
}
ARM 模板中定义的资源类型为 Microsoft.ContainerService/managedClusters。
部署模板
选择“部署到 Azure”,登录并打开模板。
在“基本信息”页上,保留“OS 磁盘大小(GB)”、“代理计数”、“代理 VM 大小”和“OS 类型”的默认值,并配置以下模板参数:
- Subscription:选择Azure订阅。
- 资源组:选择“新建”。 输入资源组的唯一名称,例如 myACLResourceGroup,然后选择“ 确定”。
- OS SKU:指定 AzureContainerLinux。
- 位置:选择一个位置,例如 美国西部。
- 群集名称:输入 AKS 群集的唯一名称,例如 myACLCluster。
- DNS 前缀:输入群集的唯一 DNS 前缀,例如 myaclcluster。
- Linux 管理员用户名:输入一个用户名用于通过 SSH 进行连接,例如 azureuser。
- “SSH 公钥源”:选择“使用现有公钥”。
- 密钥对名称:复制并粘贴 SSH 密钥对的 public 部分(默认为 ~/.ssh/id_rsa.pub 的内容)。
选择“查看 + 创建”>“创建”。
创建 AKS 群集需要几分钟时间。 在 连接到群集之前,请等待部署完成。
连接至群集
若要管理 Kubernetes 群集,请使用 Kubernetes 命令行客户端 kubectl。 如果使用的是 Azure Cloud Shell,则 kubectl 已安装。 若要在本地安装 kubectl,请使用 az aks install-cli 命令。
使用
kubectl命令将az aks get-credentials配置为连接到你的 Kubernetes 群集。 此命令将下载凭据,并将 Kubernetes CLI 配置为使用这些凭据。az aks get-credentials --resource-group myACLResourceGroup --name myACLCluster使用
kubectl get命令验证与群集之间的连接。 此命令将返回群集节点的列表。kubectl get nodes以下示例输出显示在上一步骤中创建的三个节点。 确保节点状态为 Ready:
NAME STATUS ROLES AGE VERSION aks-agentpool-12345678-0 Ready agent 6m44s v1.34.0 aks-agentpool-12345678-1 Ready agent 6m46s v1.34.0 aks-agentpool-12345678-2 Ready agent 6m45s v1.34.0
删除群集
如果不再需要在本快速入门中创建的资源,可以清理这些资源以避免Azure费用。
使用 az group delete 命令删除Azure资源组和所有相关资源:
az group delete --name myACLResourceGroup --yes --no-wait
相关内容
在本快速入门中,你使用 ARM 模板部署了Azure容器 Linux (ACL) AKS 群集。 若要了解有关 ACL 的详细信息,请参阅以下资源: