私有子网中的 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 网关与负载均衡器和私有子网一起使用时的奇怪行为