You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在K8s上配置GitLab Runner:更换默认Kubernetes执行器为Docker执行器遇阻

在Kubernetes上通过Helm配置GitLab Runner使用Docker执行器

要替换默认的Kubernetes执行器为Docker执行器,你需要调整Helm values.yaml中的runner核心配置,同时配置必要的容器权限与挂载项,以下是完整的配置步骤:

1. 覆盖Runner配置块

在values.yaml中找到config字段,完整替换[[runners]]配置块,明确指定executor: docker并添加Docker执行器的关键参数:

config: |
  [[runners]]
    name = "Docker Runner on Kubernetes"
    url = "https://你的GitLab实例地址/"
    token = "你的Runner注册令牌"
    executor = "docker"
    [runners.docker]
      image = "ubuntu:22.04"  # 替换为你常用的基础镜像
      privileged = true       # 必须开启,否则容器内无法运行Docker守护进程
      volumes = ["/cache", "/var/run/docker.sock:/var/run/docker.sock"]
    [runners.cache]
      Type = "local"  # 可选,根据缓存需求配置,也可使用S3等远程存储
      Path = "cache"
      Shared = true

关键说明:privileged: true赋予容器特权权限,挂载/var/run/docker.sock让容器共享宿主机的Docker守护进程,这两项是Docker执行器正常工作的核心前提。

2. 配置Pod级别的挂载

在values.yaml中添加volume与volumeMount配置,确保Pod能访问宿主机的Docker套接字:

volumeMounts:
  - name: docker-sock
    mountPath: /var/run/docker.sock

volumes:
  - name: docker-sock
    hostPath:
      path: /var/run/docker.sock
      type: Socket

3. 清理Kubernetes执行器残留配置

如果你的values.yaml中保留了Kubernetes执行器的专属配置(比如kubernetes字段下的内容),请删除或注释掉这些内容,避免配置冲突:

# 注释或删除以下Kubernetes执行器相关配置
# kubernetes:
#   namespace: "{{ .Release.Namespace }}"
#   image: "ubuntu:22.04"

4. 安装/升级Runner实例

使用调整后的values.yaml执行Helm命令完成部署:

helm upgrade --install gitlab-runner gitlab/gitlab-runner \
  -f 你的自定义values.yaml路径 \
  -n gitlab-runner \
  --create-namespace

验证配置有效性

  1. 查看Runner Pod日志,确认无启动报错:
kubectl logs -n gitlab-runner gitlab-runner-xxxxxx-xxxxx
  1. 在GitLab后台查看Runner状态,确认执行器类型显示为docker;
  2. 提交测试Job验证:
test-docker-executor:
  script:
    - docker --version

若能正常输出Docker版本信息,说明配置生效。

内容的提问来源于stack exchange,提问作者Breaking News

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 11:40:31