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

GKE集群预留静态IP绑定常规实例后80/443端口无法访问求助

排查GKE常规实例绑定静态IP后无法访问80/443的问题

让我帮你梳理几个GKE里很容易踩的坑,大概率是这些配置遗漏了:

  • 常规实例所在节点池的HTTP/HTTPS权限没开启
    你之前配置抢占式实例时可能默认开了相关权限,但新建的常规实例节点池说不定没勾选这个选项。去GKE控制台找到对应的节点池,查看「安全」或「访问权限」板块里是否允许HTTP(80)和HTTPS(443)流量;也可以用gcloud命令直接查配置:

    gcloud container node-pools describe [你的节点池名称] --cluster [你的集群名称]
    

    看输出里的enableHttpLoadBalancing和enableHttpsLoadBalancing是不是true,要是false就修改开启。

  • 静态IP的类型和实例不匹配
    GKE的静态IP分区域IP和全局IP两种:区域IP只能绑定同区域的实例,全局IP只能用于负载均衡服务,不能直接挂到单个节点上。你可以检查下抢占式和常规实例是否在同一区域,或者是不是误把全局IP直接绑定到了常规实例上——后者肯定会导致访问失败,得通过负载均衡转发流量才行。

  • 防火墙规则的目标标签没覆盖常规实例的节点标签
    虽然你说配置了宽松的防火墙规则,但GKE会自动给不同节点池的节点添加专属标签,比如gke-[集群名]-[节点池名]-node这类格式。说不定你的防火墙规则只添加了抢占式实例的节点标签,没包含常规实例的?用命令查一下:

    gcloud compute firewall-rules describe [你的防火墙规则名]
    

    看targetTags里有没有常规实例节点池的标签,没有的话补上就行。

  • 常规实例上的kube-proxy未正常运行
    kube-proxy负责节点的端口转发工作,如果它的Pod挂了,外部流量就无法正常进入节点。用这条命令检查节点上的kube-proxy状态:

    kubectl get pods -n kube-system -o wide | grep kube-proxy | grep [常规实例节点名]
    

    要是状态不是Running,尝试重启kube-proxy或者直接重启节点试试。

另外,你可以先测试直接访问常规实例的内部IP能不能打开80/443端口:如果内部能通,那基本就是外部IP绑定或防火墙标签的问题;如果内部也不通,那就是节点本身的服务或组件出了问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:29:19