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

如何配置Kubernetes集群Egress访问VPN内主机?Network Policies是否适用?

问题解答

Kubernetes Network Policies 是否是合适方案?

是的,Network Policies 是解决这个问题的原生且合适的方案——它是 Kubernetes 官方提供的流量控制机制,能够精确管控 Pod 的出向(Egress)和入向(Ingress)流量,符合最小权限原则。不过有个前提:你的集群所使用的 CNI 插件必须支持 Network Policies(比如 Calico、Cilium、Weave Net 等;Flannel 默认不支持,需额外配置)。


配置 Egress 规则的步骤

1. 先验证基础网络可达性

在配置 Network Policy 之前,必须确保集群节点本身能访问 VPN 内的目标主机:

  • 登录任意集群节点,执行 ping <目标主机IP> 确认连通性
  • 执行 telnet <目标主机IP> <目标端口> 确认端口可访问

如果节点都无法访问,先排查 VPN 路由、防火墙等底层网络问题,再进行后续配置。

2. 编写 NetworkPolicy 配置文件

根据你的应用标签、目标主机信息,编写如下 YAML 配置(按需替换占位符):

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-egress-to-vpn-host
  namespace: your-app-namespace  # 替换为应用所在的命名空间
spec:
  # 选择需要允许出向流量的 Pod(通过标签匹配)
  podSelector:
    matchLabels:
      app: your-app-label  # 替换为你的 Pod 标签
  policyTypes:
    - Egress
  egress:
    # 规则1:允许访问目标VPN主机的指定端口
    - to:
        - ipBlock:
            cidr: 192.168.100.5/32  # 替换为目标主机IP,/32表示单个IP;若为网段则用如192.168.100.0/24
      ports:
        - protocol: TCP  # 若为UDP则改为UDP
          port: 8080     # 替换为目标主机的服务端口

    # 规则2(可选):如果应用需要通过主机名访问目标主机,需允许DNS解析流量
    - to:
        - namespaceSelector:
            matchLabels:
              kubernetes.io/metadata.name: kube-system
          podSelector:
            matchLabels:
              k8s-app: kube-dns
      ports:
        - protocol: UDP
          port: 53
        - protocol: TCP
          port: 53

3. 应用配置并验证

  • 执行命令应用 NetworkPolicy:
    kubectl apply -f allow-egress.yaml
    
  • 进入应用 Pod 内部,测试访问目标主机:
    kubectl exec -it <你的Pod名称> -n <命名空间> -- curl http://<目标主机IP>:<端口>
    

额外注意事项

  • 如果你的集群有默认拒绝所有 Egress的 NetworkPolicy,必须确保上述规则包含所有必要的出向流量(比如DNS、其他依赖服务);若默认是允许所有Egress,仅需添加针对目标主机的规则即可。
  • 多个 NetworkPolicy 会叠加生效,确保没有其他规则覆盖当前配置。
  • 若使用服务网格(如 Istio),可结合网格的 Egress 规则实现更细粒度的控制,但原生 NetworkPolicy 已满足基础需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 09:55:24