You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab Kubernetes Agent执行kubectl get pods失败求助,同Agent下Helm命令正常

问题场景

在GitLab上使用Kubernetes Agent,按官方文档完成部署配置并配置CI/CD工作流后,单独执行kubectl get pods时出现连接拒绝错误:

E0422 15:26:07.874822      21 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E0422 15:26:07.875971      21 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E0422 15:26:07.876827      21 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E0422 15:26:07.879471      21 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
E0422 15:26:07.880885      21 memcache.go:265] couldn't get current server API group list: Get "http://localhost:8080/api?timeout=32s": dial tcp [::1]:8080: connect: connection refused
The connection to the server localhost:8080 was refused - did you specify the right host or port?

但同一项目、同一Agent下,单独执行helm命令完全正常,且在helm任务中执行相同的kubectl get pods命令也能成功:

$ kubectl get pods
NAME                                     READY   STATUS    RESTARTS   AGE
yodamad-workshop-main-6f9f6b6cf6-qhkpm   1/1     Running   0          7h46m

排查思路

  • 检查CI/CD任务的Agent上下文配置:确认单独执行kubectl的任务是否正确指定了Kubernetes Agent的上下文。GitLab CI中需要通过kubernetes:agent配置块关联Agent,确保该任务的variables或kubernetes配置里正确引用了Agent ID和项目路径,没有遗漏关键配置项。
  • 对比任务的环境变量差异:分别导出单独kubectl任务和helm任务的环境变量(比如添加env命令到任务脚本),重点查看KUBECONFIG、KUBE_CONTEXT等与kubectl配置相关的变量。helm任务中可能自动加载了Agent提供的kubeconfig,而单独kubectl任务未正确获取到该配置。
  • 验证kubectl的配置加载顺序:kubectl会优先读取KUBECONFIG环境变量指定的配置文件,其次是默认的~/.kube/config。检查单独kubectl任务中是否存在覆盖KUBECONFIG的操作,或者默认配置文件未被Agent正确生成。
  • 检查Agent的权限与版本兼容性:确认Agent的版本与GitLab实例版本匹配,避免版本不兼容导致的配置传递问题。同时检查Agent的RBAC权限,确保其有权限访问K8s API(此处连接错误更偏向配置问题,但权限异常也可能间接引发类似问题)。
  • 排查任务的执行环境隔离:GitLab CI的不同任务可能运行在不同的Runner容器中,检查单独kubectl任务使用的Runner是否与helm任务一致,或者该Runner是否缺少Agent连接所需的依赖(比如kubectl版本与Agent不兼容)。
  • 查看Agent日志:在Kubernetes集群中查看GitLab Agent Pod的日志,确认当单独执行kubectl任务时,Agent是否收到了连接请求,是否有异常日志输出,排查是否存在请求传递失败的情况。

内容的提问来源于stack exchange,提问作者yodamad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 21:20:11