Spring Cloud Kubernetes容器HTTP代理配置异常求助
Spring Cloud Kubernetes 代理配置导致SSL握手失败的解决方法
检查Java全局非代理参数格式
Java的http.nonProxyHosts参数分隔符是竖线|,不是逗号!如果用逗号分隔,Java会把整个字符串当成单个主机名,完全不会生效。正确的配置示例:-Dhttp.nonProxyHosts=localhost|127.0.0.1|kubernetes.default.svc|*.cluster.local|10.0.0.0/8务必把K8s集群内部的服务域名(如
kubernetes.default.svc)、集群IP段、Pod所在子网都加入列表,确保K8s客户端访问内部API的请求不走代理。单独禁用Kubernetes客户端的代理
即使设置了全局非代理,Spring Cloud Kubernetes的客户端仍可能继承全局代理设置,直接禁用客户端代理更稳妥:# 禁用HTTP代理 spring.cloud.kubernetes.client.proxy.http.enabled=false # 禁用HTTPS代理 spring.cloud.kubernetes.client.proxy.https.enabled=false配置后,K8s客户端的所有内部请求都会绕过代理,不受全局Java代理参数影响。
核对Spring Cloud Kubernetes的非代理配置
若不想完全禁用代理,需确保spring.cloud.kubernetes.client.no-proxy包含所有K8s内部地址,示例:spring.cloud.kubernetes.client.no-proxy=localhost,127.0.0.1,kubernetes.default.svc,*.cluster.local,10.0.0.0/8注意这里用逗号分隔,和Java全局参数的格式不同,别混淆。
Fabric8客户端额外配置(若使用)
如果基于Fabric8实现K8s客户端,可单独配置它的非代理列表:fabric8.kubernetes.client.proxy.non-proxy-hosts=localhost,127.0.0.1,kubernetes.default.svc,*.cluster.local
内容的提问来源于stack exchange,提问作者Keith Bennett
相关产品推荐
相关产品推荐

