【问题标题】:Expose Kubernetes services running in EKS through API Gateway通过 API Gateway 暴露在 EKS 中运行的 Kubernetes 服务
【发布时间】:2020-06-09 08:12:42
【问题描述】:

我是 Kubernetes 和 AWS 的新手,正在为一个项目探索不同的 AWS 技术。作为其中一部分,我正在做的一件事是看看我们如何让 API Gateway 中的路由连接到 EKS 集群(在 VPC 中)。

这就是我的工作:

  • EKS 集群
  • 在 EKS 集群中,我正在运行 nginx 入口控制器
  • 我在 VPC 中有一个 EC2,并验证我可以使用 ingress-controller url 通过 EC2 访问集群中运行的服务

这就是我正在尝试的:

  • 我尝试使用 ingress-controller url 创建一个 API 网关路由来访问相同的服务 -> 为了实现这一点,我正在尝试这里的步骤(因为我的集群位于 VPC 中):https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-nlb-for-vpclink-using-console.html
  • 我不清楚的一点是,如何将入口控制器 URL 指定为 NLB 的目标?我可以指定的唯一目标是 EC2 实例,但我想通过入口控制器(这是 K8s 中的负载均衡器类型的服务)引导流量。

如果我这样做是错误的,请建议通过 nginx 入口控制器在 API Gateway 中公开 EKS 集群的正确方法。谢谢!

【问题讨论】:

  • 你想通过添加 API 网关来实现什么?它主要与其他无服务器服务一起使用。我认为你应该问问自己,你期望这样做有什么好处?因为它肯定会增加复杂性(如果实际使用您的项目,还会增加费用。)

标签: amazon-web-services kubernetes nginx-ingress amazon-eks nlb


【解决方案1】:

我发现了问题。使用 nginx-ingress-controller 时,我只需要指定它的类型为“nlb”的注释

service.beta.kubernetes.io/aws-load-balancer-type: nlb

一旦我使用此注解部署入口控制器,它会自动在 aws 中创建一个 nlb 并根据定义的入口设置目标!我自己创建了一个新的 nlb,然后尝试指向不需要的入口控制器(也不是正确的方法)。

【讨论】:

    猜你喜欢
    • 2020-08-11
    • 1970-01-01
    • 2016-03-25
    • 2021-08-13
    • 1970-01-01
    • 2018-11-21
    • 1970-01-01
    • 2019-06-20
    • 2020-12-17
    相关资源
    最近更新 更多