在kubernetes环境上部署gitlab-runner,编辑如下gitlab-runner.yaml文件,
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: gitlab-runner
namespace: default
spec:
replicas: 1
selector:
matchLabels:
name: gitlab-runner
template:
metadata:
labels:
name: gitlab-runner
spec:
containers:
- args:
- run
image: gitlab/gitlab-runner:latest
imagePullPolicy: IfNotPresent
name: gitlab-runner
volumeMounts:
- mountPath: /etc/gitlab-runner
name: config
readOnly: false
- mountPath: /etc/ssl/certs
name: cacerts
readOnly: true
restartPolicy: Always
volumes:
- hostPath:
path: /etc/gitlab-runner
name: config
- hostPath:
path: /etc/hosts/key
name: cacerts
执行
kubectl create -f gitlab-runner.yaml
之后找到正在运行的gitlab-runnerpod,执行:
~# kubectl get pod
NAME READY STATUS RESTARTS AGE
gitlab-runner-7b6d6458b-4hx5g 1/1 Running 0 2d19h
于是,执行kubectl exec进入pod,执行 gitlab-runner register,根据提示完成操作即可。这里要注意,如果访问的gitlab使用了https协议,需要降相应的crt、key文件保存到宿主机的/etc/hosts/key目录下
~# kubectl exec -it gitlab-runner-7b6d6458b-4hx5g /bin/bash
root@gitlab-runner-7b6d6458b-4hx5g:/# gitlab-runner register
Running in system-mode.
Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://192.168.100.101/
Please enter the gitlab-ci token for this runner:
g-1YUWB4_JoLgshuPJ6y
Please enter the gitlab-ci description for this runner:
[gitlab-runner-7b6d6458b-4hx5g] : kubernetes-runner
Please enter the gitlab-ci tags for this runner (comma separated):
kubernetes
Registering runner... succeeded runner=g-1YUWB4
Please enter the executor: kubernetes, docker, ssh, docker-ssh+machine, virtualbox, docker+machine, docker-ssh, parallels, shell:
kubernetes
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
root@gitlab-runner-7b6d6458b-4hx5g:/# gitlab-runner list
Listing configured runners ConfigFile=/etc/gitlab-runner/config.toml
kubernetes-runner Executor=kubernetes Token=bb64a2fa634084d169b2c9dd992d45 URL=http://192.168.100.101/
其中URL和token通过如下方式获得:
进入gitlab,选择一个project,再在左侧边条中,选择"Settings"->"CI/CD"->"Runners"->"Expand",
接下来,拷贝对应的url和token,
如果使用k8s环境,就在Please enter the executor中选择Please enter the executor
可以参考:https://www.jianshu.com/p/c398509f8861
https://blog.csdn.net/aixiaoyang168/article/details/81149264
此外,也可以使用helm来进行部署,相对来说更简洁