AI 摘要
在Rocky9上安装指定版本GitLab Runner,覆盖官方仓库配置、版本匹配、注册为shell/docker/kubenetes实例,并重点说明kubenetes场景的secret创建与helm部署,以及双侧重注销的正确方法。
一、环境准备
需要
gitlab版本保持一致。
1.1 介绍
代码集成。
1.2 规划
| 主机名 | ip | 系统版本 | 用途 |
|---|---|---|---|
| gitlab-runner | 192.168.10.15 | Rocky9 | gitlab-runner |
二、安装
- 添加官方仓库
1 | curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash |
- 显示所有的版本
1 | dnf list gitlab-runner --showduplicates |
- 查看当前
gitlab的版本
1 | gitlab-rake gitlab:env:info |
- 安装指定版本的
runner
1 | dnf install gitlab-runner-19.2.2-1 -y |
三、注册
3.1 介绍
按照可使用的范围,可以分为
- 全局,整个
gitlab可以使用 - 群组,群组内的项目可以使用
- 项目,仅当前项目可以使用
按照执行任务的方式,可以分为多种
- shell
- docker
- kubenetes
- ……
一个机器安装好 runner 后,可以注册成多个 实例。
shell、docker 比较简单,交互式创建即可,着重记录下在 kubenetes 上的使用.
3.2 kubenetes
因为 k8s 上没有
gitlab-runner命令来注册,需要把 token 保存成 secret
secret 的创建
- 新建一个 runner,或者 toekn
- 创建命名空间
1 | kubectl create namespace gitlab-runner |
创建
secret- gitlab 认证令牌
1
2
3kubectl -n gitlab-runner create secret generic gitlab-runner-secret \
--from-literal=runner-token='glrt-hjOnwhQbnJ0FCREEXNmrFG86MQpwOjIKdDozCnU6Mw8.01.17003ao2s' \
--from-literal=runner-registration-token=''- 自建 ca 证书
1
2kubectl -n gitlab-runner create secret generic gitlab-ca \
--from-file=gitlab.qx.lab.crt=/root/root_ca.crt- harbor 拉去凭证
1
2
3
4kubectl -n gitlab-runner create secret docker-registry harbor-cred \
--docker-server=harbor.qx.lab \
--docker-username='robot$gitlab-runner' \
--docker-password='BE8bh8kWIY3Cgb2ooMTIa9DkizDM4gsc'验证创建好了 secret
1 | kubectl -n gitlab-runner get secret |
最小可用的 values.yaml
1 | vim gitlab-runner-value.yaml |
1 | # gitlab-runner-value.yaml |
- helm安装
1 | helm repo add gitlab https://charts.gitlab.io |
四、注销
4.1 介绍
这是最容易踩坑的地方——注销这件事有两侧:
| 是什么 | 删掉的后果 | |
|---|---|---|
| GitLab 侧 | 界面 Runners 列表里那条记录 | job 不会再派给它 |
| 机器侧 | config.toml 里的 [[runners]] 配置块 |
进程不再去轮询 |
只删一边会留下半残状态:
- 只在界面上删:机器上的 runner 进程不知情,会继续每隔几秒去问 GitLab “有活吗”,然后收到 401,日志里刷一堆错误。GitLab 官方也承认这是个待改进的点。
- 只在机器上删:界面上会留一条永远离线的僵尸记录。
所以正确姿势是从机器侧发起注销,它会同时通知 GitLab 并清理本地配置。
4.2 Shell / Docker 注销
web 上删除
runner 侧删除
先看看这台机器上注册了哪些:
1 | gitlab-runner list |
输出类似:
1 | shell-runner Executor=shell Token=glrt-xxxx URL=https://gitlab.qx.lab/ |
注销单个(按名字,最常用):
1 | gitlab-runner unregister --name shell-runner |
按令牌注销:
1 | gitlab-runner unregister --url https://gitlab.qx.lab/ --token glrt-xxxx |
全部注销:
1 | gitlab-runner unregister --all-runners |
跑完再 gitlab-runner list 确认,同时看一眼 /etc/gitlab-runner/config.toml,对应的 [[runners]] 块应该没了。
4.3 Kubenetes
- helm 删除 gitlab runner 组件
- web 删除 gitlab runner
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 一世贪欢的私域!
评论










