【问题标题】:Traefik instance loadbalance to Kubernetes NodePort servicesTraefik 实例负载均衡到 Kubernetes NodePort 服务
【发布时间】:2018-09-21 06:42:10
【问题描述】:

简介:

在 AWS 上,负载均衡器很昂贵(每月 20 美元 + 使用量),因此我正在寻找一种方法来实现 k8s 节点之间的灵活负载均衡,而无需支付这笔费用。负载并没有那么大,所以我很快就不需要 AWS 负载均衡器的可扩展性。我只需要服务即可。我可以以每月 3.5 美元的价格获得一个小型 EC2 实例,该实例可以轻松处理当前流量,所以我现在正在寻找这个选项。

当前设置

目前,我已经设置了一个常规的独立 Nginx 实例(在 k8s 之外),它在我的集群中的节点之间进行负载平衡,所有服务都设置为通过 NodePorts 公开。这非常有效,但是每当我的集群拓扑在重启、添加、重启或删除节点期间发生变化时,我必须手动更新 Nginx 实例上的上游配置,这远非最佳,因为不能期望集群节点留在周围永远。

所以问题是:

可以在 Kubernetes 之外设置 Trækfik 以在 Kubernetes 节点之间进行简单的负载平衡,就像我的 Nginx 设置一样,但保持 traefik 配置的上游/后端服务器与 Kubernetes 节点列表同步,这样我的当我更改节点设置时,Kubernetes 服务仍然是 HA?我真正需要的是让 Træfik 监听 Kubernetes API 并在集群发生变化时更改后端服务器。

听起来很简单,对吧? ;-)

在查看 Træfik 文档时,它似乎想要一个入口资源将其流量发送到,而一个入口资源需要一个入口控制器,我猜这需要一个负载均衡器才能访问?这不是违背了目的,还是我遗漏了什么?

【问题讨论】:

    标签: nginx kubernetes traefik traefik-ingress


    【解决方案1】:

    这里有一些对你的情况有用的东西https://github.com/unibet/ext_nginx,但我注意到项目是否仍在开发中,配置可能很困难,因为你需要允许外部入口访问内部 k8s 网络。

    也许您可以尝试在 AWS 级别上执行此操作?您可以在 Nginx EC2 实例上添加 cron 作业,在该实例中使用 CLI 查询 AWS 以获取所有标记为“k8s”的 EC2 实例,并在发生更改时更新 nginx 配置。

    【讨论】:

      猜你喜欢
      • 2022-10-23
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-29
      • 2021-03-17
      相关资源
      最近更新 更多