Kubernetes集群上的Gitlab CI(Openstack)

dju*_*rez 4 openstack gitlab gitlab-ci kubernetes 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
Run Code Online (Sandbox Code Playgroud)

我的问题是我无法知道为什么会发生这种情况,因为pod日志在未创建时不可用.

除此之外,我只是不知道如何处理指定的卷,因为我认为这与crashloops有一些关系.

部署指定:

- configMap:
      name: gitlab-runner
    name: config
  - hostPath:
      path: /usr/share/ca-certificates/mozilla
    name: cacerts
Run Code Online (Sandbox Code Playgroud)

我发现:

hostPath卷将文件或目录从主机节点的文件系统安装到您的pod中

在没有cacerts卷的情况下运行pod后,一切都已创建,但之后将不会执行任何作业.

从任何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!
Run Code Online (Sandbox Code Playgroud)

dju*_*rez 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