你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 Azure 门户部署 Azure Kubernetes 服务 (AKS) 群集
Azure Kubernetes 服务 (AKS) 是可用于快速部署和管理群集的托管式 Kubernetes 服务。 在本快速入门中,请执行以下操作:
- 使用 Azure 门户部署 AKS 群集。
- 在该群集中运行一个包含 Web 前端和 Redis 实例的示例多容器应用程序。
本快速入门假设读者基本了解 Kubernetes 的概念。 有关详细信息,请参阅 Azure Kubernetes 服务 (AKS) 的 Kubernetes 核心概念。
先决条件
如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户。
如果不熟悉 Azure Cloud Shell,请参阅 Azure Cloud Shell 概述。
用于创建群集的标识具有合适的的最低权限。 有关 AKS 访问和标识的详细信息,请参阅 Azure Kubernetes Service (AKS) 的访问和标识选项。
创建 AKS 群集
登录到 Azure 门户。
在 Azure 门户菜单或“主页”页上,选择“创建资源” 。
在“类别”部分中,选择“容器”>“Azure Kubernetes 服务(AKS)”。
在“基本信息”页面上,配置以下选项:
- 项目详细信息:
- 选择一个 Azure 订阅。
- 创建一个 Azure 资源组,例如“myResourceGroup”。 虽然可以选择现有资源组,但出于测试或评估目的,我们建议创建一个资源组来临时托管这些资源,从而避免影响生产或开发工作负载。
- 群集详细信息:
- 确保“预设配置”为“Standard ($$)”。 有关预设配置的详细信息,请参阅 Azure 门户中的群集配置预设。
- 输入 Kubernetes 群集名称,例如 myAKSCluster。
- 选择 AKS 群集的区域,并保留为 Kubernetes 版本选择的默认值。
- 主节点池:
- 保持选中默认值。
注意
创建群集时,可以通过选择“了解和比较更多预设配置”并选择其他选项来更改预设配置。
- 项目详细信息:
在完成时选择“下一步:节点池”。
在“节点池”页上,保留默认选项,然后选择“下一步: 访问”。
在“访问”页面上,配置以下选项:
- 资源标识的默认值为系统分配的托管标识。 托管标识为应用程序提供一个标识,可以在连接到支持 Azure Active Directory (Azure AD) 身份验证的资源时使用。 若要详细了解托管标识,请参阅什么是 Azure 资源托管标识?
- 默认启用 Kubernetes 基于角色的访问控制 (RBAC) 选项,以便更精细地控制对部署在 AKS 群集中的 Kubernetes 资源的访问权限。
完成时选择“下一步: 网络”。
保留默认的“网络”选项(即使用 kubenet 网络插件),然后选择“下一步: 集成”。
保留默认的“集成”选项,然后选择“下一步: 高级”。
保留默认的“高级”选项,然后选择“下一步: 标记”。
在“标记”页上,保留默认选项,然后选择“下一步: 查看 + 创建”。
导航到“查看 + 创建”选项卡时,Azure 会对你选择的设置运行验证。 如果验证通过,可以通过选择“创建”继续创建 AKS 群集。 如果验证失败,将指示需要修改哪些设置。
创建 AKS 群集需要几分钟时间。 部署完成后,通过以下任一方式导航到你的资源:
- 选择“转到资源”,或
- 浏览到 AKS 群集资源组并选择 AKS 资源。 在此示例中,你将浏览 myResourceGroup 并选择资源 myAKSCluster。
连接到群集
若要管理 Kubernetes 群集,请使用 Kubernetes 命令行客户端 kubectl。 如果使用的是 Azure Cloud Shell,则 kubectl
已安装。 如果不熟悉 Cloud Shell,请参阅 Azure Cloud Shell 概述。
使用 Azure 门户顶部的
>_
按钮打开 Cloud Shell。注意
若要在本地 shell 安装中执行这些操作:
- 验证是否已安装 Azure CLI 或 Azure PowerShell。
- 通过
az login
或Connect-AzAccount
命令连接到 Azure。
使用 az aks get-credentials 命令将
kubectl
配置为连接到你的 Kubernetes 群集。 以下命令将下载凭据,并将 Kubernetes CLI 配置为使用这些凭据。az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
使用
kubectl get
命令返回群集节点的列表,以此验证与群集之间的连接。kubectl get nodes
输出显示在上一步骤中创建的单个节点。 确保节点状态为 Ready:
NAME STATUS ROLES AGE VERSION aks-agentpool-87331340-vmss000000 Ready agent 8m53s v1.25.6 aks-agentpool-87331340-vmss000001 Ready agent 8m51s v1.25.6 aks-agentpool-87331340-vmss000002 Ready agent 8m57s v1.25.6
部署应用程序
Kubernetes 清单文件定义群集的所需状态,例如,要运行哪些容器映像。
在本快速入门中,你将使用清单来创建运行 Azure Vote 应用程序所需的所有对象。 此清单包含两个 Kubernetes 部署:
- 示例 Azure Vote Python 应用程序。
- 一个 Redis 实例。
此外,还会创建两个 Kubernetes 服务:
- Redis 实例的内部服务。
- 用于通过 Internet 访问 Azure Vote 应用程序的外部服务。
在 Cloud Shell 中,打开编辑器并创建名为
azure-vote.yaml
的文件。粘贴以下 YAML 定义:
apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-back spec: replicas: 1 selector: matchLabels: app: azure-vote-back template: metadata: labels: app: azure-vote-back spec: nodeSelector: "kubernetes.io/os": linux containers: - name: azure-vote-back image: mcr.microsoft.com/oss/bitnami/redis:6.0.8 env: - name: ALLOW_EMPTY_PASSWORD value: "yes" resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 6379 name: redis --- apiVersion: v1 kind: Service metadata: name: azure-vote-back spec: ports: - port: 6379 selector: app: azure-vote-back --- apiVersion: apps/v1 kind: Deployment metadata: name: azure-vote-front spec: replicas: 1 selector: matchLabels: app: azure-vote-front template: metadata: labels: app: azure-vote-front spec: nodeSelector: "kubernetes.io/os": linux containers: - name: azure-vote-front image: mcr.microsoft.com/azuredocs/azure-vote-front:v1 resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi ports: - containerPort: 80 env: - name: REDIS value: "azure-vote-back" --- apiVersion: v1 kind: Service metadata: name: azure-vote-front spec: type: LoadBalancer ports: - port: 80 selector: app: azure-vote-front
有关 YAML 清单文件的明细,请参阅部署和 YAML 清单。
使用
kubectl apply
命令部署应用程序,并指定 YAML 清单的名称:kubectl apply -f azure-vote.yaml
输出显示已成功创建的部署和服务:
deployment "azure-vote-back" created service "azure-vote-back" created deployment "azure-vote-front" created service "azure-vote-front" created
测试应用程序
应用程序运行时,Kubernetes 服务将向 Internet 公开应用程序前端。 此过程可能需要几分钟才能完成。
若要监视进度,请将 kubectl get service
命令与 --watch
参数配合使用。
kubectl get service azure-vote-front --watch
azure-vote-front
服务的 EXTERNAL-IP 输出最初显示为 pending。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
azure-vote-front LoadBalancer 10.0.37.27 <pending> 80:30572/TCP 6s
在 EXTERNAL-IP 地址从 pending 更改为实际公共 IP 地址后,请使用 CTRL-C
来停止 kubectl
监视进程。 以下示例输出显示向服务分配了有效的公共 IP 地址:
azure-vote-front LoadBalancer 10.0.37.27 52.179.23.131 80:30572/TCP 2m
若要查看 Azure Vote 应用的实际效果,请打开 Web 浏览器并转到服务的外部 IP 地址。
删除群集
为了避免产生 Azure 费用,如果不打算完成后续教程,请清理不需要的资源。 在 AKS 群集仪表板上选择“删除”按钮。 也可以使用 az group delete 命令或 Remove-AzResourceGroup cmdlet 删除资源组、容器服务和所有相关资源。
az group delete --name myResourceGroup --yes --no-wait
注意
AKS 群集是使用系统分配的托管标识创建的。 此标识由平台管理,不需要删除。
后续步骤
在本快速入门中,你部署了一个 Kubernetes 群集,然后在其中部署了示例多容器应用程序。
若要通过浏览完整的示例(包括构建应用程序、从 Azure 容器注册表进行部署、更新正在运行的应用程序,以及缩放和升级群集)来了解有关 AKS 的更多信息,请继续阅读 Kubernetes 群集教程。