你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 Azure 门户部署 Azure Kubernetes 服务 (AKS) 群集

Azure Kubernetes 服务 (AKS) 是可用于快速部署和管理群集的托管式 Kubernetes 服务。 在本快速入门中,请执行以下操作:

  • 使用 Azure 门户部署 AKS 群集。
  • 在该群集中运行一个包含 Web 前端和 Redis 实例的示例多容器应用程序。

浏览到 Azure Vote 示例应用程序的屏幕截图。

本快速入门假设读者基本了解 Kubernetes 的概念。 有关详细信息,请参阅 Azure Kubernetes 服务 (AKS) 的 Kubernetes 核心概念

先决条件

如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户

创建 AKS 群集

  1. 登录到 Azure 门户

  2. 在 Azure 门户菜单或“主页”页上,选择“创建资源” 。

  3. 在“类别”部分中,选择“容器”>“Azure Kubernetes 服务(AKS)”。

  4. 在“基本信息”页面上,配置以下选项:

    • 项目详细信息
      • 选择一个 Azure 订阅。
      • 创建一个 Azure 资源组,例如“myResourceGroup”。 虽然可以选择现有资源组,但出于测试或评估目的,我们建议创建一个资源组来临时托管这些资源,从而避免影响生产或开发工作负载。
    • 群集详细信息
      • 确保“预设配置”为“Standard ($$)”。 有关预设配置的详细信息,请参阅 Azure 门户中的群集配置预设
      • 输入 Kubernetes 群集名称,例如 myAKSCluster
      • 选择 AKS 群集的区域,并保留为 Kubernetes 版本选择的默认值。
    • 主节点池
      • 保持选中默认值。

    创建 AKS 群集的屏幕截图 - 提供基本信息。

    注意

    创建群集时,可以通过选择“了解和比较更多预设配置”并选择其他选项来更改预设配置。 创建 AKS 群集的屏幕截图 - 门户预设选项。

  5. 在完成时选择“下一步:节点池”。

  6. 在“节点池”页上,保留默认选项,然后选择“下一步: 访问”。

  7. 在“访问”页面上,配置以下选项:

    • 资源标识的默认值为系统分配的托管标识。 托管标识为应用程序提供一个标识,可以在连接到支持 Azure Active Directory (Azure AD) 身份验证的资源时使用。 若要详细了解托管标识,请参阅什么是 Azure 资源托管标识?
    • 默认启用 Kubernetes 基于角色的访问控制 (RBAC) 选项,以便更精细地控制对部署在 AKS 群集中的 Kubernetes 资源的访问权限。
  8. 完成时选择“下一步: 网络”

  9. 保留默认的“网络”选项(即使用 kubenet 网络插件),然后选择“下一步: 集成”。

  10. 保留默认的“集成”选项,然后选择“下一步: 高级”。

  11. 保留默认的“高级”选项,然后选择“下一步: 标记”。

  12. 在“标记”页上,保留默认选项,然后选择“下一步: 查看 + 创建”。

  13. 导航到“查看 + 创建”选项卡时,Azure 会对你选择的设置运行验证。 如果验证通过,可以通过选择“创建”继续创建 AKS 群集。 如果验证失败,将指示需要修改哪些设置。

  14. 创建 AKS 群集需要几分钟时间。 部署完成后,通过以下任一方式导航到你的资源:

    • 选择“转到资源”,或
    • 浏览到 AKS 群集资源组并选择 AKS 资源。 在此示例中,你将浏览 myResourceGroup 并选择资源 myAKSCluster

连接到群集

若要管理 Kubernetes 群集,请使用 Kubernetes 命令行客户端 kubectl。 如果使用的是 Azure Cloud Shell,则 kubectl 已安装。 如果不熟悉 Cloud Shell,请参阅 Azure Cloud Shell 概述

  1. 使用 Azure 门户顶部的 >_ 按钮打开 Cloud Shell。

    “在门户中打开 Azure Cloud Shell”选项的屏幕截图。

    注意

    若要在本地 shell 安装中执行这些操作:

    1. 验证是否已安装 Azure CLI 或 Azure PowerShell。
    2. 通过 az loginConnect-AzAccount 命令连接到 Azure。
  1. 使用 az aks get-credentials 命令将 kubectl 配置为连接到你的 Kubernetes 群集。 以下命令将下载凭据,并将 Kubernetes CLI 配置为使用这些凭据。

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  1. 使用 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 应用程序的外部服务。
  1. 在 Cloud Shell 中,打开编辑器并创建名为 azure-vote.yaml 的文件。

  2. 粘贴以下 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 清单

  3. 使用 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 Vote 示例应用程序的屏幕截图。

删除群集

为了避免产生 Azure 费用,如果不打算完成后续教程,请清理不需要的资源。 在 AKS 群集仪表板上选择“删除”按钮。 也可以使用 az group delete 命令或 Remove-AzResourceGroup cmdlet 删除资源组、容器服务和所有相关资源。

az group delete --name myResourceGroup --yes --no-wait

注意

AKS 群集是使用系统分配的托管标识创建的。 此标识由平台管理,不需要删除。

后续步骤

在本快速入门中,你部署了一个 Kubernetes 群集,然后在其中部署了示例多容器应用程序。

若要通过浏览完整的示例(包括构建应用程序、从 Azure 容器注册表进行部署、更新正在运行的应用程序,以及缩放和升级群集)来了解有关 AKS 的更多信息,请继续阅读 Kubernetes 群集教程。