如何从公网访问Kubernetes(minikube)集群中的WordPress服务?
公网访问Kubernetes(minikube)中WordPress服务的配置方案
我来帮你一步步搞定公网访问的问题,先理清你当前的网络链路:公网用户 → 路由器(公网IP 178.54.220.175)→ 你的Linux Mint主机(192.168.1.10)→ minikube虚拟机节点(192.168.99.100:30375),我们需要打通每一层的流量转发。
第一步:搞定主机到minikube节点的端口映射
因为minikube默认是跑在虚拟机里的,和你的主机不在同一个内网网段,所以得先让主机的30375端口流量能转到minikube节点上。有两种方法:
方法一:用iptables做端口转发(推荐)
在你的Linux Mint主机上执行以下命令:
# 把主机30375端口的TCP流量转发到minikube节点的30375端口 sudo iptables -t nat -A PREROUTING -p tcp --dport 30375 -j DNAT --to-destination 192.168.99.100:30375 # 配置源地址转换,让返回流量能回到主机 sudo iptables -t nat -A POSTROUTING -p tcp -d 192.168.99.100 --dport 30375 -j SNAT --to-source 192.168.1.10 # 保存规则,防止重启主机后失效 sudo apt-get install -y iptables-persistent sudo netfilter-persistent save
方法二:通过虚拟机管理工具配置(比如VirtualBox)
如果你用VirtualBox运行minikube,直接在虚拟机的网络设置里加端口转发规则:
- 打开VirtualBox,找到minikube虚拟机 → 右键「设置」→ 「网络」→ 「高级」→ 「端口转发」
- 添加一条规则:名称随便填,主机端口填30375,子系统端口填30375,子系统IP填192.168.99.100
- 保存设置即可
第二步:配置路由器的端口转发(关键!)
公网IP 178.54.220.175是绑定在路由器上的,所以要让路由器把公网过来的30375端口流量转到你的主机192.168.1.10的30375端口。具体操作看你的路由器型号:
- 打开浏览器登录路由器管理后台(一般是192.168.1.1或192.168.0.1,账号密码在路由器背面)
- 找到「端口转发」「虚拟服务器」「NAT映射」这类选项
- 添加一条规则:
- 外部端口:30375(如果想让用户用80端口访问,这里填80更友好)
- 内部IP:192.168.1.10
- 内部端口:30375
- 协议:TCP(因为HTTP用的是TCP协议)
- 保存规则,路由器会自动生效
第三步:优化你的Kubernetes Service配置(可选但更规范)
你当前的Service里填了externalIPs字段,但这个字段是给Kubernetes节点本身拥有的IP用的,而178.54.220.175在路由器上,不是minikube节点的IP,所以这个配置其实没用,建议删掉,修改后的Service配置如下:
apiVersion: v1 kind: Service metadata: name: wordpress labels: app: wordpress spec: ports: - port: 80 nodePort: 30375 selector: app: wordpress tier: frontend type: NodePort
修改后执行kubectl apply -f <你的service文件名>.yaml更新配置即可。
第四步:验证访问是否正常
- 内网测试:在你的主机或者同一内网的其他设备上访问
http://192.168.1.10:30375,如果能打开WordPress的安装页面,说明主机到minikube的转发没问题。 - 公网测试:用手机切换到流量(不要连家里的WiFi),访问
http://178.54.220.175:30375(如果路由器设置了外部端口为80,直接访问http://178.54.220.175就行),能打开就说明整个链路通了。
额外注意事项
- 确保你的Linux Mint主机防火墙已经开放30375端口:执行
sudo ufw allow 30375/tcp,然后sudo ufw reload生效。 - 确认minikube的NodePort已经正确暴露:执行
minikube service wordpress --url,应该返回http://192.168.99.100:30375,说明minikube内部没问题。
内容的提问来源于stack exchange,提问作者Compozitor
相关产品推荐
相关产品推荐

