如何在K8s上配置多规格GitLab Runner(小/中/大型)
配置多规格GitLab Runner的Helm Values修改方案
你可以通过把runners字段从单一对象改成数组结构,来定义多组不同规格的Runner。每组对应小型、中型、大型的配置,同时通过参数控制Runner的待命/按需启动逻辑。修改后的完整配置如下:
# 多规格Runner配置,数组形式定义每组Runner runners: # 小型Runner:随时待命,处理轻量任务 - image: "docker:20.10.16" tags: "small" privileged: true disable_cache: false cache_dir: "cache" namespace: gitlab config: | [[runners]] output_limit = 24576 [runners.kubernetes] namespace = "{{.Release.Namespace}}" cpu_limit = "2" cpu_request = "1" memory_limit = "4Gi" memory_request = "2Gi" # 保持至少1个闲置Runner待命 [runners.autoscale] min_idle_count = 1 max_idle_count = 2 # 中型Runner:处理中等负载任务 - image: "docker:20.10.16" tags: "medium" privileged: true disable_cache: false cache_dir: "cache" namespace: gitlab config: | [[runners]] output_limit = 24576 [runners.kubernetes] namespace = "{{.Release.Namespace}}" cpu_limit = "6" cpu_request = "4" memory_limit = "24Gi" memory_request = "16Gi" # 可根据需求调整闲置数量 [runners.autoscale] min_idle_count = 0 max_idle_count = 1 # 大型Runner:按需启动,闲置自动销毁,处理重型任务 - image: "docker:20.10.16" tags: "large" privileged: true disable_cache: false cache_dir: "cache" namespace: gitlab config: | [[runners]] output_limit = 24576 [runners.kubernetes] namespace = "{{.Release.Namespace}}" cpu_limit = "12" cpu_request = "8" memory_limit = "48Gi" memory_request = "32Gi" # 闲置1小时后自动销毁,无任务时不保留闲置Runner [runners.autoscale] min_idle_count = 0 max_idle_time = 3600
关键配置说明
- 多Runner区分:每组Runner通过
tags字段标记(small/medium/large),CI任务中只需指定对应tags就能调度到对应规格的Runner,比如:job: tags: [small] script: echo "运行在小型Runner上" - 小型Runner待命:通过
min_idle_count: 1确保始终有1个闲置的小型Runner,无需等待启动时间 - 大型Runner按需启动:
min_idle_count: 0+max_idle_time: 3600(1小时),无任务时不会保留闲置Runner,有任务时自动启动,闲置超时后销毁,降低闲置成本 - 资源规格调整:根据实际任务负载,修改每组Runner的
cpu_limit/cpu_request/memory_limit/memory_request参数
内容的提问来源于stack exchange,提问作者JKCL
相关产品推荐
相关产品推荐

