安装 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 文件: