教程:设置 Google Cloud 集成
本教程将向您展示如何将 Google Cloud 与 GitLab 集成,以便您可以直接部署到 Google Cloud。
要设置 Google Cloud 集成,请执行以下操作:
- 使用 Google Cloud Identity and Access Management (IAM) 保护您的使用
- 连接到 Google Artifact Registry 仓库
- 设置 GitLab Runner 以在 Google Cloud 上执行您的 CI/CD 作业
- 使用 CI/CD 组件部署到 Google Cloud
开始之前
要设置此集成,您必须:
- 拥有一个 GitLab 项目,并且您在该项目中至少拥有“维护者”(Maintainer)角色。
- 在您要使用的 Google Cloud 项目上拥有 所有者 IAM 角色。
- 已为您的 Google Cloud 项目 启用计费。
- 拥有一个采用 Docker 格式和标准模式的 Google Artifact Registry 仓库。
- 安装 Google Cloud CLI 和 Terraform。
使用 Google Cloud Identity and Access Management (IAM) 保护您的使用
为了保护您对 Google Cloud 的使用,您必须设置 Google Cloud IAM 集成。 完成此步骤后,您的 GitLab 组或项目将连接到 Google Cloud。您可以使用工作负载身份联合来处理 Google Cloud 资源的权限,而无需服务账号密钥及其相关的风险。
- 在左侧边栏,选择 搜索或跳转至 并找到您的组或项目。如果您在组级别进行配置,则设置将默认应用于该组内的所有项目。
- 选择 设置 > 集成。
- 选择 Google Cloud IAM。
- 选择 引导式设置 并按照说明操作。
连接到 Google Artifact Registry 仓库
既然 Google IAM 集成已经设置好,您现在可以连接到 Google Artifact Registry 仓库。 完成此步骤后,您就可以在 GitLab 中查看您的 Google Cloud 构件。
- 在您的 GitLab 项目中,在左侧边栏,选择 设置 > 集成。
- 选择 Google Artifact Registry。
- 在 启用集成 下,勾选 已启用 复选框。
- 填写以下字段:
- Google Cloud 项目 ID:您的 Artifact Registry 仓库所在的 Google Cloud 项目的 ID。
- 仓库名称:您的 Artifact Registry 仓库的名称。
- 仓库位置:您的 Artifact Registry 仓库的位置。
- 在 配置 Google Cloud IAM 策略 部分,按照屏幕上的说明在 Google Cloud 中设置 IAM 策略。这些策略是使用 GitLab 项目中的 Artifact Registry 仓库所必需的。
- 选择 保存更改。
- 要查看您的 Google Cloud 构件,请在左侧边栏选择 部署 > Google Artifact Registry。
在后续步骤中,您将把容器镜像推送到 Google Artifact Registry。
设置 GitLab Runner 以在 Google Cloud 上执行 CI/CD 作业
您可以设置 GitLab Runner 在 Google Cloud 上运行 CI/CD 作业。 完成此步骤后,您的 GitLab 项目将拥有一个自动扩展的 Runner 集群,其中包含一个运行器管理器,该管理器会创建临时的 Runner 来同时执行多个作业。
- 在您的 GitLab 项目中,在左侧边栏,选择 设置 > CI/CD。
- 展开 Runner 部分。
- 选择 新建项目 Runner。
- 填写以下字段。
- 在 平台 部分,选择 Google Cloud。
- 在 标签 部分,标签 字段中,输入作业标签以指定此 Runner 可以运行的作业。如果此 Runner 没有作业标签,请选择 运行未标记的作业。
- (可选)在 Runner 描述 字段中,添加一个在 GitLab 中显示的 Runner 描述。
- (可选)在 配置 部分,添加其他配置。
- 选择 创建 Runner。
- 填写 第 1 步:指定环境 部分中的字段,以指定 Runner 执行 CI/CD 作业的 Google Cloud 环境。
- 在 第 2 步:设置 GitLab Runner 下,选择 设置说明。
- 按照模态框中的说明操作。您只需要为 Google Cloud 项目执行一次 第 1 步,以便准备好配置 Runner。
按照说明操作后,您的 Runner 可能需要一分钟才能上线并准备运行作业。
使用 CI/CD 组件部署到 Google Cloud
开发中的一个最佳实践是重用语法,例如 CI/CD 组件,以保持您流水线的一致性。
您可以使用来自 GitLab 和 Google 的组件库,让您的 GitLab 项目与 Google Cloud 资源进行交互。 请参阅 Google 的 CI/CD 组件。
将容器镜像复制到 Google Artifact Registry
开始之前,您必须有一个可用的 CI/CD 配置,该配置会构建容器镜像并将其推送到您的 GitLab 容器镜像仓库。
要将容器镜像从您的 GitLab 容器镜像仓库复制到 Google Artifact Registry,请在您的流水线中包含 Google 的 CI/CD 组件。 完成此步骤后,每当有新的容器镜像推送到您的 GitLab 容器镜像仓库时,它也会被推送到您的 Google Artifact Registry。
-
在您的 GitLab 项目中,在左侧边栏,选择 构建 > 流水线编辑器。
-
在现有配置中,按如下方式添加该组件。
- 将
<your_stage>替换为此作业运行的阶段。 该阶段必须在镜像构建并推送到 GitLab 容器镜像仓库之后。
include: - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main inputs: stage: <your_stage> source: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA target: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA - 将
-
添加一个描述性的提交信息。目标分支 必须是您的默认分支。
-
选择 提交更改。
-
转到 构建 > 流水线,并确保新的流水线正在运行。
-
流水线成功完成后,要查看已复制到 Google Artifact Registry 的容器镜像,请在左侧边栏选择 部署 > Google Artifact Registry。
创建 Google Cloud Deploy 发布
要将您的流水线与 Google Cloud Deploy 集成,请在您的流水线中包含 Google 的 CI/CD 组件。 完成此步骤后,您的流水线将使用您的应用程序创建一个 Google Cloud Deploy 发布。
- 在您的 GitLab 项目中,在左侧边栏,选择 构建 > 流水线编辑器。
- 在现有配置中,添加 Google Cloud Deploy 组件。
- 编辑组件的
inputs。 - 添加一个描述性的提交信息。目标分支 必须是您的默认分支。
- 选择 提交更改。
- 转到 构建 > 流水线,并确保新的流水线通过。
- 流水线成功完成后,要查看发布,请参阅 Google Cloud 文档。
就是这样!您现在已经将 Google Cloud 与 GitLab 集成,您的 GitLab 项目可以无缝地部署到 Google Cloud。