Gitlab CI в кластере Kubernetes (Openstack)

Я пытаюсь следовать этому короткому документу о том, как использовать Gitlab CI с кластером Kubernetes, который я создаю с помощью Openstack: https://docs.gitlab.com/runner/install/kubernetes.html

Мне удается его создать, но каждый раз, когда я создаю ConfigMap и Deployment, как указано в предыдущей ссылке, созданные им модули застревают в 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

Моя проблема в том, что я не могу знать, почему это происходит, поскольку журналы модулей недоступны, когда они не созданы.

Кроме того, я просто не знаю, что делать с указанными томами, так как я просто думаю, что это имеет какое-то отношение к крашлупам.

Развертывание указывает:

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

Я обнаружил, что:

Том hostPath монтирует файл или каталог из файловой системы хост-узла в ваш модуль.

После запуска модулей без тома cacerts все создается, но после этого никакое задание выполняться не будет.

Лог из любого пода:

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!

person djuarezg    schedule 11.10.2017    source источник


Ответы (1)


Фактические документы о том, что Gitlab CI работает в кластере kubernetes, недостаточно ясны.

Вам нужно запустить где-нибудь регистрацию gitlab-runner с токеном, который вы получаете на странице администратора Runner вашего экземпляра Gitlab, и взять другой токен из полученной конфигурации (cat /etc/gitlab-runner/config.toml | токен grep) и вставить его в вашу конфигурацию развертывания, чтобы теперь он мог получать задания от CI.

ОБНОВЛЕНИЕ 2019: документы gitlab.com теперь проясняют: https://docs.gitlab.com/runner/register/#gnulinux

person djuarezg    schedule 24.10.2017