Azure Kubernetes 服务 (AKS) 的自动部署

自动化部署简化了设置 GitHub Actions 或 Azure DevOps 管道的过程,使得构建应用程序到 Azure Kubernetes 服务(AKS)的持续部署管道变得轻而易举。 连接后,每个新提交都会自动触发管道,从而无缝地将更新传送到应用程序。 可以自带部署文件来快速创建管道,或者生成 Dockerfiles 和 Kubernetes 清单,以尽量少地容器化和部署非容器化应用程序。

先决条件

连接到源代码存储库

创建自动化部署工作流,并授权它连接到所需的源代码存储库。

  1. 在 Azure 门户中,导航到你的 AKS 群集资源。
  2. 在服务菜单中的“设置”下,选择“自动部署”>“创建”。
  3. 存储库详细信息下,输入工作流的名称,然后选择存储库位置的 GitHub 或 ADO
  4. 选择“ 授权访问 ”以连接到所需的存储库。
  5. 选择 存储库分支,然后选择“ 下一步”。

选择容器映像配置

若要使应用程序准备好用于 Kubernetes,需要将其构建到容器映像中,并将其存储在容器注册表中。 使用 Dockerfile 提供有关如何生成容器映像的说明。 如果源代码存储库还没有 Dockerfile,则自动部署可以为你生成一个。 否则,可以使用现有的 Dockerfile。

使用自动部署为多种语言和框架(如 Go、C#、Node.js、Python、Java、Gradle、Clojure、PHP、Ruby、Erlang、Swift 和 Rust)生成 Dockerfile。 语言支持基于 draft.sh 中提供的内容。

  1. 为容器配置选择 “自动容器化”(生成 Dockerfile )。
  2. 选择在存储库中 保存生成的 Dockerfile 的位置
  3. 从支持的语言和框架列表中选择 应用程序环境
  4. 输入 应用程序端口
  5. 提供 Dockerfile 生成上下文 路径。
  6. 选择现有的 Azure 容器注册表或创建新的容器注册表 。 此注册表用于存储生成的应用程序映像。

选择 Kubernetes 清单配置

备注

“生成清单”选项还支持服务连接器集成、自动生成的入口资源以及更详细的可自定义 Kubernetes 清单文件等高级功能。

Kubernetes 上运行的应用程序包含许多 Kubernetes 基元组件。 这些组件描述了要使用的容器映像、要运行的副本数、如果公开应用程序需要公共 IP,等等。有关详细信息,请参阅官方 [Kubernetes 文档][kubernetes-documentation]。 如果源代码存储库还没有要部署的基本 Kubernetes 清单,则自动部署可以为你生成它们。 否则,你可以使用一组现有的清单。 此外,也可以选择现有 Helm chart。

如果代码存储库已有 Dockerfile,则可以选择它来生成应用程序映像。

  1. 为部署选项选择 “使用现有 Kubernetes 清单部署文件 ”。
  2. 从存储库中选择 Kubernetes 清单文件或文件夹
  3. 选择“下一步”。

(可选)添加环境变量

通过指定名称/值对来定义 Kubernetes 中容器的环境变量。 环境变量非常重要,因为它们有助于更轻松地管理设置、安全处理敏感信息以及跨环境的灵活性。

查看配置和部署

查看应用程序的配置和 Kubernetes 清单,然后选择“ 部署”。 将针对您所选择的存储库生成拉取请求(PR),因此请不要离开部署页面。

查看和合并拉取请求

部署成功后,选择“ 查看拉取请求 ”以查看代码存储库上生成的拉取请求的详细信息。

GitHub 上的拉取请求的屏幕截图。

  1. 查看 文件更改 下的更改,并进行任何所需的编辑。
  2. 选择 “合并拉取请求 ”,将更改合并到代码存储库中。

合并更改将运行 GitHub Actions 工作流,该工作流将应用程序生成到容器映像中,将其存储在 Azure 容器注册表中,并将其部署到群集。

显示正在进行中的 GitHub Actions 的工作流的屏幕截图。

检查已部署的资源

管道完成后,可以通过在服务菜单的 Service部分下选择“服务和入口”来查看在 Azure 门户中创建的 Kubernetes

“服务和入口”窗格的屏幕截图。

选择 外部 IP 时,应打开包含正在运行的应用程序的新浏览器页面。

显示正在运行的 Contoso Air 应用程序的屏幕截图。

删除资源

完成群集作后,请使用以下步骤将其删除,以避免产生 Azure 费用:

  1. 在 Azure 门户中,导航到 自动部署
  2. 选择所选管道上的“...”
  3. 选择 删除