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

Kubeadm搭建的GCE Kubernetes集群无法通过Ingress实现外部IP域名映射

根因说明

你部署的裸金属版本Nginx Ingress Controller默认未绑定GCE节点的公网IP,导致Ingress资源只能获取到集群内部IP,外部流量无法通过域名路由到Ingress Controller。

解决方案
  • 方案1:手动配置Ingress Controller绑定公网IP
    执行命令编辑Ingress Controller的Service配置:

    kubectl edit svc ingress-nginx-controller -n ingress-nginx
    

    在spec字段下添加你的GCE节点公网IP作为外部IP,示例配置:

    spec:
      externalIPs:
        - 你的GCE节点公网IP
    

    保存修改后等待约1分钟,执行kubectl get ingress my-ingress即可看到ADDRESS列显示你配置的公网IP。

  • 方案2:通过NodePort临时验证连通性
    裸金属版本的Ingress Controller默认会为80、443端口映射NodePort,执行以下命令查询对应的端口:

    kubectl get svc ingress-nginx-controller -n ingress-nginx
    

    直接访问http://sample.com:<80端口对应的NodePort>或https://sample.com:<443端口对应的NodePort>即可验证Ingress规则是否生效。

  • 方案3:适配GCE云环境自动分配公网IP
    给集群配置GCE Cloud Provider支持后,将Ingress Controller的Service类型改为LoadBalancer,GCE会自动为你分配公网负载均衡IP,Ingress资源会自动绑定该公网IP,无需手动配置。

验证排查步骤
  • 配置完成后确认kubectl get ingress my-ingress的ADDRESS列已显示公网IP
  • 本地执行curl -H "Host: sample.com" http://<公网IP>,确认返回应用的正常响应
  • 确认GCE防火墙规则已开放80、443端口的入站访问权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 05:39:04