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

Kubernetes裸机中的负载平衡应用

华子航
2023-03-14

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

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

共有1个答案

陶永望
2023-03-14

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

但是,如果使用相同端口的这些TCP和UDP服务的协议不同,并且没有互操作的方式,那么入口控制器需要能够为每个公开的服务分配一个不同的可路由IP地址--或者与云提供商分配,或者与专有的基础设施分配,不管如何处理。

我没有仔细看过,但我的感觉是,nginx和haproxy的打包入口控制器不会有这种自动化。它必须与现有的基础设施自动化协调建设。

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

  • 我正在尝试运行一个连接到部署pod的简单负载平衡服务器。 我安装了Docker for Mac edge版本。 问题是,当我尝试向公开的负载均衡器urlhttp://localhost:8081/api/v1/posts/health发出GET请求时,出现的错误是: org.apache.http.localhost:8081响应失败 做的时候: 我得到: 很明显,服务正在运行,但localhos

  • 堆栈:Azure Kubernetes服务 NGINX Ingress Controller-https://github.com/Kubernetes/ingress-nginx AKS LoadBalancer Docker容器 我的目标是创建一个K8s集群,它将允许我在一个IP下使用多个POD,创建一个微服务架构。在使用了大量的教程和文档之后,我的EndGoal没有任何运气。我已经到了能够使

  • 我有两条溪流。一个是事件流,另一个是数据库更新流。我想用从DB更新流构建的信息丰富事件流。 事件流非常庞大,使用5个字段进行分区。这给了我很好的分配。DB流不那么喋喋不休,并且使用两个字段进行分区。我目前正在使用两个公共字段连接这两个流,并使用flapMap来丰富第一个流。flatMap运算符使用ValueState维护状态,状态由两个公共字段自动键入。 除了实现自定义逻辑来手动提取键并更新维护状

  • 我目前正在从服务结构切换到Kubernetes,并想知道如何进行定制和更复杂的负载平衡。 到目前为止,我已经读到库伯内特斯提供“服务”,为隐藏在它们后面的豆荚做负载平衡,但这只能以更简单的方式提供。 我现在要在Service Fabric中重写的内容如下所示: 我有这个界面: 在我的ASP中跟踪帐户的上下文。Net应用程序,例如继承此。然后,我编写了一些代码,到目前为止,这些代码将通过服务结构集群