如何将Rancher 1.6创建的Kubernetes集群与GitLab集成
解决Rancher 1.6 K8s集群与GitLab集成(Review Apps)的证书和Token问题
我懂你现在卡在了获取正确的CA证书(PEM格式)和Token上,之前用K8s Dashboard里的证书和Token导致Helm Tiller安装失败对吧?下面我给你一步步捋清楚从Rancher 1.6里获取正确信息的方法,还有排查问题的思路:
一、获取正确的PEM格式CA Certificate
你已经知道从Rancher的Kubernetes > CLI > Generate Config拿API URL,其实CA证书也藏在这个生成的kubeconfig文件里:
- 打开生成的kubeconfig文件,找到
certificate-authority-data字段,这是一串base64编码的CA证书内容 - 把它解码成PEM格式:执行命令
echo "这里替换成certificate-authority-data的字符串" | base64 -d - 解码后输出的就是标准的PEM格式证书,直接复制到GitLab的
CA Certificate字段即可
二、获取有权限的Token
之前用K8s Dashboard里的Token可能权限不够,或者不是对应Rancher管理集群的正确Token,建议专门创建一个GitLab专用的服务账号:
- 创建服务账号
- 登录Rancher Dashboard,进入你的K8s集群,到
Kubernetes>Namespaces,可以选默认命名空间,或者新建一个比如gitlab-managed的命名空间 - 进入目标命名空间,点击
Service Accounts>Add Service Account,命名为gitlab-ci
- 登录Rancher Dashboard,进入你的K8s集群,到
- 绑定足够权限
- 因为GitLab需要安装Helm Tiller、创建各类资源,至少需要集群管理员权限(新手建议先给cluster-admin,后续可按需缩小权限)
- 进入
Kubernetes>Roles>Add Role,选择Cluster Role,权限模板选cluster-admin - 到
Role Bindings>Add Role Binding,把刚才的gitlab-ci服务账号绑定到这个cluster-admin角色
- 提取Token
- 找到你创建的
gitlab-ci服务账号,点击进去,会看到自动生成的Secret(名字一般是gitlab-ci-token-xxxx格式) - 打开这个Secret,复制
token字段的内容,这就是要填到GitLab的Token字段的值
- 找到你创建的
三、排查Helm Tiller安装失败的问题
如果按上面步骤获取信息后还是报错,检查这几点:
- 权限验证:用拿到的API URL、CA证书、Token在本地测试kubectl连接,创建临时kubeconfig文件后执行
kubectl get nodes,如果能正常返回节点,说明权限没问题 - CA证书正确性:确保用的是Rancher kubeconfig里解码后的证书,不是K8s Dashboard里的(Rancher管理的集群CA可能和原生K8s的不一样)
- API URL格式:确认是Rancher提供的集群API地址,比如
https://<你的rancher服务器地址>/k8s/clusters/<集群ID>,不要填原生K8s的API地址
按这个流程走,应该能顺利完成GitLab和Rancher K8s集群的集成,成功安装Helm Tiller并使用Review Apps功能。
内容的提问来源于stack exchange,提问作者Kartik Rokde
相关产品推荐
相关产品推荐

