Kubernetes集群上的Gitlab CI(Openstack)

时间:2017-10-11 13:20:23

标签: kubernetes gitlab openstack gitlab-ci kubectl

我正在尝试关注如何将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!

1 个答案:

答案 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