登录 GitLab UI 后,您应该启用本地 HTTP 请求。这样做你需要去管理部分。然后点击“设置”->“网络”->“出站请求”。最后,您需要选中“允许从 Web 钩子和服务向本地网络发出请求”框。我们将使用 GitLab 和 Kubernetes API 之间以及 GitLab CI runner 和 GitLab master 之间的内部通信。

现在,我们可以配置与 Kubernetes API 的连接。为此,您应该转到“Kubernetes”部分,然后单击“添加 Kubernetes 集群”,最后切换到“连接现有集群”选项卡。我们需要在表格中提供一些关于我们集群的基本信息。该名称是必需的,因此我设置了与 Kubernetes 上下文相同的名称。您可以在“环境范围”字段中保留默认值。在“API URL”字段中,我提供了 Kubernetes API 的内部地址。它是http://kubernetes.default:443
。
我们还需要粘贴集群 CA 证书。为了获得它,您应该首先找到带有前缀的秘密default-token-
,并使用以下命令复制它。
$ kubectl get secret default-token-ttswt -o jsonpath="{['data']['ca\.crt']}" | base64 --decode
最后,我们应该ServiceAccount
为 GitLab创建一个特殊的cluster-admin
角色。
apiVersion: v1
kind: ServiceAccount
metadata:
name: gitlab
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: gitlab-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: gitlab
namespace: kube-system
然后您应该gitlab
在kube-system
命名空间中找到带有前缀的秘密,并显示其详细信息。之后,我们需要复制 field 的值token
,并将其粘贴到表单中,无需解码。
$ kubectl describe secret gitlab-token-5sk2v -n kube-system
这是 GitLab 所需的有关 Kubernetes 集群的完整信息。让我们通过单击“添加 Kubernetes 集群”来添加它。

在 GitLab UI 中成功添加新的 Kubernetes 集群后,您需要显示其详细信息。在“应用程序”选项卡中,您应该找到“GitLab runner”部分并安装它。