关于EKS中Fargate Pod与Service的IP相关问题咨询
EKS Fargate Pod & Service 访问问题解答
疑问一:Fargate Pod IP访问失败问题
执行kubectl -n my-ns describe pod mypod-5dfdf74ddf-rfs8f得到Pod IP为10.50.30.18(来自EKS绑定的私有子网CIDR),但直接curl该IP提示couldn't connect to...
Pod IP来自子网CIDR的原因
是的,这是Fargate的特性导致的。EKS Fargate模式下,Pod不会像EC2节点上的Pod那样使用容器网络插件分配的节点私有地址池,而是直接在你绑定的EKS私有子网中获取IP,每个Fargate Pod会对应一个独立的弹性网络接口(ENI)。请求被阻止的原因
并非Pod没绑定安全组——Fargate Pod会自动关联安全组(默认是EKS集群创建时的默认安全组,或是你在Fargate Profile中指定的安全组)。请求被阻止的核心原因:
- 该安全组默认未开放堡垒机所在IP段对Pod端口的入站访问权限;
- 需额外检查堡垒机是否和Pod处于同一个VPC,若不在同一VPC,要确认VPC peering或路由配置是否打通了两者的网络。
疑问二:ClusterIP访问相关问题
执行kubectl -n my-ns describe svc myservice得到Service IP为172.20.242.160
- ClusterIP的来源及查看方式
这个IP是Kubernetes的ClusterIP,来自你创建EKS集群时指定的service-cluster-ip-range网段(属于RFC1918私有地址范围),并非所谓“AWS创建的不可见VPC”——EKS完全运行在你自己提供的VPC中,没有额外的隔离VPC。
你可以通过以下AWS CLI命令查看这个网段:
aws eks describe-cluster --name <你的EKS集群名称> --query 'cluster.networkConfig.serviceIpv4Cidr'
- 堡垒机直接curl ClusterIP的方法
无需端口转发的前提下,满足以下两个条件即可访问:
- 路由打通:如果堡垒机和EKS集群在同一个VPC,EKS会自动配置ClusterIP网段的路由,无需额外操作;如果堡垒机在其他VPC,需要配置VPC peering,并在双方路由表中添加对应网段的路由条目;
- 安全组授权:
- 堡垒机的安全组需要允许出站访问ClusterIP对应的服务端口;
- Fargate Pod关联的安全组需要允许来自堡垒机IP段(或堡垒机所在安全组)的入站请求,目标端口为Pod暴露的端口。
内容的提问来源于stack exchange,提问作者Leonardo
相关产品推荐
相关产品推荐

