自动化部署简化了设置 GitHub Actions 或 Azure DevOps 管道的过程,使得构建应用程序到 Azure Kubernetes 服务(AKS)的持续部署管道变得轻而易举。 连接后,每个新提交都会自动触发管道,从而无缝地将更新传送到应用程序。 可以自带部署文件来快速创建管道,或者生成 Dockerfiles 和 Kubernetes 清单,以尽量少地容器化和部署非容器化应用程序。
- GitHub 帐户或 Azure DevOps 组织。
- 一个 AKS 群集。 如果没有,可以按照部署 Azure Kubernetes 服务 (AKS) 群集中的步骤创建一个。
- 一个 Azure 容器注册表 (ACR)。 如果没有,可以按照将 Azure 容器注册表 (ACR) 与 Azure Kubernetes 服务 (AKS) 群集集成中的步骤创建一个。
- 一个要部署的应用程序。
创建自动化部署工作流,并授权它连接到所需的源代码存储库。
- 在 Azure 门户中,导航到你的 AKS 群集资源。
- 在服务菜单中的“设置”下,选择“自动部署”>“创建”。
- 在 存储库详细信息下,输入工作流的名称,然后选择存储库位置的 GitHub 或 ADO 。
- 选择“ 授权访问 ”以连接到所需的存储库。
- 选择 存储库 和 分支,然后选择“ 下一步”。
若要使应用程序准备好用于 Kubernetes,需要将其构建到容器映像中,并将其存储在容器注册表中。 使用 Dockerfile 提供有关如何生成容器映像的说明。 如果源代码存储库还没有 Dockerfile,则自动部署可以为你生成一个。 否则,可以使用现有的 Dockerfile。
使用自动部署为多种语言和框架(如 Go、C#、Node.js、Python、Java、Gradle、Clojure、PHP、Ruby、Erlang、Swift 和 Rust)生成 Dockerfile。 语言支持基于 draft.sh 中提供的内容。
- 为容器配置选择 “自动容器化”(生成 Dockerfile )。
- 选择在存储库中 保存生成的 Dockerfile 的位置 。
- 从支持的语言和框架列表中选择 应用程序环境 。
- 输入 应用程序端口。
- 提供 Dockerfile 生成上下文 路径。
- 选择现有的 Azure 容器注册表或创建新的容器注册表 。 此注册表用于存储生成的应用程序映像。
备注
“生成清单”选项还支持服务连接器集成、自动生成的入口资源以及更详细的可自定义 Kubernetes 清单文件等高级功能。
Kubernetes 上运行的应用程序包含许多 Kubernetes 基元组件。 这些组件描述了要使用的容器映像、要运行的副本数、如果公开应用程序需要公共 IP,等等。有关详细信息,请参阅官方 [Kubernetes 文档][kubernetes-documentation]。 如果源代码存储库还没有要部署的基本 Kubernetes 清单,则自动部署可以为你生成它们。 否则,你可以使用一组现有的清单。 此外,也可以选择现有 Helm chart。
如果代码存储库已有 Dockerfile,则可以选择它来生成应用程序映像。
- 为部署选项选择 “使用现有 Kubernetes 清单部署文件 ”。
- 从存储库中选择 Kubernetes 清单文件或文件夹 。
- 选择“下一步”。
通过指定名称/值对来定义 Kubernetes 中容器的环境变量。 环境变量非常重要,因为它们有助于更轻松地管理设置、安全处理敏感信息以及跨环境的灵活性。
查看应用程序的配置和 Kubernetes 清单,然后选择“ 部署”。 将针对您所选择的存储库生成拉取请求(PR),因此请不要离开部署页面。
部署成功后,选择“ 查看拉取请求 ”以查看代码存储库上生成的拉取请求的详细信息。
- 查看 文件更改 下的更改,并进行任何所需的编辑。
- 选择 “合并拉取请求 ”,将更改合并到代码存储库中。
合并更改将运行 GitHub Actions 工作流,该工作流将应用程序生成到容器映像中,将其存储在 Azure 容器注册表中,并将其部署到群集。
管道完成后,可以通过在服务菜单的 Service
部分下选择“服务和入口”来查看在 Azure 门户中创建的 Kubernetes。
选择 外部 IP 时,应打开包含正在运行的应用程序的新浏览器页面。
完成群集作后,请使用以下步骤将其删除,以避免产生 Azure 费用:
- 在 Azure 门户中,导航到 自动部署
- 选择所选管道上的“...”。
- 选择 删除。