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

教程 - 将应用程序部署到 Azure Kubernetes 服务 (AKS)

Kubernetes 为容器化应用程序提供一个分布式平台。 你生成自己的应用程序和服务并将其部署到 Kubernetes 群集中,让群集管理可用性和连接性。

可以通过两种方式部署示例应用程序:

本教程介绍如何直接从工作站将示例应用程序部署到 Kubernetes 群集,并使用 AKS 桌面管理应用程序。 学习如何:

  • 更新 Kubernetes 清单文件。
  • 在 Kubernetes 中部署应用程序。
  • 测试应用程序。
  • 在 AKS 桌面中查看应用程序运行状况、日志、指标和组合。

开始之前

在上一教程中,你已将应用程序打包到容器映像中、将映像更新到 Azure 容器注册表并且创建了 Kubernetes 群集。 必须先预创建 aks-store-quickstart.yaml Kubernetes 清单文件,然后才能完成本教程。 此文件是从教程 1 - 准备 AKS 应用程序的应用程序源代码中下载的。

本教程创建和更新可计费资源,例如 LoadBalancer 服务。 使用具有权限的标识将工作负荷部署到 AKS 并读取群集资源。

本教程需要安装 AKS 桌面

更新清单文件

在这些教程中,你的 Azure 容器注册表 (ACR) 实例存储示例应用程序的容器映像。 若要部署此应用程序,必须更新 Kubernetes 清单文件中的映像名称,使之包括你的 ACR 登录服务器名称。

  1. 确保你位于所克隆的 aks-store-demo 目录中,然后使用文本编辑器打开 aks-store-quickstart.yaml 清单文件。

  2. 通过将 ghcr.io/azure-samples image替换为 ACR 登录服务器名称来更新容器的 属性。

    containers:
    ...
    - name: order-service
      image: <acrName>.azurecr.io/aks-store-demo/order-service:1.0
    ...
    - name: product-service
      image: <acrName>.azurecr.io/aks-store-demo/product-service:1.0
    ...
    - name: store-front
      image: <acrName>.azurecr.io/aks-store-demo/store-front:1.0
    ...
    

运行应用程序

使用 AKS 桌面部署和管理应用程序

AKS 桌面是一个以应用程序为中心的开发人员门户,用于Azure Kubernetes 服务 (AKS),无需深入 Kubernetes 专业知识即可简化应用程序部署和管理。

将群集注册到 AKS 桌面版系统

  1. 请确保使用有权访问 AKS 群集的同一帐户登录到 AKS 桌面。 登录后, 从 Azure 订阅中选择“添加”。
  2. 如果有多个订阅,请输入 Azure 订阅的名称。 (或者,选择箭头以打开下拉列表,然后选择 Azure 订阅。
  3. 选择群集,然后选择“ 注册群集”。

当群集状态在 AKS 桌面版中显示为“已连接”时,继续。

演示如何将群集添加到 AKS 桌面应用的视频。

在 AKS 桌面中创建托管项目

  1. 在 AKS 桌面版中,转到“项目”选项卡,然后选择“创建新的托管Project

  2. 配置以下项目设置:

    • 基础知识
      • 项目名称:例如 my-dev-frontend
      • 订阅:<your-subscription-name>
      • 群集:<your-cluster-name>

    注释

    设置 Azure 订阅和 AKS 群集时,AKS 桌面会检查群集和订阅是否支持所需功能

    • 网络策略:可以保留本快速入门的默认设置,或根据需要更新它们。

      • 若要公开应用程序,请将 入口 更改为 Allow all traffic.
    • 计算配额:设置测试应用程序的值。 显示设置计算配额值的屏幕截图。

    • Access:通过删除行项来添加某人或删除条目。

  3. “审阅”下,验证项目的设置,然后选择“ 创建项目”。

    在 AKS 桌面中创建新项目的屏幕截图。

部署应用程序

  1. 提供应用程序名称,然后选择“ 创建应用程序”。

    在 AKS 桌面中创建新应用程序的屏幕截图。

  2. 为应用程序选择源。 对于此示例,请选择 “Kubernetes YAML>下一步”。 显示选择应用程序源的屏幕截图,选择 Kubernetes YAML。

  3. 打开 aks-store-quickstart.yaml,将其内容复制并粘贴到编辑器中,然后选择“ 下一步”。 显示 YAML 编辑器的屏幕截图,其中复制并粘贴了 YAML。

  4. 查看创建的资源,然后选择“ 部署 ”和“ 关闭”。 显示“查看和部署摘要”的屏幕截图,选择“部署”和“关闭”。

  5. 部署资源可能需要几分钟时间。 在此期间,当群集缩放时,项目状态可能会显示 Degraded

  6. 通过选择 “资源 ”和 “工作负荷”来检查应用程序资源的状态。

    显示用于查看资源及其更改的“资源”选项卡的屏幕截图。 可以通过选择顶部窗口菜单选项 “导航>重载”来强制刷新屏幕。

  7. 选择单个工作负荷资源以查看其详细信息和事件。

测试应用程序

应用程序运行时,Kubernetes 服务将向 Internet 公开应用程序前端。 此过程可能需要几分钟才能完成。

AKS 桌面

  1. 资源>网络>服务获取公共 IP 地址:应用商店前端>外部 IP显示获取应用程序的公共 IP 地址的屏幕截图。

  2. 在 AKS 桌面中浏览应用程序,例如查看日志和指标。 有关详细信息,请参阅 AKS 桌面概述

命令行

  1. 使用带有 kubectl get service 参数的 --watch 命令来监视进度。

    kubectl get service store-front --watch
    

    最初,EXTERNAL-IP 服务的 store-front 显示为 <pending>:

    store-front   LoadBalancer   10.0.34.242   <pending>     80:30676/TCP   5s
    
  2. EXTERNAL-IP 地址从 <pending> 更改为公共 IP 地址时,请使用 CTRL-C 停止 kubectl 监视进程。

    以下示例输出显示向服务分配了有效的公共 IP 地址:

    store-front   LoadBalancer   10.0.34.242   52.179.23.131   80:30676/TCP   67s
    
  3. 通过打开 Web 浏览器并导航到服务的外部 IP 地址来查看应用程序的运作情况:http://<external-ip>

    AKS 存储示例应用程序的屏幕截图。

如果应用程序未加载,可能是因为映像注册表存在授权问题。 若要查看容器的状态,请使用 kubectl get pods 命令。 如果无法拉取容器映像,请参阅使用 Azure 容器注册表从 Azure Kubernetes 服务进行身份验证

Azure 门户

导航到 Azure 门户以查找部署信息。

  1. 导航到 AKS 群集资源。

  2. 在服务菜单的“Kubernetes 资源”下,选择“服务和入口”。

  3. 复制 store-front 服务列中显示的外部 IP。

  4. 将 IP 粘贴到浏览器中以访问商店页面。

    AKS 存储示例应用程序的屏幕截图。

清理资源

由于你已验证应用程序的功能,现在可以从应用程序中删除群集。 我们将在下一篇教程中再次部署该应用程序。

AKS 桌面

注释

若要继续学习下一教程步骤,请不要删除 AKS 桌面项目。

如果已完成,请选择 “删除” 图标。 在确认消息中,选择“ 同时删除命名空间”。 若要删除项目,请选择垃圾桶图标

命令行

  1. 使用 kubectl delete 命令停止和删除容器实例和资源。

    kubectl delete -f aks-store-quickstart.yaml
    
  2. 使用 kubectl get pods 命令检查是否已删除所有应用程序 Pod。

    kubectl get pods
    

后续步骤

在本教程中,你已在 AKS 中将示例 Azure 应用程序部署到 Kubernetes 群集。 你已了解如何执行以下操作:

  • 更新 Kubernetes 清单文件。
  • 在 Kubernetes 中运行应用程序。
  • 测试应用程序。

下一教程介绍如何在 Kubernetes 中使用 PaaS 服务处理有状态工作负载。