本地使用docker启动了一个GitLab 又启动了一个minikube,于是把两者连接起来。
由于是本地,需要在gitlab的admin中配置网络。允许接入本地ip
勾上 Allow requests to the local network from web hooks and services。
在本地启动minikube一直卡在 pull images 中。于是查了一下文章。
发现下面两个命令很好使
minikube delete --all
minikube start --image-mirror-country='cn'
minikube dashboard
另外找到了在linux上安装 minikube的 官方文章。 这个可不得了,种类齐全。 https://minikube.sigs.k8s.io/docs/start/
如果看到了 k8s 的dashboard 说明一切顺利
下面进入正式接入环节。
根据接入表单,一共需要获取三个东西。在集群中 API URL: The URL used to access the Kubernetes API.
CA Certificate: The Kubernetes certificate used to authenticate to the cluster
Service Token:
A service token scoped to kube-system
with cluster-admin
privileges
kubectl cluster-info | grep 'Kubernetes master' | awk '/http/ {print $NF}'
kubectl get secret $(kubectl get secret | grep default-token | awk '{print $1}') -o jsonpath="{['data']['ca\.crt']}" | base64 --decode
创建一个gitlab-admin-service-account.yaml
文件
vim gitlab-admin-service-account.yaml
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
执行以下命令获取 Service Token
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}')
填写完毕。
顺利接入
大功告成。