GitLab Runner Job属何种K8s对象?求New Relic可视化协助
GitLab Runner Job对应的K8s对象及New Relic可视化方案
一、GitLab Runner Job的K8s对象类型
- GitLab Runner在K8s Executor模式下,每个CI/CD任务(即GitLab Runner Job)会触发创建Kubernetes Job对象,而非Deployment、Pod或StatefulSet。K8s Job专为一次性任务设计,正好匹配CI任务“执行完成即终止”的特性,Job会自动管理底层Pod的创建、运行与清理。
- 补充:GitLab Runner自身的实例若部署在K8s集群中,通常使用Deployment来管理(因为需要长期运行的守护进程,支持自动扩缩容和故障恢复),但这和CI任务对应的Job是两个不同层面的对象。
二、New Relic中可视化GitLab Runner Pod的操作步骤
1. 基础前提
确保已完成New Relic的K8s集群集成,New Relic能够采集到集群内的Pod、Job等资源数据。
2. 筛选目标Pod
GitLab相关Pod分为两类,可通过标签或名称筛选:
- GitLab Runner自身的Pod:通常带有
app=gitlab-runner标签 - CI任务生成的Pod:由K8s Job创建,带有
runner=<RunnerID>、job=<JobID>或gitlab-runner=true这类标签(具体标签可根据你的Runner配置调整)
3. 用NRQL构建可视化查询
以下是常用的NRQL查询示例,可在New Relic的查询编辑器中使用:
- 统计所有GitLab相关Pod数量随时间变化:
FROM K8sPod SELECT count(*) TIMESERIES 5 MINUTES WHERE clusterName = "你的集群名称" AND (labels.app = 'gitlab-runner' OR labels.runner != '') - 区分Runner实例与CI任务Pod分别统计:
FROM K8sPod SELECT count(*) FACET CASE WHEN labels.app = 'gitlab-runner' THEN 'Runner实例Pod' ELSE 'CI任务Pod' END TIMESERIES 5 MINUTES WHERE clusterName = "你的集群名称"
4. 构建仪表盘
将上述查询生成的图表添加到自定义仪表盘,可按需调整时间范围、聚合粒度,实现长期监控。
内容的提问来源于stack exchange,提问作者Kingsley Okoro
相关产品推荐
相关产品推荐

