amazon-web-services - 通过 API Gateway 公开在 EKS 中运行的 Kubernetes 服务
问题描述
我是 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 集群的正确方法。谢谢!
解决方案
我发现了问题。使用 nginx-ingress-controller 时,我只需要指定它的类型为“nlb”的注释
service.beta.kubernetes.io/aws-load-balancer-type: nlb
一旦我使用此注释部署入口控制器,它会自动在 aws 中创建一个 nlb 并根据定义的入口设置目标!我自己创建了一个新的 nlb,然后试图指向不需要的入口控制器(也不是正确的方法)。
推荐阅读
- python-3.x - if 语句仅按特定顺序搜索值
- azure - 当 Azure 区域出现故障时,Application Insight 会发生什么。应用程序洞察力是否仍可访问
- c# - CefSharp 中的 Google 日历
- android - 如何在占位符中创建一个小加载微调器(Glide)
- r - Shinymeta:如何在模块中使用 expandChain?
- reactjs - useCallback 和 useMemo 有什么区别
- c# - 在检查器中获取当前按下的键
- c# - 如何将 Saxon XdmNode 转换为 XmlDocument?
- python - Keras CNN 用于图像转换、NAN 损失
- c - ESP32-CAM 掉帧