Gitlab:如何使用/切换可用性很高的组跑步者

Posted

技术标签:

【中文标题】Gitlab:如何使用/切换可用性很高的组跑步者【英文标题】:Gitlab: How to use/switch the group runners which are much availability 【发布时间】:2021-12-21 04:51:11 【问题描述】:

我的项目有以下三个可用的跑步者

如何利用这三个跑步者

1) runner1(abacd232323)
instance-abcfdd-.....
2)1) runner2(aba22211111)
instance-abasasddasd-....
3)runner3(dfdsffdfdg324324)
instance-.....

下面有简单的 gitlab-ci.yml 文件

stages:          # Runs First - Anything that needs to run prior to your scripts running
  - deploy
  - Script

variables:
  Domain:
    value: "dom"
  HOST_NAME:
    value: ""  
  JAVA_FILES_WITH_ARGS:
    value: ""

Run Python:
  stage: deploy
  script:  (./script.sh Git=True Cron=False Detail=NA)

如果跑步者完全被占用,我想要这个,然后它可以切换到另一个空闲的跑步者

或者说 2 个工作同时使用一个跑步者,那么我的工作应该使用另一个完全免费的跑步者。 我怎样才能做到这一点

【问题讨论】:

在项目的 CI/CD 设置中显示的跑步者是否可用?如果是这样,它们是否设置为仅在标记的管道上运行? “全部使用”是什么意思? -- 你看到的行为是什么? 实际上每个工作使用一个跑步者我可以使用另一个有很多可用性的跑步者 【参考方案1】:

听起来您有 3 个已注册的跑步者,并且您想使用可用的跑步者,而不管它在哪台机器上运行。

执行此操作的正确方法是让所有 3 名跑步者收听相同的 tag。跑步者可以监听多个tag 值;当您注册跑步者时,您会传入一个逗号分隔的标签列表以供跑步者收听。所以你的设置可能看起来像这样:

runner1:
  tags:
    - "my-runner"
    - "runner1"
runner2:
  tags:
    - "my-runner"
    - "runner2"
runner3:
  tags:
    - "my-runner"
    - "runner3"

然后,如果您想使用任何可用的跑步者,请指定my-runner 标签,所有 3 名跑步者都在听。如果您有一些仅安装在 runner2 上的东西,因此必须使用该实例,那么您指定 runner2 标记,它将等待该 runner 可用。并不是说跑步者不优先考虑标签,所以 runner2 不会优先考虑只有它可以运行的作业,而不是任何其他跑步者可以运行的作业。

或者,您可以考虑使用自动缩放运行器,如果/当您用完容量时,只需启动额外的运行器机器即可解决您的容量问题(假设您在云中,并且可以执行类似的操作更容易)。

【讨论】:

以上是关于Gitlab:如何使用/切换可用性很高的组跑步者的主要内容,如果未能解决你的问题,请参考以下文章

GitLab:无法注册跑步者(使用正确的令牌!) - 干净/最新的 docker install

mac 中kernel task 内存占用很高的问题

Redis Sentinel 实现高可用

gitlab同步AD中的组

Gitlab-Runner:与多个跑步者一起运行同一个作业

如何设置GitLab +运行器来缓存Docker层