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
我正在尝试遵循这个关于如何将 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