Kubernetes/Openshift上的Gitlab Runner

Kubernetes/Openshift上的Gitlab Runner,kubernetes,gitlab,openshift,gitlab-ci,gitlab-ci-runner,Kubernetes,Gitlab,Openshift,Gitlab Ci,Gitlab Ci Runner,我试图在Openshift/K8S上部署Gitlab runner,但无法成功让runner与Gitlab通信(它本身部署在OCP上的POD中) 我遵循了以下几条不同的指示: 我的gitlab runner pod启动正常,但它始终接收HTTP 404 Not Found错误消息 这是我的toml配置文件: # cat /etc/gitlab-runner/config.toml concurrent = 6 check_interval = 0 [[runners]] name

我试图在Openshift/K8S上部署Gitlab runner,但无法成功让runner与Gitlab通信(它本身部署在OCP上的POD中)

我遵循了以下几条不同的指示:

我的gitlab runner pod启动正常,但它始终接收HTTP 404 Not Found错误消息

这是我的toml配置文件:

# cat /etc/gitlab-runner/config.toml
concurrent = 6
check_interval = 0

[[runners]]
  name = "GitLab Runner"
  url = "http://gitlab-ce.MY_COMAIN.com/ci"
  token = "WHO_CARES?"
  executor = "kubernetes"
  [runners.kubernetes]
    namespace = "MINE"
    privileged = false
    host = ""
    cert_file = ""
    key_file = ""
    ca_file = ""
    image = ""
    cpus = ""
    memory = ""
    service_cpus = ""
    service_memory = ""
    helper_cpus = ""
    helper_memory = ""
    helper_image = ""
  [runners.cache]
    Type = "s3"
    ServerAddress = "minio-service:80"
    AccessKey = "GENERATED"
    SecretKey = "GENERATED"
    BucketName = "bkt-gitlab-runner"
    Insecure = true
一旦吊舱启动,我的日志中就有:

Starting multi-runner from /etc/gitlab-runner/config.toml ...  builds=0
Running in system-mode.                            

Configuration loaded                                builds=0
Metrics server disabled                            
WARNING: Checking for jobs... failed                runner=WHO_CARES? status=404 Not Found
WARNING: Checking for jobs... failed                runner=WHO_CARES? status=404 Not Found
WARNING: Checking for jobs... failed                runner=WHO_CARES? status=404 Not Found
在Gitlab中,在runners页面()中没有“为此项目激活的runners”

我可以登录到我的pod终端并启动
gitlab runner register
来注册一个新的runner

/ # gitlab-runner register
Running in system-mode.

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
https://gitlab-ce.MY_COMAIN.com
Please enter the gitlab-ci token for this runner:
WHO_CARES?
Please enter the gitlab-ci description for this runner:
[dc-gitlab-runner-service-1-ktw6v]: test
Please enter the gitlab-ci tags for this runner (comma separated):
test
Registering runner... succeeded                     runner=WHO_CARES?
Please enter the executor: docker+machine, kubernetes, ssh, docker-ssh, parallels, shell, virtualbox, docker-ssh+machine, docker:
kubernetes
Runner registered successfully. Feel free to start it, but if it's running already the config should be automatically reloaded!
但是当我试着运行它的时候。。。我面临着完全相同的问题

/ # gitlab-runner run
Starting multi-runner from /etc/gitlab-runner/config.toml ...  builds=0
Running in system-mode.

Configuration loaded                                builds=0
Metrics server disabled
WARNING: Checking for jobs... failed                runner=WHO_CARES? status=404 Not Found
WARNING: Checking for jobs... failed                runner=WHO_CARES? status=404 Not Found
当然,我检查了我是否可以从Runner终端访问Gitlab,它可以正常工作

/ # ping
BusyBox v1.27.2 (2018-06-06 09:08:44 UTC) multi-call binary.

Usage: ping [OPTIONS] HOST

/ # ping gitlab-ce.MY_COMAIN.com
PING gitlab-ce.MY_COMAIN.com (1.2.3.4): 56 data bytes
64 bytes from 1.2.3.4: seq=0 ttl=63 time=0.268 ms
64 bytes from 1.2.3.4: seq=1 ttl=63 time=0.261 ms
64 bytes from 1.2.3.4: seq=2 ttl=63 time=0.288 ms
^C
旁注:我正在运行OCP3.9/K8S1.9

你看到我做错了什么吗

干杯,
奥利维尔

好的。这是解决办法

问题来自
标记的奇怪行为。Gitlab中有几个
令牌
,必须小心选择要使用的令牌

这个问题也与此相关:

您必须首先使用管理员页面中可用的Runner令牌:。此令牌将在[runners.token]部分下的
config.toml
中使用

部署并启动runner

它出现在Gitlab中,但不可用。只需在管理区域中点击其名称:

在此处的详细信息中找到与此运行程序关联的令牌

将其复制回
config.toml
文件,仍然位于完全相同的[runners.token]部分下,作为替换。 重新部署你的跑步者


应该有效。

另一个选项,可以避免令牌管理,使用(2020年12月)

GitLab Runner for Red Hat OpenShift 今天提供的是的GitLab Runner容器映像

要在OpenShift上安装runner,您可以使用Red Hat的Operator Hub中的beta频道提供的新版本,这是OpenShift群集管理员发现和选择要在其群集上安装的运营商的web控制台

Operator Hub默认部署在OpenShift容器平台中。
我们计划在2021年初将GitLab Runner操作符转换为稳定通道。最后,我们还在为GitLab开发一个运营商,所以请继续关注这些公告的未来发布帖子

见和


这一点通过(2021年4月)得到了加强

使用GitLab操作符在OpenShift和Kubernetes上部署GitLab(测试版) GitLab正在努力为OpenShift提供全面支持。为了实现这一点,我们发布了MVP。运营商的目标是管理Kubernetes和OpenShift容器平台上GitLab实例的整个生命周期。
目前,这是一款新产品,不建议在生产中使用

接下来的步骤是使操作员普遍可用(GA)。未来,操作员将成为Kubernetes和OpenShift的推荐安装方法,尽管GitLab Helm图表仍将受到支持。欢迎您尝试使用此运算符和

见和


您是如何获得config.toml的令牌的?