首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >注册k8s runner

注册k8s runner

原创
作者头像
philentso
修改2026-06-14 15:20:10
修改2026-06-14 15:20:10
980
举报
文章被收录于专栏:philentsophilentso

直接上干货! 说明: 如果第一次注册失败, 建议删除重建, 例如我第一次注册失败runner是#9 (8GqnDO1_)

第一步 删除 #9 (8GqnDO1_) 然后再创建

进入gitlab cicd界面, 点击 runner 部分

点击 #9 (8GqnDO1_) 进入编辑页面删除,重建runner, 复制 Runner authentication token,格式是 glrt-xxxxxxxxxxxx

第二步:创建 Runner 配置

代码语言:javascript
复制
mkdir -p /root/yaml/gitlab-runner
cd /root/yaml/gitlab-runner

创建 gitlab-runner-rbac.yaml

代码语言:javascript
复制
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):

代码语言:javascript
复制
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

代码语言:javascript
复制
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: {}

第三步:部署

代码语言:javascript
复制
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

日志里看到类似下面说明注册成功:

代码语言:javascript
复制
Configuration loaded                    builds=0 max_builds=10
Checking for jobs... nothing            runner=8GqnDO1_

第四步:回到 GitLab 确认 Runner 上线

刷新 https://gitlab.philentso.com/admin/runners,状态从 Never contacted 变成 Online 即成功。

检验

最后gitlab界面成功注册展示

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步 删除 #9 (8GqnDO1_) 然后再创建
  • 第二步:创建 Runner 配置
  • 第三步:部署
  • 第四步:回到 GitLab 确认 Runner 上线
  • 检验
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档