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

VirtualBox虚拟机上Kubernetes集群Pod无法Ping通宿主机如何解决

解决Kubernetes Pod无法Ping通VirtualBox宿主机的配置方案

检查VirtualBox虚拟机网络模式

  • 确保Worker节点虚拟机使用桥接模式:该模式下虚拟机会直接接入宿主机所在局域网,和宿主机处于同一网段,Pod网络可直接路由到宿主机。
  • 若使用NAT模式,需额外配置VirtualBox的NAT规则,允许K8s Pod子网访问宿主机IP。

添加Worker节点路由规则

在Worker节点上手动添加指向宿主机的路由,确保Pod流量能正确转发:

# 先通过ip route show查看虚拟机网关和网卡名,比如网关为10.5.48.1,网卡为enp0s3
ip route add 10.5.48.152/32 via 10.5.48.1 dev enp0s3

若需永久生效,可将规则写入对应系统的网络配置文件:

  • CentOS/RHEL:写入/etc/sysconfig/network-scripts/route-enp0s3
  • Ubuntu:写入/etc/netplan/下的配置文件并执行netplan apply

调整宿主机防火墙规则

  • Windows宿主机:打开「Windows Defender防火墙高级设置」→「入站规则」,新建规则允许ICMPv4回显请求,来源设置为K8s Pod子网(可通过kubectl get nodes -o wide查看节点的PodCIDR)。
  • Linux宿主机:执行命令开放Pod子网的ICMP请求:
sudo iptables -A INPUT -s <Pod子网,如10.244.0.0/16> -p icmp --icmp-type echo-request -j ACCEPT
# 若使用firewalld
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="<Pod子网>" protocol value="icmp" accept' --permanent
sudo firewall-cmd --reload

检查CNI插件配置

  • 确认Flannel/Calico等CNI插件未限制Pod访问外部网络:
    • Flannel:检查kube-flannel.yml,默认配置允许外部访问,无需额外修改。
    • Calico:查看是否存在阻止Pod访问宿主机的NetworkPolicy,若有则删除或调整规则。

验证Pod网络路由

在busybox Pod中执行以下命令,确认默认路由指向Worker节点网卡:

kubectl exec --stdin --tty busybox -- ip route show

若路由缺失或指向错误,需重新部署CNI插件以生成正确的Pod路由规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 08:57:17