You need to enable JavaScript to run this app. 如何通过宿主机单公网IP暴露VirtualBox部署的Kubernetes集群服务
优惠活动
大模型
产品
解决方案
定价
更多

如何通过宿主机单公网IP暴露VirtualBox部署的Kubernetes集群服务

整体实现思路

你提到的在宿主机上绑定单公网IP、再打通到集群的思路是可行的,不需要给每个虚拟机单独分配公网IP。完整链路为:公网用户访问请求 -> 宿主机公网网卡接收 -> 宿主机完成流量转发/代理 -> 集群内Ingress路由匹配对应Service -> 后端Pod返回响应。

第一步:基础网络连通性校验
  • 公网IP绑定:完成宿主机公网网卡配置后,先在宿主机本地验证公网IP可正常被外部访问,排除机房/运营商侧的安全组拦截(需提前确认要开放的访问端口,即URL中的xxxx端口无被上层网络封禁)。
  • VirtualBox网段连通性:确认三台K8s节点的默认网关指向宿主机的虚拟机网段地址192.168.50.166,无VirtualBox侧防火墙拦截虚拟机到宿主机的入站流量——可在master节点上执行临时测试端口监听,从虚拟机内访问宿主机的该端口,确认连通无阻断。
第二步:集群侧服务暴露配置

因为需要实现/services路径的路由匹配,直接用NodePort暴露单个服务的方式后续维护成本高,推荐在集群内部署Nginx Ingress Controller作为统一流量入口:

  • 将Nginx Ingress Controller以NodePort模式部署到集群,记录其暴露的NodePort端口(默认端口范围30000-32767,比如分配到的端口为30080)。
  • 配置Ingress路由规则,将/services路径的请求直接关联到对应的后端业务Service,无需为每个服务单独暴露独立端口。
第三步:宿主机侧流量打通

两种可落地的配置方式,按需选择即可:

  • 方案A:宿主机本地反向代理(排查最简单,稳定性最高)
    在宿主机上安装Nginx,监听你计划对外暴露的端口(即URL中的xxxx,比如8080),将所有HTTP请求反向代理到集群内Ingress的NodePort地址,可配置三个节点的轮询转发避免单节点故障:
    server {
        listen 8080;
        location / {
            proxy_pass http://192.168.50.28:30080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    
    配置完成后重载Nginx服务即可生效。
  • 方案B:内核级端口转发(无额外代理层,转发性能更高)
    先开启宿主机的IP转发功能,编辑/etc/sysctl.conf添加net.ipv4.ip_forward=1,执行sysctl -p生效。
    再添加iptables的DNAT规则,将宿主机公网IP收到的对应端口流量直接转发到Ingress的NodePort地址,同时放开FORWARD链的转发规则,最后将规则持久化避免重启失效:
    # 将公网8080端口流量转发到master节点的Ingress NodePort
    iptables -t nat -A PREROUTING -d 140.112.1.1 -p tcp --dport 8080 -j DNAT --to-destination 192.168.50.30:30080
    # 放开转发链路
    iptables -A FORWARD -d 192.168.50.30 -p tcp --dport 30080 -j ACCEPT
    
第四步:分层排查验证

按照从内到外的顺序逐层测试,快速定位问题点:

  • 第一层:在宿主机本地执行curl http://127.0.0.1:8080/services,确认能拿到后端服务的响应,说明宿主机的代理/转发规则生效。
  • 第二层:在任意虚拟机节点上执行curl http://192.168.50.166:8080/services,确认能拿到响应,说明VirtualBox网段无流量拦截。
  • 第三层:从公网侧的独立设备执行curl http://140.112.1.1:8080/services,确认能拿到响应,说明全链路打通。

常见踩坑点:宿主机本地防火墙(firewalld/ufw)需要放开对应端口的入站规则,否则即使转发规则配置正确,公网流量也无法到达宿主机的监听服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 13:54:03