在k8s中将gitlab-runner的运行pod调度到指定节点

本篇和前面的 基于helm的方式在k8s集群中部署gitlab 具有很强的关联性,因此如果有不明白的地方可以查看往期分享:

文章目录

    • [1. 背景](#1. 背景)
    • [2. 配置](#2. 配置)
      • [step1: 在集群上打标签](#step1: 在集群上打标签)
      • [step2: 修改gitlab的values文件](#step2: 修改gitlab的values文件)
      • [step3: 配置生效](#step3: 配置生效)
      • [step4: 验证](#step4: 验证)

1. 背景

  • 在某些场景下,我们在使用kubernetes作为gitlab-runner的执行器的时候,希望将ci文件运行的runner pod调度到指定的节点上,便于运行某些job,如调度到有gpu资源上的node。
  • 对此,我们可以使用gitlab-runner的高级配置,使用node_selector关键字可以将runner运行的pod调度到某个节点上。
  • 参考文档:gitlab-runner高级配置

2. 配置

step1: 在集群上打标签

master节点打上runner_node=M1,slave节点打上runner_node=S1

bash 复制代码
kubectl label nodes k8s-master01 runner_node=M1
kubectl label nodes k8s-worker01 runner_node=S1

step2: 修改gitlab的values文件

添加 [runners.kubernetes.node_selector]配置,并配置指定调度的label的key和value

复制代码
gitlab-runner:
  ...
  ...
  runners:
    ...
    config: |
      [[runners]]
        [runners.kubernetes]
        ...
        {{- if .Values.global.minio.enabled }}
        [runners.cache]
          ...
          [runners.cache.s3]
            ...
          [runners.kubernetes.node_selector]
            runner_node = "S1"
        {{ end }}

step3: 配置生效

执行helm upgrade命令

复制代码
helm upgrade  gitlab gitlab-jh/gitlab --version 7.3.6 --timeout 600s --set certmanager.install=false --set global.ingress.configureCertmanager=false  --set global.ingress.tls.enabled=true --set gitlab.webservice.ingress.tls.secretName=gitlab-jihulab-cn-ssl --set registry.ingress.tls.secretName=registry-jihulab-cn-ssl --set minio.ingress.tls.secretName=minio-jihulab-cn-ssl --values values.yaml -n jihulab

step4: 验证

运行gitlab-ci流水线,通过命令查看runner的运行pod在哪个节点上;以下分别是调度到master节点和slave节点的展示

相关推荐
我不会起名字32214 小时前
K8s Ingress 返回 502 但后端日志正常:4 类上游断连与排查链
kubernetes·k8s·ingress·502·keepalive
我不会起名字32219 小时前
Pod 一直 Pending:调度器 5 类失败原因与 kubectl describe 的正确读法
云原生·kubernetes·调度·排查
我不会起名字3221 天前
K8s 服务 DNS 解析偶发 5 秒超时:conntrack 与 ndots 的 3 个坑
kubernetes·k8s·dns·conntrack·coredns
七夜zippoe1 天前
把 OpenClaw Agent 搬进 K8s:容器化部署全记录
ai·云原生·容器·kubernetes·openclaw
March.s2 天前
Kubernetes 全景导览:从部署演进到云原生底座
云原生·kubernetes·dubbo
熊出没2 天前
云原生架构落地实践:Kubernetes 生产级配置与 Service Mesh 流量治理
云原生·架构·kubernetes·istio
东风微鸣2 天前
K8s 最佳实践已更新:请使用 Node Swap!
kubernetes
励志师code2 天前
Kubernetes 集群节点生命周期管理实战:从扩容、调度管控到证书续期
运维·docker·容器·kubernetes·gpu算力·kubelet
闲云自留地2 天前
Kubernetes 安装保姆级:关 swap、装 containerd、init 集群、calico 一篇通
容器·贪心算法·kubernetes