首页 文章

Traefik实例负载均衡到Kubernetes NodePort服务

提问于
浏览
1

Intro:

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

Current setup

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

So the question is:

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

听起来很简单吧? ;-)

在查看Træfik文档时,它似乎想要一个入口资源来发送它的trafik,并且入口资源需要一个入口控制器,我想,这需要一个负载均衡器才能访问?这不是打败了目的,还是有什么我想念的?

1 回答

  • 2

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

    也许您可以尝试在AWS级别上执行此操作?您可以在Nginx EC2实例上添加cron作业,您可以使用CLI为所有标记为“k8s”的EC2实例查询AWS,如果更改了某些内容,则在nginx配置中进行更新 .

相关问题