繁体   English   中英

Kubernetes裸机中的负载平衡应用程序

[英]Load Balancing Applications in Kubernetes Bare-Metal

我一直在为裸机Kubernetes集群设置Ingress控制器。 我开始研究Ingress控制器,但这些控制器似乎仅适用于可通过端口80或443访问的HTTP服务。如果需要在任意端口上公开TCP或UDP服务,则可以使用Nginx或HAProxy Ingress控制器,但群集最终共享单个端口范围。 如果我误解了,请告诉我。

如果您需要在任意端口上公开和负载平衡TCP或UDP服务,您将如何做? 我当时在考虑使用ClientIP,以便服务获得自己的VIP并可以使用所需的任何端口,但是问题就变成了,如何将流量路由到这些VIP并为其提供友好的DNS名称? 是否已经有解决方案,或者您必须自己构建? 使用NodePort或任何意味着名称空间必须共享单个端口范围的解决方案并不是真正可扩展或不可取的。 特别是如果名称空间1中的Bob绝对需要在端口8000上可以访问他的服务,而名称空间2中的Linda已经在使用该端口。

任何澄清,潜在的解决方案或总体上的帮助将不胜感激。

github问题是一本有趣的文章,有一些聪明的解决方法,例如从HTTPS开始,然后使用ALPN切换到自定义协议: https : //github.com/kubernetes/kubernetes/issues/23291,但是当然您的客户需要知道怎么做。

但是,如果使用同一端口的这些TCP和UDP服务的协议不同,并且没有互操作的方式,则入口控制器需要能够分配不同的可路由IP地址的等效项-要么与云提供商,或使用专有基础结构,但是要针对每个公开服务进行处理。

尽管我的感觉是,nginx和haproxy打包的入口控制器不会具有这种自动化功能,但我并没有仔细观察。 它必须与可用的基础架构自动化协调来构建。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM