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

如何解决Minikube两个Kubernetes集群间Ingress访问被拒绝问题?

跨Minikube集群访问Ingress的问题解决步骤

1. 验证集群间基础网络连通性

  • 从目标集群的任意Pod中,ping另一个集群的网桥IP(比如从virbr1网段的Pod ping 192.168.50.1):
    kubectl exec -it <你的Pod名称> -- ping 192.168.50.1
    
  • 如果ping不通,先排查主机防火墙是否拦截了跨网桥流量,暂时关闭防火墙测试(比如sudo systemctl stop firewalld或sudo ufw disable)。

2. 确认Ingress的实际监听状态

  • 获取每个集群的Minikube节点IP:
    minikube -p <集群Profile名称> ip
    
  • 在主机上测试Ingress端口的连通性(以80端口为例):
    nc -zv <Minikube节点IP> 80
    
  • 再从另一个集群的Pod中执行同样的nc命令,确认端口是否可达。

3. 为集群节点添加跨网段路由

Minikube节点默认没有到另一个集群网段的路由,需要手动添加:

  • 进入第一个集群的节点:
    minikube -p <profile1> ssh
    
  • 添加到第二个集群网段的路由:
    sudo ip route add 192.168.50.0/24 via 192.168.39.1
    
  • 同理,进入第二个集群节点,添加到第一个集群网段的路由:
    minikube -p <profile2> ssh
    sudo ip route add 192.168.39.0/24 via 192.168.50.1
    

4. 调整防火墙规则(可选,若关闭防火墙后正常)

如果关闭防火墙后连通性恢复,添加永久允许规则:

  • 以firewalld为例:
    sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.39.0/24" destination address="192.168.50.0/24" accept' --permanent
    sudo firewall-cmd --reload
    
  • 以ufw为例:
    sudo ufw allow from 192.168.39.0/24 to 192.168.50.0/24
    sudo ufw allow from 192.168.50.0/24 to 192.168.39.0/24
    

5. 配置Ingress域名解析

如果使用域名访问Ingress,需在Pod内配置hosts映射:

  • 进入Pod编辑hosts文件:
    kubectl exec -it <你的Pod名称> -- bash -c 'echo "<目标集群MinikubeIP> <Ingress域名>" >> /etc/hosts'
    
  • 之后再尝试访问Ingress域名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 07:16:29