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

如何将部署在EKS集群上的Nginx服务对外暴露到公网?

问题排查及缺失配置说明

核心问题1:Service类型不符合公网访问需求

你当前配置的Service类型为NodePort,该类型默认仅支持通过集群节点私网IP+端口访问,不会自动分配公网访问入口,是导致公网IP无法连通的核心原因。

其他可能缺失的配置项

  • 镜像拉取网络配置:如果你的EKS节点部署在私有子网且未配置NAT网关,节点无法访问公网拉取官方Nginx镜像,会导致Pod启动失败,对应kubectl describe pods会抛出镜像拉取超时/失败报错。
  • 安全组放行规则:无论使用哪种访问方式,都需要配置对应安全组的入方向放行规则:
    • 若保留NodePort类型,需要放行EKS节点安全组的30000-32767端口段到你的客户端公网IP
    • 若更换为LoadBalancer类型,需要放行自动创建的负载均衡安全组的8080端口到公网或指定客户端IP
  • 节点公网IP配置:如果保留NodePort类型,需要确保EKS节点部署在公有子网且绑定了公网EIP,否则没有可访问的公网入口。

推荐修复方案

直接将Service类型修改为LoadBalancer,AWS EKS会自动为你创建公网负载均衡,分配公网访问域名,修改后的Service配置如下:

resource "kubernetes_service" "example" {
  metadata {
    name = "helloworld"
  }
  spec {
    selector = {
      app = "helloworld"
    }
    session_affinity = "ClientIP"
    port {
      port        = 8080
      target_port = 80
    }
    type = "LoadBalancer"
  }
}

验证步骤

  1. 配置更新后执行kubectl get svc helloworld,等待EXTERNAL-IP列返回公网域名
  2. 访问http://<返回的公网域名>:8080即可正常访问Nginx服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 07:36:04