本編博客是繼gitlab cicd (三)系列之安裝git-runner docker安裝方式安裝方式之後另一種安裝gitlab-runner的安裝方式—kubernetes安裝方式
kubernetes集羣的安裝
請參考kubernetes v1.11.0 從代碼編譯到部署文檔-部署
kubernetes版本
[root@master-47-35 ~]# kubectl version
Client Version: version.Info{Major:"1", Minor:"11+", GitVersion:"v1.11.0-168+f47446a730ca03", GitCommit:"f47446a730ca037473fb3bf0c5abeea648c1ac12", GitTreeState:"clean", BuildDate:"2018-08-25T21:05:52Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"11+", GitVersion:"v1.11.0-168+f47446a730ca03", GitCommit:"f47446a730ca037473fb3bf0c5abeea648c1ac12", GitTreeState:"clean", BuildDate:"2018-08-25T21:05:52Z", GoVersion:"go1.10.3", Compiler:"gc", Platform:"linux/amd64"}
準備ConfigMap
token gitlab
從gitlab服務中獲取
[root@master-47-35 gitlab]# cat configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: gitlab-runner
namespace: gitlab
data:
config.toml: |
concurrent = 4
[[runners]]
name = "Kubernetes Runner"
url = "http://10.39.47.63/"
token = "d4027a7f23390e8e2519d93564c0a7"
executor = "kubernetes"
[runners.kubernetes]
namespace = "gitlab"
image = "busybox"
deployment
[root@master-47-35 gitlab]# cat deployment.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: gitlab-runner
namespace: gitlab
spec:
replicas: 1
selector:
matchLabels:
name: gitlab-runner
template:
metadata:
labels:
name: gitlab-runner
spec:
containers:
- args:
- run
image: gitlab/gitlab-runner:latest
imagePullPolicy: Always
name: gitlab-runner
volumeMounts:
- mountPath: /etc/gitlab-runner
name: config
- mountPath: /etc/ssl/certs
name: cacerts
readOnly: true
restartPolicy: Always
hostNetwork: true
volumes:
- configMap:
name: gitlab-runner
name: config
- hostPath:
path: /usr/share/ca-certificates/mozilla
name: cacerts
創建名爲gitlab的namespace,
kubectl create ns gitlab
部署
[root@master-47-35 gitlab]# kubectl create -f configmap.yaml
configmap/gitlab-runner created
[root@master-47-35 gitlab]# kubectl create -f deployment.yaml
deployment.extensions/gitlab-runner created
進入到容器註冊gitlab-runner
[root@master-47-35 gitlab]# kubectl exec -it gitlab-runner-7dcfcb8d44-d4vdf sh -n gitlab
查看部署結果
[root@master-47-35 gitlab]# kubectl get pods -n gitlab -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
gitlab-runner-7dcfcb8d44-d4vdf 1/1 Running 0 43s 10.253.109.42 slave-47-33 <none>
注意文件config.toml
這個裏面的token要跟頁面的一樣
root@slave-47-33:/# cat /etc/gitlab-runner/config.toml
concurrent = 4
[[runners]]
name = "Kubernetes Runner"
url = "http://10.39.47.63/"
token = "75a8c62d5b0652dff24c57c341fc60"
executor = "kubernetes"
[runners.kubernetes]
namespace = "gitlab"
namespace_overwrite_allowed = "ci-.*"
bearer_token_overwrite_allowed = true
privileged = true
[root@master-47-35 gitlab]# kubectl get pods -n gitlab
NAME READY STATUS RESTARTS AGE
gitlab-runner-6bff6d5579-hnrpb 1/1 Running 0 18m
runner-75a8c62d-project-2-concurrent-0shtsp 0/5 ContainerCreating 0 56s
[root@master-47-35 gitlab]# kubectl get pods -n gitlab
NAME READY STATUS RESTARTS AGE
gitlab-runner-6bff6d5579-hnrpb 1/1 Running 0 18m
runner-75a8c62d-project-2-concurrent-0shtsp 0/5 ContainerCreating 0 58s
[root@master-47-35 gitlab]# kubectl get pods -n gitlab
NAME READY STATUS RESTARTS AGE
gitlab-runner-6bff6d5579-hnrpb 1/1 Running 0 18m
runner-75a8c62d-project-2-concurrent-0shtsp 0/5 ContainerCreating 0 59s
[root@master-47-35 gitlab]# kubectl get pods -n gitlab
NAME READY STATUS RESTARTS AGE
gitlab-runner-6bff6d5579-hnrpb 1/1 Running 0 18m
runner-75a8c62d-project-2-concurrent-0shtsp 0/5 ContainerCreating 0 1m
[root@master-47-35 gitlab]# kubectl get pods -n gitlab
NAME READY STATUS RESTARTS AGE
gitlab-runner-6bff6d5579-hnrpb 1/1 Running 0 18m
runner-75a8c62d-project-2-concurrent-0shtsp 0/5 ContainerCreating 0 1m
end
參考
Run GitLab Runner on a Kubernetes cluster
kubernetes-executors
Advanced configuration