如何通过web配置安装在kubernetes上的gitlab runner UI

How to configure gitlab runner installed on kubernetes through web UI

将自托管的 GitLab 连接到自托管的 Kubernetes 集群并通过 Web 安装 GitLab Runner 后 UI 无法配置它。

我需要添加一个配置以使其 运行 处于特权模式,但到目前为止我发现的文档仅指向 config.toml 我无法在 GitLab 上找到的文件机器或 Kubernetes 集群(另一台机器)

运行器配置缺少任何配置方式config.toml

那么如何配置从 Kubernetes 应用程序选项卡安装的 运行ner?

或者我是否需要卸载它并手动添加 运行ner 并手动配置它?

补充问题:webUI只创建一个pod,如何请求更多pods?

您将必须使用 kubectl 和 SSH 进入 gitlab runner Pod。有很多很棒的文章向您展示了如何通过 kubectl.

访问您的 Kubernetes 集群

或者您必须通过 SSH 连接到作为 运行 您的 gitlab runner pod 的节点。为此,您将再次需要 kubectl.

kubectl get ns

NAME                  STATUS   AGE
default               Active   11h
gitlab-managed-apps   Active   10h
kube-node-lease       Active   11h
kube-public           Active   11h
kube-system           Active   11h

kubectl -n gitlab-managed-apps get pod

NAME                                    READY   STATUS    RESTARTS   AGE
runner-gitlab-runner-6987ddf6b5-rgjmw   1/1     Running   0          11h

kubectl -n gitlab-managed-apps exec --stdin --tty runner-gitlab-runner-6987ddf6b5-rgjmw -c runner-gitlab-runner -- /bin/bash

config.toml 文件可以位于 following locations 容器中 runner-gitlab-runner:

  • /etc/gitlab-runner/ on *nix systems 当GitLab 运行ner以root身份执行时(这也是服务配置的路径)
  • ~/.gitlab-runner/ 在 *nix 系统上,当 GitLab 运行ner 以非 root 身份执行时
  • ./ 在其他系统上

我在 ~/.gitlab-runner/config.toml 找到了 config.toml。 运行 下面的命令,它会输出你当前的配置文件。

cat ~/.gitlab-runner/config.toml

listen_address = ":9252"
concurrent = 4
check_interval = 3
log_level = "info"

[session_server]
  session_timeout = 1800

[[runners]]
  name = "runner-gitlab-runner-6987ddf6b5-rgjmw"
  request_concurrency = 1
  url = "https://gitlab.com/"
  token = "******************"
  executor = "kubernetes"
  [runners.custom_build_dir]
  [runners.cache]
    [runners.cache.s3]
    [runners.cache.gcs]
    [runners.cache.azure]
  [runners.kubernetes]
    host = ""
    bearer_token_overwrite_allowed = false
    image = "ubuntu:16.04"
    namespace = "gitlab-managed-apps"
    namespace_overwrite_allowed = ""
    privileged = true
    service_account_overwrite_allowed = ""
    pod_annotations_overwrite_allowed = ""
    [runners.kubernetes.affinity]
    [runners.kubernetes.pod_security_context]
    [runners.kubernetes.volumes]
    [runners.kubernetes.dns_config]

当您更改大多数选项时,GitLab 运行ner 不需要重新启动。这包括 [[runners]] 部分中的参数和全局部分中的大多数参数,listen_address 除外。已经注册过的跑者无需再次注册。

GitLab 运行ner 每 3 秒检查一次配置修改,并在必要时重新加载。 GitLab 运行ner 还重新加载配置以响应 SIGHUP 信号。 2

如果您的 config.toml 不在主目录中,那么您需要获得对 运行 您的 pod 所在节点的根访问权限。您可以使用以下命令找到该节点

kubectl -n gitlab-managed-apps get pod runner-gitlab-runner-6987ddf6b5-rgjmw -o yaml | grep nodeName

 nodeName: gke-cluster-1-default-pool-1937372-fhepo

然后使用您的云提供商说明如何通过 SSH 连接到节点。