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

求助:Jenkins Kubernetes Credential Provider插件无法获取K8s凭证

修复Jenkins无法从Kubernetes Secrets获取凭证的问题

报错提示:无法从Kubernetes Secrets获取凭证,查看日志详情得到java.net.UnknownHostException: kubernetes.default.svc: Name or service not known,Jenkins版本2.368,Kubernetes Credentials Provider Plugin版本1.206.v7ce2cf7b_0c8b

以下是具体修复思路:

  • 检查Jenkins Pod的DNS解析能力

    1. 进入Jenkins Pod执行命令:kubectl exec -it <jenkins-pod-name> -- nslookup kubernetes.default.svc,验证域名是否能解析出对应IP
    2. 查看Pod的DNS策略:kubectl describe pod <jenkins-pod-name> | grep -i dns,确保dnsPolicy为ClusterFirst(K8s默认配置),如果配置异常,修改Jenkins Deployment的spec.template.spec.dnsPolicy为ClusterFirst后重启Pod
  • 排查集群DNS服务状态

    1. 检查CoreDNS(或kube-dns)Pod运行状态:kubectl get pods -n kube-system -l k8s-app=kube-dns,确保所有Pod处于Running状态
    2. 查看CoreDNS日志排查异常:kubectl logs -n kube-system <coredns-pod-name>,如果发现DNS服务异常,尝试重启Pod:kubectl delete pod -n kube-system <coredns-pod-name>(K8s会自动重建Pod)
  • 验证Pod网络与DNS配置文件

    1. 在Jenkins Pod内ping K8s API Server的IP(可通过kubectl cluster-info获取),确认网络连通性正常
    2. 查看Pod内的DNS配置文件:kubectl exec -it <jenkins-pod-name> -- cat /etc/resolv.conf,确保nameserver指向集群DNS服务的IP(通常是kube-system namespace下的CoreDNS ClusterIP)
  • 检查插件配置与权限

    1. 进入Jenkins系统管理→插件配置,找到Kubernetes Credentials Provider的配置项,尝试将Kubernetes API Server地址从kubernetes.default.svc替换为集群API Server的IP,测试是否能正常获取凭证
    2. 确认Jenkins使用的ServiceAccount拥有读取Secrets的权限,检查对应的ClusterRole和ClusterRoleBinding配置,确保包含secrets资源的get、list权限
  • 版本兼容性排查
    查看Kubernetes Credentials Provider Plugin的官方文档,确认当前插件版本与Jenkins 2.368是否兼容,尝试升级插件到最新稳定版,或回退到已知兼容的版本后重启Jenkins

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:45:33