首页 文章

Kubernetes Bare-Metal中的负载 balancer 应用

提问于
浏览
1

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

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

任何澄清,潜在的解决方案或一般的帮助将非常感激 .

1 回答

  • 0

    github问题是一个有趣的读物,有一些聪明的解决方法,比如从HTTPS开始,然后使用ALPN切换到自定义协议:https://github.com/kubernetes/kubernetes/issues/23291但当然,您的客户需要知道如何做到这一点 .

    但是如果使用相同端口的这些TCP和UDP服务的协议不同并且没有办法进行互操作,那么入口控制器需要能够分配相应的不同可路由IP地址 - 或者与 Cloud 提供商分配,或者使用专有基础设施,但是根据公开的服务处理 .

    我没有密切关注,但我的感觉是来自nginx和haproxy的打包入口控制器不具备自动化功能 . 它必须与可用的基础设施自动化协调 Build .

相关问题