有没有办法在 Kubernetes 中处理 SIP、RTP、DIAMETER、M3UA 流量?
回答问题 通过快速阅读 Kubernetes 文档,我注意到 kube-proxy 的行为类似于 4 级代理,并且可能适用于 TCP/IP 流量(通常是 HTTP 流量)。 但是,还有其他协议,如 SIP(可以通过 TCP 或 UDP)、RTP(通过 UDP)和核心电信网络信令协议,如 DIAMETER(通过 TCP 或 SCTP)或类似的 M3UA(通过 SCTP)。有没有办法在 Kuberne
回答问题
通过快速阅读 Kubernetes 文档,我注意到 kube-proxy 的行为类似于 4 级代理,并且可能适用于 TCP/IP 流量(通常是 HTTP 流量)。
但是,还有其他协议,如 SIP(可以通过 TCP 或 UDP)、RTP(通过 UDP)和核心电信网络信令协议,如 DIAMETER(通过 TCP 或 SCTP)或类似的 M3UA(通过 SCTP)。有没有办法在 Kubernetes minion 中运行的应用程序中处理此类流量?
在我的阅读中,我遇到了 Kubernetes 的 Ingress API 的概念,但我理解它是一种扩展代理功能的方法。那是对的吗 ?
此外,目前确实没有已知的 Ingress API 实现(开源或闭源),可以允许 Kubernetes 集群处理上述类型的流量?
最后,除了使用 Ingress API 之外,有没有办法处理上面列出的流量,即使它有性能限制?
Answers
另外,目前确实没有已知的 Ingress API 实现(开源或闭源),可以允许 Kubernetes 集群处理上述类型的流量?
大概和这个IBM 研究 IBM Voice Gateway “设置高可用性”
(这里使用SIP(会话发起协议),像 OpenSIPS)
Kubernetes 部署
在 Kubernetes 术语中,单个语音网关实例等同于单个 pod,其中包含 SIP Orchestrator 容器和 Media Relay 容器。
语音网关 pod 安装到 Kubernetes 集群中,该集群前面有一个外部 SIP 负载均衡器。
通过 Kubernetes,可以安排语音网关 pod 在虚拟机集群上运行。该框架还监视 Pod,并且可以配置为在检测到故障时自动重启语音网关 Pod。
注意:因为当前不支持 Kubernetes 中的 SIP 负载均衡器自动扩展和自动发现新 Pod,所以使用外部 SIP。
并且,为了说明 Kubernetes 的局限性:
由于语音网关使用的协议,在 Kubernetes 环境中运行 IBM Voice Gateway 需要除部署典型的基于 HTTP 的应用程序之外的特殊注意事项。
语音网关依赖于呼叫信令的 SIP 协议和媒体的 RTP 协议,两者都需要与特定语音网关实例的亲和性。为避免破坏会话亲和性,必须为这些协议绕过 Kubernetes 入口路由器。
要解决入口路由器的限制,必须在主机网络模式下配置语音网关容器。
在主机网络模式下,当在任一语音网关容器中打开端口时,这些相同的端口也会打开并映射到基本虚拟机或节点上。
此配置还省去了在 kubectl 配置文件中定义媒体端口范围的需要,目前 Kubernetes 不支持。在主机网络模式下每个节点仅部署一个 Pod 可确保 SIP 和媒体端口在主机 VM 上打开并且对 SIP 负载均衡器可见。
为 Kubernetes 部署的网络配置在这个答案中得到了最好的说明,它描述了 pod/node-communication 中涉及的元素:
更多推荐
所有评论(0)