安装 Kubernetes 代理

  • 从专业版移动到基础版于 14.5。
  • 多架构镜像引入于 14.8 版本。第一个多架构版本是 v14.8.1。它支持 AMD64 和 ARM64 架构。
  • ARM 架构支持引入于 14.9 版本。

要将 Kubernetes 集群连接到极狐GitLab,您必须在集群中安装代理。

先决条件

在集群中安装代理之前,您需要:

  • 现有的 Kubernetes 集群。如果您没有集群,您可以在云提供商上创建一个。
  • 在私有化部署版极狐GitLab 实例上,管理员必须设置代理服务器。然后将默认在 wss://gitlab.example.com/-/kubernetes-agent/ 上可用。在 JihuLab.com 上,代理服务器在 wss://kas.jihulab.com 上可用。

安装步骤

要在集群中安装代理:

  1. 可选。创建一个代理配置文件
  2. 向极狐GitLab 注册代理
  3. 在集群中安装代理

创建代理配置文件

  • 引入于 13.7 版本,代理配置文件可以添加到仓库的多个目录(或子目录)中。
  • 群组授权引入于 14.3 版本。

代理使用 YAML 文件进行配置设置。如果出现以下情况,您需要一个配置文件:

要创建代理配置文件:

  1. 为您的代理选择一个名称。代理名称遵循 RFC 1123 中的 DNS 标签标准。名称必须:

    • 在项目中独一无二。
    • 最多包含 63 个字符。
    • 仅包含小写字母数字字符或 -
    • 以字母和数字开头。
    • 以字母和数字结尾。
  2. 在仓库中,在默认分支中,在根目录下创建此目录:

    .gitlab/agents/<agent-name>
    
  3. 在该目录中,创建一个 config.yaml 文件。确保文件名以 .yaml 结尾,而不是 .yml

您现在可以将文件留空,稍后配置它

向极狐GitLab 注册代理

  • 引入于 14.1 版本,您可以直接从 UI 创建新的代理记录。
  • 引入于 14.9 版本,无需创建代理配置文件即可注册代理。
于 14.10 版本,功能标志 certificate_based_clusters 更改了 操作 菜单,用于代理而不是证书。

先决条件:

您必须先注册代理,然后才能在集群中安装代理。注册代理的步骤:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。如果您有一个代理配置文件,它必须在这个项目中。您的集群 manifest 文件也应该在此项目中。
  2. 从左侧边栏中,选择 运维 > Kubernetes 集群
  3. 选择 连接集群(代理)
    • 如果要使用 CI/CD 默认值创建配置,请键入符合命名约定的名称。
    • 如果您已有代理配置文件,请从列表中选择它。
  4. 选择 注册代理
  5. 极狐GitLab 为代理生成访问令牌。您在集群中安装代理时,需要此令牌。

    caution安全地存储代理访问令牌。不良行为者可以使用此令牌访问代理配置项目中的源代码,访问极狐GitLab 实例上任何公共项目中的源代码,甚至在非常特定的条件下,获取 Kubernetes manifests。
  6. 复制 推荐安装方法 下的命令。当您使用单线安装方法在集群中安装代理时,您需要使用此命令。

在集群中安装代理

引入于 14.10 版本,极狐GitLab 推荐使用 Helm 安装代理。

要将集群连接到极狐GitLab,请在集群中安装已注册的代理,使用 Helm 安装代理

note要连接到多个集群,您必须在每个集群中配置、注册和安装代理。确保给每个代理一个唯一的名称。

使用 Helm 安装代理

要使用 Helm 在集群上安装代理:

  1. 安装 Helm
  2. 在您的计算机中,打开一个终端并连接到您的集群
  3. 运行您在使用极狐GitLab 注册代理时复制的命令。

或者,您可以自定义 Helm 安装

自定义 Helm 安装

默认情况下,极狐GitLab 生成的 Helm 安装命令:

  • 为部署创建命名空间 gitlab-agent--namespace gitlab-agent)。您可以通过省略 --create-namespace 标志来跳过创建命名空间。
  • 为具有 cluster-admin 权限的代理设置服务账户。您可以:
    • 通过将 --set serviceAccount.create=false 添加到 helm install 命令来跳过创建服务账户。在这种情况下,您必须将 serviceAccount.name 设置为预先存在的服务账户。
    • 通过将 --set rbac.create=false 添加到 helm install 命令来跳过创建 RBAC 权限。在这种情况下,您必须为代理带来自己的 RBAC 权限。否则代理没有权限。
  • 为代理的访问令牌创建一个 Secret 资源。要使用令牌带来您自己的 secret,请省略令牌(--set token=...),而使用 --set config.secretName=<your secret name>
  • agentk pod 创建一个 Deployment 资源。
当 KAS 在自签名证书后面时使用代理

KAS 在自签名证书后面时,您可以将 config.caCert 的值设置为证书。例如:

helm update --install gitlab-agent gitlab/gitlab-agent \
  --set-file config.caCert=my-custom-ca.pem

在此示例中,my-custom-ca.pem 是包含 KAS 使用的 CA 证书的本地文件的路径。证书自动存储在配置映射中并安装在 agentk pod 中。

如果 KAS 与极狐GitLab chart 一起安装,并且 chart 配置为提供自动生成的自签名通配符证书,您可以从 RELEASE-wildcard-tls-ca secret 中提取 CA 证书。

配置您的代理

要配置您的代理,请将内容添加到 config.yaml 文件: