记录在k8s中安装gitlab-runner的过程
先决条件
- 您的 GitLab 服务器的 API 可从集群访问。
- 启用了 Beta API 的 Kubernetes 1.4+。
- CLI在
kubectl本地安装并针对集群进行了身份验证。
- Helm 客户端本地安装在您的计算机上。
Helm Chart 准备
添加 GitLab Helm 存储库
1
2
3
4
5
6
7
8
9
|
helm repo add gitlab https://charts.gitlab.io
helm repo list
NAME URL
gitlab https://charts.gitlab.io/
##可以将gitlab-runner的helm包拉下来
helm fetch gitlab/gitlab-runner
tar xf gitlab-runner-0.45.0.tgz
|
配置自定义的values.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
imagePullPolicy: IfNotPresent
gitlabUrl: "https://jh-xiaomage.gitlab.cn" #设置为自己的gitlab地址
runnerRegistrationToken: "sFV-HEkLC_NgH2vLALfG" #填写对应的注册令牌
concurrent: 10
checkInterval: 30
logLevel: info
rbac:
create: true
metrics:
enabled: false
runners:
config: |
[[runners]]
[runners.kubernetes]
namespace = "{{.Release.Namespace}}"
image = "ubuntu:20.04"
[[runners.kubernetes.volumes.host_path]]
name = "docker"
mount_path = "/var/run/docker.sock"
host_path = "/var/run/docker.sock"
privileged: "true"
name: kubernetes-runner
tags: "kubernetes,runner"
securityContext:
runAsUser: 100
# runAsGroup: 65533
fsGroup: 65533
|
重要参数说明:
- gitlabUrl:GitLab 实例的 URL(本例为 https://jh-xiaomage.gitlab.cn );
- runnerRegistrationToken:注册 Runner 时所需要的 Token,可以在 Settings –> CI/CD –> Runners 里面查看;
- concurrent:并行运行 Job 的最大值;
- checkInterval:GitLab 实例检查新构建的时间间隔;
- runner:runner 的配置内容,包括 name,tag 等等,这些内容最后会以
config.toml 文件的形式呈现;
Helm 安装
进行安装
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# 先创建namespace
kubectl create ns devops
#安装
helm upgrade --install gitlab-runner -n devops -f values-pro.yaml ./gitlab-runner
......
Release "gitlab-runner" does not exist. Installing it now.
NAME: gitlab-runner
LAST DEPLOYED: Wed Sep 28 13:53:47 2022
NAMESPACE: devops
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Your GitLab Runner should now be registered against the GitLab instance reachable at: "http://xxxxxxxxxx/"
Runner namespace "devops" was found in runners.config template.
|
查看pod状态
1
2
3
|
kubectl get pods -n devops
NAME READY STATUS RESTARTS AGE
gitlab-runner-6c5b6bd5d6-tkpdc 1/1 Running 0 19s
|
此时可以去gitlab页面的runner查看一下,已经有新的runner注册上了
runner测试使用
这里使用在 Ubuntu 上安装使用极狐GitLab Runner中的 Demo。对应的 .gitlab-ci.yml如下
1
2
3
4
5
6
7
8
9
10
11
|
stages:
- build
build:
stage: build
tags:
- kubernetes
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE:2.0.0 .
- docker push $CI_REGISTRY_IMAGE:2.0.0
|
接着直接出发 CI/CD Pipeline 即可,查看构建结果:
查看构建日志

可以看到此次构建是在名为 kubernetes-runner 的 Runner 上进行的。
参考链接
极狐gitlab
gitlab
config.toml
k8s runner