直接上干货! 说明: 如果第一次注册失败, 建议删除重建, 例如我第一次注册失败runner是#9 (8GqnDO1_)
进入gitlab cicd界面, 点击 runner 部分
点击 #9 (8GqnDO1_) 进入编辑页面删除,重建runner, 复制 Runner authentication token,格式是 glrt-xxxxxxxxxxxx。
mkdir -p /root/yaml/gitlab-runner
cd /root/yaml/gitlab-runner创建 gitlab-runner-rbac.yaml:
apiVersion: v1
kind: ServiceAccount
metadata:
name: gitlab-runner
namespace: infra
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: gitlab-runner
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: gitlab-runner
namespace: infra创建 gitlab-runner-configmap.yaml(把 glrt-xxxxxxxxxxxx 替换成你gitlab实际 token):
apiVersion: v1
kind: ConfigMap
metadata:
name: gitlab-runner-config
namespace: infra
data:
config.toml: |
concurrent = 10
check_interval = 3
log_level = "info"
[[runners]]
name = "k8s-runner"
url = "https://gitlab.philentso.com"
token = "glrt-xxxxxxxxxxxx"
executor = "kubernetes"
[runners.kubernetes]
namespace = "infra"
image = "alpine:latest"
privileged = true
pull_policy = ["if-not-present", "always"]
[runners.kubernetes.affinity]
[runners.kubernetes.node_selector]
[runners.kubernetes.volumes]
[[runners.kubernetes.volumes.host_path]]
name = "docker-sock"
mount_path = "/var/run/docker.sock"
host_path = "/var/run/docker.sock"创建 gitlab-runner-deployment.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: gitlab-runner
namespace: infra
spec:
replicas: 1
selector:
matchLabels:
app: gitlab-runner
template:
metadata:
labels:
app: gitlab-runner
spec:
serviceAccountName: gitlab-runner
containers:
- name: gitlab-runner
image: gitlab/gitlab-runner:v17.11.1
imagePullPolicy: IfNotPresent
command: ["/bin/sh", "-c"]
args:
- |
cp /config/config.toml /etc/gitlab-runner/config.toml
gitlab-runner run --user=gitlab-runner --working-directory=/home/gitlab-runner
volumeMounts:
- name: config
mountPath: /config
readOnly: true
- name: runner-home
mountPath: /home/gitlab-runner
resources:
requests:
cpu: "100m"
memory: "128Mi"
limits:
cpu: "500m"
memory: "512Mi"
volumes:
- name: config
configMap:
name: gitlab-runner-config
- name: runner-home
emptyDir: {}kubectl apply -f gitlab-runner-rbac.yaml
kubectl apply -f gitlab-runner-configmap.yaml
kubectl apply -f gitlab-runner-deployment.yaml
# 查看 runner pod 状态
kubectl get pod -n infra -l app=gitlab-runner
# 查看日志确认注册成功
kubectl logs -n infra -l app=gitlab-runner -f日志里看到类似下面说明注册成功:
Configuration loaded builds=0 max_builds=10
Checking for jobs... nothing runner=8GqnDO1_刷新 https://gitlab.philentso.com/admin/runners,状态从 Never contacted 变成 Online 即成功。
最后gitlab界面成功注册展示

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。