Kubernetes 集群 (Openstack) 上的 Gitlab CI

Gitlab CI on Kubernetes Cluster (Openstack)

我正在尝试遵循这个关于如何将 Gitlab CI 与我使用 Openstack 创建的 Kubernetes 集群一起使用的简短文档:https://docs.gitlab.com/runner/install/kubernetes.html

我设法创建了它,但是每当我按照前面 link 中指定的方式创建 ConfigMap 和 Deployment 时,它创建的 pods 都会像这样卡在 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 日志在未创建时不可用。

除此之外,我只是不知道如何处理指定的卷,因为我只是认为这与崩溃循环有某种关系。

部署指定:

- configMap:
      name: gitlab-runner
    name: config
  - hostPath:
      path: /usr/share/ca-certificates/mozilla
    name: cacerts

我发现:

A hostPath volume mounts a file or directory from the host node’s filesystem into your pod

在 运行 之后 pods 在没有 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!

关于在 kubernetes 集群上安装 Gitlab CI 运行ning 的实际文档不够清楚。

您需要 运行 某处 gitlab-运行ner 注册您从 Gitlab 实例的 Runner 管理页面获得的令牌,并从生成的配置中获取另一个令牌(cat [=15= .toml | grep token) 并将其粘贴到您的部署配置中,以便它现在可以从 CI.

接收作业

UPDATE 2019: gitlab.com docs now make it clear: https://docs.gitlab.com/runner/register/#gnulinux