aws private eks,如何向 public 公开服务
aws private eks, how to expose service to public
我通过 terraform 创建了一个私有的 eks 集群,我按照这个页面的指南:https://tf-eks-workshop.workshop.aws/500_eks-terraform-workshop.html,网络架构如下:
然后我在 eks 集群中部署了我的 web 应用程序,该应用程序只访问 aws 资源,因此它按预期工作,但问题是 eks 在私有 vpc 中,并且 internet alb 无法附加到它,所以我无法从 public 网络浏览器访问我的应用程序,有什么想法可以实现它吗?
我已经在 eks vpc 和 cicd vpc 之间设置了 vpc peerring。
对于应用程序部署部分,我创建了一个服务,类型是 NodePort
不幸的是这里的指南 link 没有为我打开,从 VPC 图看来你在你的 VPC 中有一个用于 EKS 的私有子网,你可以执行以下操作 -
使用 ALB Ingress 创建私有 Ingress 资源(用于根据集群内服务内的主机名路由流量)- https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html
然后将流量从 Route53 路由到 Internal LB,如果仍然无法访问,则在默认 VPC 中附加一个 LB,并将其传递给 Internal Ingress Controller。从逻辑上讲应该可行。
如果 SG 开放,同一 VPC 中的 EC2 可以相互通信,因此按照该逻辑将流量从 Public 子网转发到私有应该不是问题。
我通过 terraform 创建了一个私有的 eks 集群,我按照这个页面的指南:https://tf-eks-workshop.workshop.aws/500_eks-terraform-workshop.html,网络架构如下:
然后我在 eks 集群中部署了我的 web 应用程序,该应用程序只访问 aws 资源,因此它按预期工作,但问题是 eks 在私有 vpc 中,并且 internet alb 无法附加到它,所以我无法从 public 网络浏览器访问我的应用程序,有什么想法可以实现它吗?
我已经在 eks vpc 和 cicd vpc 之间设置了 vpc peerring。 对于应用程序部署部分,我创建了一个服务,类型是 NodePort
不幸的是这里的指南 link 没有为我打开,从 VPC 图看来你在你的 VPC 中有一个用于 EKS 的私有子网,你可以执行以下操作 -
使用 ALB Ingress 创建私有 Ingress 资源(用于根据集群内服务内的主机名路由流量)- https://docs.aws.amazon.com/eks/latest/userguide/alb-ingress.html
然后将流量从 Route53 路由到 Internal LB,如果仍然无法访问,则在默认 VPC 中附加一个 LB,并将其传递给 Internal Ingress Controller。从逻辑上讲应该可行。
如果 SG 开放,同一 VPC 中的 EC2 可以相互通信,因此按照该逻辑将流量从 Public 子网转发到私有应该不是问题。