私有子网中的 EKS,公共子网中的负载均衡器

Posted

技术标签:

【中文标题】私有子网中的 EKS,公共子网中的负载均衡器【英文标题】:EKS in private Subnet , Load Balancer in public subnet 【发布时间】:2019-05-30 08:14:36 【问题描述】:

我在私有子网中运行 EKS,因此无法创建面向 Internet 的负载均衡器,但能够创建内部负载均衡器。

有什么方法可以在公共子网中创建负载均衡器(可能是手动)并指向私有子网中 EKS 中运行的 pod。

我正在考虑创建负载平衡器链,其中外部负载平衡器将指向内部负载平衡器,但这也是不可能的,因为内部负载平衡器的 IP 地址是保留 IP。

我可以尝试其他方式将流量从互联网路由到 Pod 吗?

【问题讨论】:

我正在尝试在 EKS 中获取主节点的 IP 地址,如果我能够获得相同的地址,那么我可以公开一个节点端口并放置一个指向主节点 IP 地址的负载均衡器。暴露的 dns 名称表明主节点不是私有子网的一部分 【参考方案1】:

我遇到了同样的问题,这是因为我没有正确标记 VPC 子网: https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html

我必须将密钥:kubernetes.io/cluster/eks-cluster-name 值:shared 标签添加到 VPC

然后您可以使用类型为 LoadBalancer 的服务创建 LB

apiVersion: v1
kind: Service
metadata:
  name: helloworld
  labels:
    app: helloworld
spec:
  ports:
  - port: 80
    targetPort: 8080
  selector:
    app: helloworld
  type: LoadBalancer

这可能在服务创建过程中有所帮助:https://blog.giantswarm.io/load-balancer-service-use-cases-on-aws/

【讨论】:

以上是关于私有子网中的 EKS,公共子网中的负载均衡器的主要内容,如果未能解决你的问题,请参考以下文章

用于微服务的私有子网 ecs 连接上负载均衡器的 AWS API 网关

如何将面向公众的负载均衡器连接到私有 VPC 中的 EC2 实例

VPC 中的 Elastic Beanstalk 应用程序无法公开访问

AWS VPC:将 NAT 和 Internet 网关与负载均衡器和私有子网一起使用时的奇怪行为

AWS 负载均衡器运行状况检查:运行状况检查失败,代码如下:[301]

VPC 中私有子网中 EC2 实例的 Amazon ELB