论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
云原生
›
极狐GitLab CI/CD 作业不运行,如何处置惩罚? ...
极狐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 的运行也正常
kubectl -n jh-gitlab-runner get pods
NAME READY STATUS RESTARTS AGE
jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm 1/1 Running 0 157m
复制代码
在项目中添加 .gitlab-ci.yml文件后,自动触发了 CI/CD 流水线,但是 Job 却不停处在等待状态
故障排查
早先没有在意这个状态,因为自部署的 runner,有时间刚开始是会出现等待中的状态,但是等了一会儿发现不对劲,不停在等待,查看 kubernetes 背景,也没见运行 Job 的动态 pod 天生。于是查看 Runner 的 pod 日记,也没发现异常:
kubectl -n jh-gitlab-runner logs -f jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm
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
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
Job succeeded duration_s=9.472339120000001 job=7 project=2 runner=xRnstJB7U
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
Updating job... bytesize=2737 checksum=crc32:2043b475 job=7 runner=xRnstJB7U
Submitting job to coordinator...ok bytesize=2737 checksum=crc32:2043b475 code=200 job=7 job-status=success runner=xRnstJB7U update-interval=0s
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 自动被删除
kubectl -n jh-gitlab-runner get pods
NAME READY STATUS RESTARTS AGE
jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm 1/1 Running 0 20m
runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2 0/2 Init:0/1 0 1s
root@xiaomage:/home/xiaomage/runner# kubectl -n jh-gitlab-runner get pods
NAME READY STATUS RESTARTS AGE
jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm 1/1 Running 0 20m
runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2 0/2 PodInitializing 0 2s
root@xiaomage:/home/xiaomage/runner# kubectl -n jh-gitlab-runner get pods
NAME READY STATUS RESTARTS AGE
jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm 1/1 Running 0 20m
runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2 0/2 PodInitializing 0 3s
root@xiaomage:/home/xiaomage/runner# kubectl -n jh-gitlab-runner get pods -w
NAME READY STATUS RESTARTS AGE
jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm 1/1 Running 0 20m
runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2 0/2 PodInitializing 0 4s
runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2 2/2 Running 0 4s
runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2 2/2 Terminating 0 9s
^Croot@xiaomage:/home/xiaomage/runner# kubectl -n jh-gitlab-runner get pods
NAME READY STATUS RESTARTS AGE
jh-gitlab-runner-gitlab-runner-5c558fb88b-lnfxm 1/1 Running 0 21m
runner-xrnstjb7u-project-2-concurrent-0-y0idxyf2 2/2 Terminating 0 25s
复制代码
故障总结
Runner 对于极狐GitLab CI/CD 来讲是非常紧张的,很多时间自建的 Runner 可以大概有更大的灵活性来运行流水线,但是往往一个小小的设置就可以大概壅闭整个工作,排查的过程还是要有章法,起首应该从设置入手,查看有些设置是否正确,其次要多看日记,从日记中发现题目,末了也是最紧张的多看
官网文档
、多训练,只有对 GitLab 懂的越多,故障排查也才越快。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
傲渊山岳
金牌会员
这个人很懒什么都没写!
楼主热帖
MySQL max() min() 函数取值错误
2022你不容错过的软件测试项目实战(we ...
SQL Server创建表
Swift之Codable自定义解析将任意数据类 ...
K8S 性能优化 - K8S APIServer 调优 ...
全球各类卫星遥感图像的下载方法汇总 ...
2022年春节后这波疫情对于国内SAP咨询 ...
MySQL数据库-数据表
【云原生】Docker的安装与使用(适用于 ...
变量的定义和使用
标签云
挺好的
服务器
快速回复
返回顶部
返回列表