【问题标题】:Kubernetes (AKS) - how to load balance both TCP and UDP ports for same IP addressKubernetes (AKS) - 如何对同一 IP 地址的 TCP 和 UDP 端口进行负载平衡
【发布时间】:2021-03-24 22:57:19
【问题描述】:

我们希望在 Azure Kubernetes 服务 (AKS) 上的 Kubernetes 集群中的其他容器中运行 Wowza 流引擎。 Wowza 使用各种端口,一些使用 TCP,一些使用 UDP 协议。

我们需要将这些端口暴露给外界。我们似乎无法找到一种方法来设置可以同时转发 TCP 和 UDP 端口的负载平衡器。

在即将发布的 K8s 版本之前,LoadBalancer 服务不支持混合协议,并且在 AKS 中可用此版本之前的时间会更长:link

我们曾尝试使用 nginx-ingress,但由于底层 K8s 限制,它具有相同的限制:请参阅作者 here 的评论

根据其文档,似乎 citrix-ingress 允许这样做,但我们在让它工作时遇到了很多问题......

有没有我们可能错过的方法来做到这一点?想要确保我们没有遗漏一些明显的东西。

【问题讨论】:

    标签: kubernetes nginx-ingress wowza azure-aks


    【解决方案1】:

    这是为提高可见性而发布的社区 wiki 答案。当最终解决方案可用时,请随意编辑它(AKS 上的 k8s v1.20)。

    有一个开放的增强功能:Support of mixed protocols in Services with type=LoadBalancer #1435,它在实施时将允许创建一个LoadBalancer 服务,该服务具有不同的端口定义和不同的协议。稳定版计划用于 k8s v1.20。

    很遗憾,目前无法将 TCP 和 UDP 端口与LoadBalancer 服务一起使用。但是,当上述解决方案到位时。

    【讨论】:

    • 对此的更新:虽然所需的功能已进入 k8s v1.20,但它受到功能标志的保护。 AFAIK,AKS 不允许启用功能标志。此外,该功能处于 alpha 状态,并且看到其他一些 k8s 功能多年来一直处于 alpha 状态,我们对很快在 AKS 上默认启用此功能并不完全乐观。鉴于此,我们现在实际上已经放弃了。似乎没有任何方法可以在 AKS 上的 k8s 中运行 Wowza。
    • 计划从 1 月 14 日开始支持 Alpha 门,但与往常一样,它没有交付日期。 github.com/Azure/AKS/issues/2058
    【解决方案2】:

    您可以使用 hostNetwork 模式运行您的 pod,然后在此基础上手动设置负载平衡器或类似模式。出于安全和自动化原因,不建议这样做。

    【讨论】:

    • @user1236689 这能解决您的问题吗?
    • @WytrzymałyWiktor,不,正如 coderanger 所说,不推荐该解决方案。我们还没有找到任何解决方案,所以我们将把 Wowza 与我们的 K8s 集群分开托管,直到 Azure Kubernetes 服务上提供 1.20 版本。
    猜你喜欢
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2021-07-22
    • 2021-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    相关资源
    最近更新 更多