安装 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
上可用。
安装步骤
要在集群中安装代理:
- 可选。创建一个代理配置文件。
- 向极狐GitLab 注册代理。
- 在集群中安装代理。
创建代理配置文件
- 引入于 13.7 版本,代理配置文件可以添加到仓库的多个目录(或子目录)中。
- 群组授权引入于 14.3 版本。
代理使用 YAML 文件进行配置设置。如果出现以下情况,您需要一个配置文件:
- 您想使用 GitOps 工作流。
- 您想授权不同的项目将代理用于极狐GitLab CI/CD 工作流。
要创建代理配置文件:
-
为您的代理选择一个名称。代理名称遵循 RFC 1123 中的 DNS 标签标准。名称必须:
- 在项目中独一无二。
- 最多包含 63 个字符。
- 仅包含小写字母数字字符或
-
。 - 以字母和数字开头。
- 以字母和数字结尾。
-
在仓库中,在默认分支中,在根目录下创建此目录:
.gitlab/agents/<agent-name>
-
在该目录中,创建一个
config.yaml
文件。确保文件名以.yaml
结尾,而不是.yml
。
您现在可以将文件留空,稍后配置它。
向极狐GitLab 注册代理
- 引入于 14.1 版本,您可以直接从 UI 创建新的代理记录。
- 引入于 14.9 版本,无需创建代理配置文件即可注册代理。
于 14.10 版本,功能标志
certificate_based_clusters
更改了 操作 菜单,用于代理而不是证书。
先决条件:
您必须先注册代理,然后才能在集群中安装代理。注册代理的步骤:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。如果您有一个代理配置文件,它必须在这个项目中。您的集群 manifest 文件也应该在此项目中。
- 从左侧边栏中,选择 运维 > Kubernetes 集群。
- 选择 连接集群(代理)。
- 选择 注册代理。
-
极狐GitLab 为代理生成访问令牌。您在集群中安装代理时,需要此令牌。
安全地存储代理访问令牌。不良行为者可以使用此令牌访问代理配置项目中的源代码,访问极狐GitLab 实例上任何公共项目中的源代码,甚至在非常特定的条件下,获取 Kubernetes manifests。 - 复制 推荐安装方法 下的命令。当您使用单线安装方法在集群中安装代理时,您需要使用此命令。
在集群中安装代理
引入于 14.10 版本,极狐GitLab 推荐使用 Helm 安装代理。
要将集群连接到极狐GitLab,请在集群中安装已注册的代理,使用 Helm 安装代理。
要连接到多个集群,您必须在每个集群中配置、注册和安装代理。确保给每个代理一个唯一的名称。
使用 Helm 安装代理
要使用 Helm 在集群上安装代理:
- 安装 Helm。
- 在您的计算机中,打开一个终端并连接到您的集群。
- 运行您在使用极狐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
文件: