极狐GitLab CI/CD 作业不运行,如何处置惩罚?

傲渊山岳  金牌会员 | 2024-9-12 17:06:09 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 847|帖子 847|积分 2541

本分分享 GitLab CI/CD Job 不工作的的故障排查方法:当 GitLab Runner 不担当 Job,Job 不停处于等待状态,如何办理此题目。
极狐GitLab 为 GitLab在中国的发行版,中文版本对于中国开辟者更友爱,和 GitLab 一样,极狐GitLab 也可以私有化部署。详情可以查看官网指南
故障背景

使用 Helm 安装了一个极狐GitLab Runner,从 Runner 的管理界面看 Runner 处于工作状态

在 Kubernetes 背景查看,Runner 的运行也正常
  1. kubectl  -n jh-gitlab-runner get pods
  2. NAME                                              READY   STATUS    RESTARTS   AGE
  3. jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm   1/1     Running   0          157m
复制代码
在项目中添加 .gitlab-ci.yml文件后,自动触发了 CI/CD 流水线,但是 Job 却不停处在等待状态

故障排查

早先没有在意这个状态,因为自部署的 runner,有时间刚开始是会出现等待中的状态,但是等了一会儿发现不对劲,不停在等待,查看 kubernetes 背景,也没见运行 Job 的动态 pod 天生。于是查看 Runner 的 pod 日记,也没发现异常:
  1. kubectl  -n jh-gitlab-runner logs -f jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm
  2. Added job to processing list                        builds=1 job=7 max_builds=10 project=2 repo_url=http://jhma.jihulab.net/root/kubernetes-agent.git time_in_queue_seconds=15
  3. Appending trace to coordinator...ok                 code=202 job=7 job-log=0-805 job-status=running runner=xRnstJB7U sent-log=0-804 status=202 Accepted update-interval=1m0s
  4. Job succeeded                                       duration_s=9.472339120000001 job=7 project=2 runner=xRnstJB7U
  5. Appending trace to coordinator...ok                 code=202 job=7 job-log=0-2737 job-status=running runner=xRnstJB7U sent-log=805-2736 status=202 Accepted update-interval=1m0s
  6. Updating job...                                     bytesize=2737 checksum=crc32:2043b475 job=7 runner=xRnstJB7U
  7. Submitting job to coordinator...ok                  bytesize=2737 checksum=crc32:2043b475 code=200 job=7 job-status=success runner=xRnstJB7U update-interval=0s
  8. Removed job from processing list                    builds=0 job=7 max_builds=10 project=2 repo_url=http://jhma.jihulab.net/root/kubernetes-agent.git time_in_queue_seconds=15
复制代码
然后怀疑是 Runner 突然“卡壳”,用 SRE 的活动准则对 Runner 进行了重启,重启之后还是一样的效果。这时间突然,脑子里灵光一现 Runner 是否担当 Job,是有一个标签选项的。标签选项是 Runner 的一个紧张功能,主要是方便用户自行分配 Runner 的使用,如许就能让 Runner 的使用效率变得更高。
于是点击查看了 Runner 的设置,一看设置还真是:

有一个选项运行未打标签的作业,这个选项并未勾选。根据字面意思就能理解这个选项的紧张性了:假如这个选项未勾选,那么 Runner 就不会运行没有打标签的 Job,说直白点就是,假如你的 .gitlab-ci.yml文件中用到了 tag 这个关键字,那么就意味着你的 CI/CD 使用了标签。这个标签要和 Runner 严格匹配,Runner 才会执行此作业。
我查看了一下 .gitlab-ci.yml文件中的描述,并没有使用 tag,也就是说没有使用标签。这个时间就确定了,该题目就是由于此选项没有勾线所致,因此立马勾选了此选项,然后进行了设置保存。
然后就看到 Job 开始运行了,而且运行乐成

在 Kubernetes 背景也看到了动态天生了 pod,然后执行完 Job 之后,pod 自动被删除
  1. kubectl  -n jh-gitlab-runner get pods
  2. NAME                                               READY   STATUS     RESTARTS   AGE
  3. jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm    1/1     Running    0          20m
  4. runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2   0/2     Init:0/1   0          1s
  5. root@xiaomage:/home/xiaomage/runner# kubectl  -n jh-gitlab-runner get pods
  6. NAME                                               READY   STATUS            RESTARTS   AGE
  7. jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm    1/1     Running           0          20m
  8. runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2   0/2     PodInitializing   0          2s
  9. root@xiaomage:/home/xiaomage/runner# kubectl  -n jh-gitlab-runner get pods
  10. NAME                                               READY   STATUS            RESTARTS   AGE
  11. jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm    1/1     Running           0          20m
  12. runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2   0/2     PodInitializing   0          3s
  13. root@xiaomage:/home/xiaomage/runner# kubectl  -n jh-gitlab-runner get pods -w
  14. NAME                                               READY   STATUS            RESTARTS   AGE
  15. jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm    1/1     Running           0          20m
  16. runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2   0/2     PodInitializing   0          4s
  17. runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2   2/2     Running           0          4s
  18. runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2   2/2     Terminating       0          9s
  19. ^Croot@xiaomage:/home/xiaomage/runner# kubectl  -n jh-gitlab-runner get pods
  20. NAME                                               READY   STATUS        RESTARTS   AGE
  21. jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm    1/1     Running       0          21m
  22. runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2   2/2     Terminating   0          25s
复制代码
故障总结

Runner 对于极狐GitLab CI/CD 来讲是非常紧张的,很多时间自建的 Runner 可以大概有更大的灵活性来运行流水线,但是往往一个小小的设置就可以大概壅闭整个工作,排查的过程还是要有章法,起首应该从设置入手,查看有些设置是否正确,其次要多看日记,从日记中发现题目,末了也是最紧张的多看官网文档、多训练,只有对 GitLab 懂的越多,故障排查也才越快。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

傲渊山岳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表