我有一个 API,目前由我们的主要 CA 下的子域提供服务,例如api.domain.com。此 API 目前由 Nginx 入口控制器提供服务,计划用另一个入口控制器(即大使)替换它,并尽可能避免停机部署。由于我们使用的是 AWS EKS,因此我配置了以下内容:
- 一个配置为指向 Nginx 安装的 ALB
- 指向大使装置的单独目标群体
- 使用加权路由配置的 ALB 侦听器在安装之间进行循环(想法是随意增加/减少流量并监督新的入口控制器如何管理它)
- 指向负载均衡器 (api.domain.com) 的 Route53 记录集别名
- 通过 Nginx 暴露的入口与上面的记录相同(api.domain.com)
由于入口由 Kubernetes 内部 DNS 处理,我希望 LoadBalancer 将流量无缝引导到两个目标组(Nginx 和大使),但我得到的是它只将流量引导到大使目标组,而定义的目标组也作为 Nginx Ingress 规则,目前它只给出 503 Service Unavailable - 请注意,Nginx 安装可通过其他 dns 映射访问,因此一切正常。
知道我做错了什么吗?整个想法是在 LB 级别而不是 DNS 级别进行加权路由,以避免 DNS 传播问题。