当前位置: 首页 > 知识库问答 >
问题:

Traefik实例负载平衡到Kubernetes节点端口服务

景成和
2023-03-14

介绍:

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

当前设置

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

所以问题是:

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

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

当查看trafik文档时,它似乎需要一个入口资源来发送其流量,而入口资源需要一个入口控制器,我猜这需要一个负载平衡器才能访问?这不是违背了我的初衷吗,还是我遗漏了什么?

共有1个答案

韶浩皛
2023-03-14

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

也许你可以尝试在AWS级别上这样做?您可以在Ngin x EC2实例上添加cron作业,您可以在其中使用CLI查询AWS以获取所有标记为“k8s”的EC2实例,并在发生更改时在ngin x配置中进行更新。

 类似资料:
  • 试图自学如何使用库伯内特斯,但有一些问题。 我的下一步是尝试使用LoadBalancer类型的服务来访问nginx。 我建立了一个新的集群并部署了nginx映像。 然后,我为LoadBalancer设置服务 设置完成后,我尝试使用LoadBalancer入口(我在描述LoadBalancer服务时发现)访问nginx。我收到一个此页面无法工作的错误。 不太确定我哪里出错了。 kubectl获得sv

  • 我已经按照用户指南在库伯内特斯上实现了Traefik。这给了我一个入口控制器,我能够在80和8080上创建一个入口和traefik-ingress-service监听。 我还设置了“gce”入口: 这样做的目的是创建一个GCE负载平衡器,它终止我的TLS,并将所有请求转发给NodePort类型的traefik入口服务。 GCE负载平衡器需要进行健康检查。默认为路径“/”。我以为traefik有个“

  • 我是微服务的新手。(学习阶段)。我有一个问题。我们在云中部署微服务。(例如 AWS)。云已经提供了负载平衡和日志。我们还在Spring Boot中实现了负载平衡(功能区)和日志(Rabbit MQ和Zipkin)。这两种实现有什么区别?我们两者都需要吗?有些人可以回答这些问题吗? 提前感谢。

  • 我正在寻找一种在创建类型为loadbalancer的k8s服务后设置服务/状态/负载平衡/入口ip的方法(如下一个链接的“类型loadbalancer”部分所示https://kubernetes.io/docs/concepts/services-networking/service/ ). 我的问题与以下链接中描述的问题类似(是否可以在监视服务时更新kubernetes服务的“外部IP”)但找

  • 我有一个节点。js Express web应用程序使用默认端口3000,通过弹性ip在Ubuntu EC2实例上响应良好。我试图在AWS中设置内置的负载平衡,但似乎无法通过良好的运行状况检查 安装2个ubuntu服务器,服务器应用程序罚款在端口3000. 将端口80的负载平衡器侦听器设置为路由到实例端口3000,并尝试将3000路由到3000。 将amazon-elb/amazon-elb-sg安

  • 我正在DigitalOcean上使用CoreOs和库伯内特斯构建一个容器集群,我已经看到,为了向世界公开Pod,您必须使用Type: LoadBalancer创建一个服务。我认为这是最佳解决方案,因此您不需要在nginx或haagent等kubernetes之外添加外部负载均衡器。我想知道是否可以使用DO的浮动IP创建它。