我正在尝试关注如何将Gitlab CI与我使用Openstack创建的Kubernetes集群一起使用的简短文档:https://docs.gitlab.com/runner/install/kubernetes.html
我设法创建它,但是每当我按照上一个链接中的指定创建ConfigMap和Deployment时,它创建的pod都会卡在CrashLoopBackOff中,如下所示:
NAMESPACE NAME READY STATUS RESTARTS AGE
gitlab gitlab-runner-3998042981-f8dlh 0/1 CrashLoopBackOff 36 2h
gitlab gitlab-runner-3998042981-g9m5g 0/1 CrashLoopBackOff 36 2h
gitlab gitlab-runner-3998042981-q0bth 0/1 CrashLoopBackOff 36 2h
gitlab gitlab-runner-3998042981-rjztk 0/1 CrashLoopBackOff 36 2h
kube-system coredns-1977636023-1q47s 1/1 Running 0 21h
kube-system grafana-1173934969-vw49f 1/1 Running 0 21h
kube-system node-exporter-gitlab-ci-hc6k3ffax54o-minion-0 1/1 Running 0 21h
kube-system node-exporter-gitlab-ci-hc6k3ffax54o-minion-1 1/1 Running 0 21h
kube-system prometheus-873144915-s9m6j 1/1 Running 0 21h
我的问题是我无法知道为什么会发生这种情况,因为pod日志在未创建时不可用。
除此之外,我只是不知道如何处理指定的卷,因为我认为这与crashloops有一些关系。
部署指定:
- configMap:
name: gitlab-runner
name: config
- hostPath:
path: /usr/share/ca-certificates/mozilla
name: cacerts
我发现:
hostPath卷从主机节点安装文件或目录 文件系统进入你的pod
在没有cacerts卷的情况下运行pod后,一切都已创建,但之后不会执行任何作业。
从任何广告连播记录:
Starting multi-runner from /etc/gitlab-runner/config.toml ... builds=0
Running in system-mode.
Configuration loaded builds=0
Metrics server disabled
ERROR: Checking for jobs... forbidden runner=<PARTOFTHETOKEN>
ERROR: Checking for jobs... forbidden runner=<PARTOFTHETOKEN>
ERROR: Checking for jobs... forbidden runner=<PARTOFTHETOKEN>
ERROR: Runner https://URL/ci<TOKEN> is not healthy and will be disabled!
答案 0 :(得分:6)
关于在kubernetes集群上运行Gitlab CI的实际文档还不够清楚。
您需要使用从Gitlab实例的Runner管理页面获取的令牌运行某个gitlab-runner寄存器,并从结果配置中获取另一个令牌(cat /etc/gitlab-runner/config.toml | grep令牌)和将其粘贴到部署配置中,以便它现在可以从CI接收作业。
更新2019年:gitlab.com文档现在明确表示: https://docs.gitlab.com/runner/register/#gnulinux