你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
适用于: ✔️ AKS Automatic
Azure Kubernetes Service (AKS) Automatic是一种托管的 Kubernetes 体验,可自动执行 AKS 群集设置和操作并嵌入最佳做法配置。 AKS 自动还包括 [Pod 就绪 SLA][azure-sla],保证 99.9% 的合格 Pod 就绪操作在 5 分钟内完成,为应用程序提供可靠、自我修复的基础结构。 在此快速入门中,您将学习如何:
- 部署 AKS Automatic 群集。
- 运行示例多容器应用程序,其中的一组微服务和 Web 前端模拟零售应用场景。
在您开始之前
- 本快速入门假设读者基本了解 Kubernetes 的概念。 有关详细信息,请参阅 Azure Kubernetes 服务 (AKS) 的 Kubernetes 核心概念。
- AKS Automatic 在 AKS 群集上启用 Azure Policy,但你应在订阅中预注册
Microsoft.PolicyInsights资源提供程序。 有关详细信息,请参阅Azure资源提供程序和类型。
在 Azure Cloud Shell 中使用 Bash 环境。 有关详细信息,请参阅 Get started with Azure Cloud Shell。
如果希望在本地运行 CLI 引用命令,install Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行Azure CLI。 有关详细信息,请参阅 如何在 Docker 容器中运行Azure CLI。
如果使用本地安装,请使用 az login 命令登录到Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅 使用 Azure CLI 进行身份验证。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展的详细信息,请参阅 使用 Azure CLI 使用和管理扩展。
运行az version命令,以查看已安装的版本和依赖库。 若要升级到最新版本,请运行az upgrade。
- Azure CLI版本 2.77.0 或更高版本。 使用
az --version命令查找版本。 若要安装或升级,请参阅 Install Azure CLI。 如果使用Azure Cloud Shell,则已安装最新版本。 - 如果有多个Azure订阅,请选择相应的订阅 ID 以使用
az account set命令向资源计费。
- 若要部署Bicep文件,需要对您创建的资源具有写入权限,并拥有对
Microsoft.Resources/deployments资源类型的所有操作权限。 例如,若要创建虚拟机(VM),需要Microsoft.Compute/virtualMachines/write和Microsoft.Resources/deployments/*权限。 有关角色和权限的列表,请参阅 Azure 内置角色。
局限性
- AKS 自动群集的系统节点池需要部署在支持至少三个可用区、临时 OS 磁盘和 Azure Linux OS 的 Azure 区域中。
- AKS 自动化在以下地区可用:
australiaeast,austriaeast,belgiumcentral,brazilsouth,canadacentral,centralindia,centralus,chilecentral,denmarkeast,eastasia,eastus,eastus2,francecentral,germanywestcentral,indonesiacentral,israelcentral,italynorth,japaneast,japanwest,koreacentral,malaysiawest,mexicocentral,newzealandnorth,northcentralus,northeurope,norwayeast,polandcentral,southafricanorth,southcentralus,southeastasia,spaincentral,swedencentral,switzerlandnorth,uaenorth,uksouth,westeurope,westus,westus2,westus3. - AKS 自动群集已预先配置节点资源组锁定,不允许更改MC_资源组,从而阻止默认Private DNS区域中的虚拟网络链接。 对于跨 VNet 或自定义 DNS 方案,使用自定义网络和专用 DNS,请遵循 在自定义虚拟网络中创建专用 Azure Kubernetes Service (AKS) 自动群集。
重要
AKS Automatic 尝试根据订阅中可用的容量动态选择 system 节点池的虚拟机大小。 确保你的订阅在要部署群集的区域中具有以下任意大小的 16 个 vCPU 的配额:Standard_D4lds_v5、Standard_D4ads_v5、Standard_D4ds_v5、Standard_D4d_v5、Standard_D4d_v4、Standard_DS3_v2、Standard_DS12_v2、Standard_D4alds_v6、Standard_D4lds_v6 或 Standard_D4alds_v5。 可以通过Azure门户查看特定 VM 系列配额并提交配额增加请求。
如果还有其他问题,请通过 故障排除文档了解详细信息。
创建资源组
Azure资源组是在其中部署和管理Azure资源的逻辑组。
使用 az group create 命令创建资源组。 以下示例在 eastus 位置创建名为 myResourceGroup 的资源组:
az group create --name myResourceGroup --location eastus
以下示例输出类似于资源组成功创建:
{
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
"location": "eastus",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null
}
创建 AKS Automatic 群集
使用az aks create命令,并将--sku参数设置为automatic来创建 AKS 自动群集。 以下示例创建名为 myAKSAutomaticCluster 的群集,并启用了 Managed Prometheus 和 Container Insights 集成:
az aks create \
--resource-group myResourceGroup \
--name myAKSAutomaticCluster \
--sku automatic
片刻之后,该命令将会完成,并返回有关群集的 JSON 格式信息。
创建自动版 Kubernetes 群集
若要创建 AKS 自动群集,请搜索并选择 Kubernetes 服务。 这会转到 Kubernetes 中心(预览版) 页。
在 Kubernetes 中心(预览版) 页上,选择“ 创建>自动 Kubernetes 群集”。
创建自动 AKS 群集按钮在 Azure 门户上的屏幕截图。
在 “基本信息 ”选项卡上,填写所有必填字段(订阅、资源组、Kubernetes 群集名称和区域),然后选择“ 下一步”。
在Monitoring选项卡上,从 Azure Monitor(容器见解)、托管 Prometheus、Grafana 仪表板、容器网络可观测性(ACNS)和警报中选择所需的监控配置,然后选择下一步。
在“Advanced 选项卡上,选择所需的高级配置”专用访问“、”Azure虚拟网络“、”托管标识“、”容器网络安全“(ACNS)和托管 Kubernetes 命名空间,然后选择”Review + create。
在 Azure 门户中创建 AKS 自动化群集时,高级选项卡的屏幕截图。
查看“ 查看 + 创建 ”选项卡上的配置,然后选择“ 创建 ”以部署 AKS 自动群集。
开始从GitHub配置第一个应用程序并设置自动化部署管道。
查看Bicep文件
以下 Bicep 文件定义一个 AKS 自动化群集:
@description('The name of the managed cluster resource.')
param clusterName string = 'myAKSAutomaticCluster'
@description('The location of the managed cluster resource.')
param location string = resourceGroup().location
resource aks 'Microsoft.ContainerService/managedClusters@2024-03-02-preview' = {
name: clusterName
location: location
sku: {
name: 'Automatic'
}
properties: {
agentPoolProfiles: [
{
name: 'systempool'
mode: 'System'
count: 3
}
]
}
identity: {
type: 'SystemAssigned'
}
}
有关在 Bicep 文件中定义的资源的详细信息,请参阅 Microsoft.ContainerService/managedClusters 参考。
部署 Bicep 文件
将Bicep文件保存为 main.bicep 到本地计算机。
重要
Bicep文件将
clusterName参数设置为字符串 myAKSAutomaticCluster。 如果要使用其他群集名称,请确保先将字符串更新为首选群集名称,然后再将文件保存到计算机。使用 [
az deployment group create][az-deployment-group-create] 命令部署 Bicep 文件。az deployment group create --resource-group myResourceGroup --template-file main.bicep创建 AKS 群集需要几分钟时间。 等待群集成功部署,然后转到下一步骤。
连接至群集
若要管理 Kubernetes 群集,请使用 Kubernetes 命令行客户端 kubectl。 如果使用Azure Cloud Shell,则已安装 kubectl。 可以使用kubectl命令在本地安装az aks install-cli。 AKS Automatic 群集配置为使用 Microsoft Entra ID 进行 Kubernetes 基于角色的访问控制 (RBAC)。
使用
kubectl命令将az aks get-credentials配置为连接到你的 Kubernetes 群集。 此命令将下载凭据,并将 Kubernetes CLI 配置为使用这些凭据。az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster使用
kubectl get命令验证与群集之间的连接。 此命令将返回群集节点的列表。kubectl get nodes以下示例输出显示系统如何提示你登录:
To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.登录后,以下示例输出会显示托管系统节点池。 确保节点状态为“就绪”。
NAME STATUS ROLES AGE VERSION aks-nodepool1-12345678-vmss000000 Ready agent 2m26s v1.28.5 aks-nodepool1-12345678-vmss000001 Ready agent 2m26s v1.28.5 aks-nodepool1-12345678-vmss000002 Ready agent 2m26s v1.28.5
部署应用程序
若要部署应用程序,请使用清单文件创建运行 AKS Store 应用程序所需的所有对象。 Kubernetes 清单文件定义群集的所需状态,例如,要运行哪些容器映像。 该清单包括以下 Kubernetes 部署和服务:
& lt;c2>& lt;c1>& lt;c0>& lt;sb0> Azure 商店示例架构的截图。& lt;/sb0>& lt;/c0>& lt;/c1>& lt;/c2>
- 门店:Web 应用程序,供客户查看产品和下单。
- 产品服务:显示产品信息。
- 订单服务:下单。
- Rabbit MQ:订单队列的消息队列。
注释
建议不要在没有持久性存储用于生产的情况下运行有状态容器(例如 Rabbit MQ)。 此处使用这些服务是为了简单起见,但我们建议使用托管服务,例如Azure Cosmos DB或Azure Service Bus。
创建命名空间
aks-store-demo以将 Kubernetes 资源部署到其中。kubectl create ns aks-store-demo使用
kubectl apply命令将应用程序部署到aks-store-demo命名空间中。 定义部署的 YAML 文件位于 GitHub 上。kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yaml以下示例输出显示部署和服务:
statefulset.apps/rabbitmq created configmap/rabbitmq-enabled-plugins created service/rabbitmq created deployment.apps/order-service created service/order-service created deployment.apps/product-service created service/product-service created deployment.apps/store-front created service/store-front created ingress/store-front created
测试应用程序
应用程序运行时,Kubernetes 服务将向 Internet 公开应用程序前端。 此过程可能需要几分钟才能完成。
使用 kubectl get pods 命令查看已部署的 Pod 的状态。 在继续操作之前,请确保所有 Pod 的状态为
Running。 如果这是你要部署的第一个工作负载,节点自动预配可能需要花费几分钟时间来创建节点池,以运行 Pod。kubectl get pods -n aks-store-demo检查应用商店前端应用程序的公共 IP 地址。 使用带有 参数的
--watch命令来监视进度。kubectl get ingress store-front -n aks-store-demo --watch服务的 ADDRESS 输出最初显示为空:
store-frontNAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 80 12m在 ADDRESS 从空白变为实际公共 IP 地址后,使用 停止
CTRL-C监视过程。kubectl以下示例输出显示向服务分配的有效公共 IP 地址:
NAME CLASS HOSTS ADDRESS PORTS AGE store-front webapprouting.kubernetes.azure.com * 4.255.22.196 80 12m打开 Web 浏览器以访问入口的外部 IP 地址,以查看Azure应用商店应用是否在运行中。
删除群集
如果不打算完成 AKS 教程,请清理不必要的资源以避免Azure费用。
使用 az group delete 命令删除资源组、容器服务和所有相关资源。
az group delete --name myResourceGroup --yes --no-wait
注释
AKS 群集是使用系统分配的托管标识创建的,这是本快速入门中使用的默认标识选项。 平台负责管理此标识,因此你无需手动移除它。
相关内容
在本快速入门中,你使用 AKS Automatic 部署了一个 Kubernetes 群集,然后在其中部署了示例多容器应用程序。 此示例应用程序仅用于演示目的,并未展示出 Kubernetes 应用程序的所有最佳做法。 有关使用生产版 AKS 创建完整解决方案的指南,请参阅 AKS 解决方案指南。
若要了解有关 AKS 自动化的详细信息,请参阅 Azure Kubernetes 服务(AKS)自动化简介