在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
验证配置有效性
- 查看Runner Pod日志,确认无启动报错:
kubectl logs -n gitlab-runner gitlab-runner-xxxxxx-xxxxx
- 在GitLab后台查看Runner状态,确认执行器类型显示为
docker; - 提交测试Job验证:
test-docker-executor: script: - docker --version
若能正常输出Docker版本信息,说明配置生效。
内容的提问来源于stack exchange,提问作者Breaking News
相关产品推荐
相关产品推荐

