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。

image-20200616142451397

我們只需要獲取響應的值填錄到該表單即可。Kubernetes cluster name集群名稱隨意填,Project namespace可不填。

獲取API URL

運行以下命令得到輸出值:

kubectl cluster-info | grep 'Kubernetes master' | awk '/http/ {print $NF}'

獲取CA Certificate

運行以下命令得到輸出值:

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:

vim gitlab-admin-service-account.yaml

文件寫入如下內容:

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

運行以下命令得到輸出值:

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM