bitnamicharts/gitlab-runnerGitlab Runner 是 Gitlab 安装的辅助应用,采用 Go 语言开发,用于运行 CI/CD 作业并将结果反馈至 Gitlab。Bitnami 提供的此镜像封装了 Gitlab Runner,优化了容器化部署体验,支持通过 Helm Chart 在 Kubernetes 集群中快速部署,适用于开发和生产环境的 CI/CD 流程自动化。
通过 Helm 快速安装:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/gitlab-runner
自 2025 年 8 月 28 日起,Bitnami 将调整公共镜像目录,推出 Bitnami Secure Images 计划,重点提供安全加固镜像:
docker.io/bitnamilegacy 仓库,不再更新。详情参见 Bitnami Secure Images 公告。
在 Gitlab 实例中创建 Runner 并获取注册令牌:
Settings > CI/CD > Runners)。runnerToken)。指定 Gitlab 实例 URL 和 Runner 令牌安装:
consolehelm install my-release oci://registry-1.docker.io/bitnamicharts/gitlab-runner \ --set gitlabUrl="[***]" \ --set runnerToken="your-registration-token"
替换
your-gitlab-instance.com为实际 Gitlab 地址,your-registration-token为步骤 1 获取的令牌。
检查 Pod 状态:
consolekubectl get pods -l app.kubernetes.io/name=gitlab-runner
在 Gitlab Runner 管理面板确认 Runner 已注册并处于“在线”状态。
若需通过 Docker 直接部署(非 Kubernetes 环境):
consoledocker run -d \ --name gitlab-runner \ --restart always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /srv/gitlab-runner/config:/etc/gitlab-runner \ -e GITLAB_URL="[***]" \ -e REGISTRATION_TOKEN="your-registration-token" \ bitnami/gitlab-runner:latest
说明:
-v /var/run/docker.sock用于支持 Docker 执行器(需宿主机安装 Docker);配置文件持久化至/srv/gitlab-runner/config。
通过以下参数配置与 Gitlab 的连接:
gitlabUrl:Gitlab 实例 URL(含协议,如 [***])。runnerToken:注册令牌(或通过 existingSecret 指定存储令牌的 Secret 名称)。示例(Helm values):
yamlgitlabUrl: "[***]" runnerToken: "glrt-abc123xyz" # 或使用现有 Secret: # existingSecret: "gitlab-runner-secret" # Secret 中需包含 key 为 `runner-token` 的字段
通过 runners.config 修改 Runner 核心配置,如默认作业镜像、Kubernetes 命名空间等:
yamlrunners: config: | [[runners]] [runners.kubernetes] namespace = "{{ include "common.names.namespace" . }}" # 使用当前命名空间 image = "bitnami/os-shell:latest" # 覆盖默认作业镜像 service_account_name = "gitlab-runner-sa" # 自定义 ServiceAccount cpu_request = "100m" # 作业 CPU 请求 memory_request = "128Mi" # 作业内存请求
启用 Prometheus 指标暴露:
yamlmetrics: enabled: true # 暴露 metrics 端点 serviceMonitor: enabled: true # 创建 ServiceMonitor 供 Prometheus Operator 发现
指标通过 metrics Service 暴露,默认端口 9252,路径 /metrics。
concurrent: 10(默认最大并发作业数为 10,可根据集群资源调整)。resources 设置 Runner 自身的 CPU/内存限制:yamlresources: requests: cpu: "100m" memory: "128Mi" limits: cpu: "500m" memory: "512Mi"
yamlautoscaling: vpa: enabled: true # 自动调整 Pod 资源配置
为会话服务器(用于作业交互)配置 Ingress:
yamlsessionServer: ingress: enabled: true hostname: runner-sessions.example.com # 访问域名 tls: enabled: true # 启用 HTTPS secretName: runner-session-tls # 存储 TLS 证书的 Secret 名称
| 参数名 | 描述 | 默认值 |
|---|---|---|
global.imageRegistry | 全局 Docker 镜像仓库 | "" |
global.imagePullSecrets | 全局镜像拉取密钥(数组) | [] |
global.security.allowInsecureImages | 是否允许不安全镜像(跳过验证) | false |
global.compatibility.openshift.adaptSecurityContext | 适配 OpenShift 安全上下文(auto/force/disabled) | auto |
| 参数名 | 描述 | 默认值 |
|---|---|---|
kubeVersion | 目标 Kubernetes 版本(未设置则使用 Helm 检测值) | "" |
clusterDomain | Kubernetes 集群域名 | cluster.local |
nameOverride | 覆盖资源名称前缀 | "" |
fullnameOverride | 完全覆盖资源全名 | "" |
commonLabels | 所有资源的额外标签 | {} |
commonAnnotations | 所有资源的额外注解 | {} |
replicaCount | Runner 副本数 | 1 |
| 参数名 | 描述 | 默认值 |
|---|---|---|
concurrent | 最大并发作业数 | 10 |
checkInterval | 检查 Gitlab 作业的间隔(秒) | 3 |
logLevel | 日志级别(debug/info/warn/error) | info |
logFormat | 日志格式(runner/text/json) | runner |
unregisterRunners | 停止时是否注销 Runner | true |
shutdownTimeout | 强制关闭前的超时时间(秒) | 0 |
existingCertsSecret | 存储自定义证书的 Secret 名称(用于 Gitlab 连接) | "" |
preEntrypointScript | 入口点前执行的命令 | "" |
完整参数列表参见 Bitnami Gitlab Runner Helm Chart 文档。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务