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

如何配置Kubernetes Pod实现跨集群节点访问

跨Kubernetes集群访问Pod的解决方案

根因说明

Kubernetes默认的Pod IP属于集群内部容器网络(CNI)的地址段,仅在当前集群内部有对应的路由规则,第二个集群的节点未配置指向该Pod CIDR的路由,因此默认无法直接连通该Pod IP。

可行配置方案

方案1:通过NodePort Service暴露(无Pod侵入、通用性最高)

不需要修改Pod的核心运行逻辑,仅需做两处调整:

  1. 给现有Pod添加标签,用于Service匹配,修改后的Pod YAML如下:
apiVersion: v1     
kind: Pod
metadata:          
  name: Serverpod
  # 新增标签段
  labels:
    app: nginx-server
spec:               
  containers:
  - name: Nginx  
    image: nginx:latest 
    ports:               
    - containerPort: 80
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - Node1
  1. 新建NodePort类型的Service,绑定该Pod:
apiVersion: v1
kind: Service
metadata:
  name: nginx-access
spec:
  type: NodePort
  selector:
    app: nginx-server
  ports:
  - port: 80
    targetPort: 80
    # 可手动指定30000-32767范围内的端口,不填则自动分配
    nodePort: 30080

配置完成后,第二个集群的节点可通过第一个集群任意节点的物理IP:30080访问Nginx服务。

方案2:配置跨集群路由(需要直接访问Pod IP时使用)

如果业务要求必须直接通过Pod IP 10.40.0.1访问,可按以下步骤配置:

  • 确认第一个集群的Pod CIDR段(示例中为10.40.0.0/对应的子网掩码段)
  • 在第二个集群的所有节点上添加静态路由,将目标地址为该CIDR段的流量下一跳指向第一个集群的CNI网关,或者Pod所在节点Node1的物理IP
  • 确认两个集群的节点物理网络三层可达,防火墙未拦截ICMP、80端口的跨集群访问

方案3:hostNetwork配置优化(你之前尝试方案的修复方式)

你之前配置hostNetwork: true不符合预期,通常是两个原因导致:一是Node1的80端口被其他进程占用,Pod启动失败;二是Node1的防火墙或集群安全组拦截了80端口的跨集群访问。修复后配置如下:

apiVersion: v1     
kind: Pod
metadata:          
  name: Serverpod  
spec:               
  hostNetwork: true # 开启宿主机网络复用
  dnsPolicy: ClusterFirstWithHostNet # 适配hostNetwork下的集群DNS解析
  containers:
  - name: Nginx  
    image: nginx:latest 
    ports:               
    - containerPort: 80
      hostPort: 80 # 绑定宿主机80端口
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: kubernetes.io/hostname
            operator: In
            values:
            - Node1

配置完成后确认Node1的80端口无占用、安全策略放通,第二个集群的节点可直接通过Node1的物理IP:80访问Nginx服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:15:02