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

Kubernetes集群配置no_proxy:如何设置不破坏内部通信的取值?

在Kubernetes Pod中配置no_proxy以保留内部通信

好问题!当你给Pod配置HTTP/HTTPS代理时,no_proxy的设置直接关系到Kubernetes内部服务的正常通信——要是漏了关键值,Pod连不上API Server、无法访问内部Service都是常有的事。我结合实际经验整理了必加的核心值,以及场景化的补充项:

必须包含的核心值

这些是不管集群配置如何都建议加上的基础项:

  • localhost,127.0.0.1:Pod内部的本地调用绝对不能走代理,否则本地进程间通信会失效
  • kubernetes.default.svc:你提到的默认Kubernetes API服务,是Pod与集群控制平面通信的核心入口
  • kubernetes.default.svc.cluster.local:上述服务的完整FQDN形式,部分场景下Pod会优先使用这个域名访问API Server
  • 集群的Service CIDR:比如Kubeadm默认的10.96.0.0/12,所有内部Service的IP都在这个网段里,必须排除在代理之外
  • 集群的Pod CIDR:比如Flannel默认的10.244.0.0/16,确保Pod之间的直接通信不经过代理

场景化补充项

根据你的集群自定义配置,还可以添加以下内容:

  • 自定义集群域名后缀:如果你的集群用了非默认的域名后缀(比如mycorp.cluster),添加.mycorp.cluster就能排除所有该后缀的内部域名
  • 节点IP段:如果Pod需要直接访问节点上的服务(比如NodePort、本地存储端点),可以把节点的IP网段加入no_proxy
  • 关键组件的固定IP/域名:比如CoreDNS、Etcd的专属地址,确保这些核心组件的通信不受代理影响

示例配置(Deployment片段)

下面是一个实际可用的环境变量配置示例,你可以根据自己集群的CIDR调整:

spec:
  containers:
  - name: your-app-container
    image: your-app-image
    env:
      - name: HTTP_PROXY
        value: "http://your-proxy-server:8080"
      - name: HTTPS_PROXY
        value: "http://your-proxy-server:8080"
      - name: NO_PROXY
        value: "localhost,127.0.0.1,kubernetes.default.svc,kubernetes.default.svc.cluster.local,10.96.0.0/12,10.244.0.0/16,.mycorp.cluster"

小技巧:获取集群CIDR

如果你不确定自己集群的Service/Pod CIDR,可以用以下命令查询:

# 查询Service CIDR
kubectl cluster-info dump | grep -A5 -B5 "service-cluster-ip-range"
# 查询Pod CIDR
kubectl cluster-info dump | grep -A5 -B5 "cluster-cidr"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:30:10