前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Gitlab添加K8S集群

Gitlab添加K8S集群

作者头像
jwangkun
发布2021-12-23 17:46:36
1.4K0
发布2021-12-23 17:46:36
举报
文章被收录于专栏:John Wong's BlogJohn Wong's Blog

Gitlab添加K8S集群

本文介绍如何在Gitlab项目中添加K8S集群,以便使用K8S集群部署gitlab-runner帮我们运行gitlab的CI/CD。

参考官方文档:https://docs.gitlab.com/ee/user/project/clusters/add_remove_clusters.html#add-existing-cluster

操作步骤

找到添加位置

登入gitlab后,进入自己的项目主页,菜单栏 Operations => Kubernetes => Add Kubernetes cluster,选择页签 Add existing cluster。

我们只需要获取响应的值填录到该表单即可。Kubernetes cluster name集群名称随意填,Project namespace可不填。

获取API URL

运行以下命令得到输出值:

代码语言:javascript
复制
kubectl cluster-info | grep 'Kubernetes master' | awk '/http/ {print $NF}'

获取CA Certificate

运行以下命令得到输出值:

代码语言:javascript
复制
kubectl get secret $(kubectl get secret | grep default-token | awk '{print $1}') -o jsonpath="{['data']['ca\.crt']}" | base64 --decode

获取Token

创建文件gitlab-admin-service-account.yaml:

代码语言:javascript
复制
vim gitlab-admin-service-account.yaml

文件写入如下内容:

代码语言:javascript
复制
apiVersion: v1
kind: ServiceAccount
metadata:
  name: gitlab-admin
  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-admin
  namespace: kube-system

运行以下命令得到输出值:

代码语言:javascript
复制
kubectl apply -f gitlab-admin-service-account.yaml
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep gitlab-admin | awk '{print $1}')

添加完成之后,可以在集群中安装你想用的插件了,例如gitlab-runner。

踩坑记录

在Gitlab中添加Kubernetes集群,可能存在两者版本兼容的问题,这回导致gitlab调用K8S集群的API失败,可能是因为K8S不同版本的api更新的缘故。尽量使用最新版本的Gitlab,他会支持更多版本的K8S API。

可以通过文档查看Gitlab支持的K8S版本:https://docs.gitlab.com/ee/user/project/clusters/index.html

下一篇: Docker搭建YAPI服务→

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-11-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Gitlab添加K8S集群
    • 操作步骤
      • 踩坑记录
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档