通过快速阅读Kubernetes文档,我注意到kube-proxy充当Level-4代理,并且可能对TCP / IP流量(通常是HTTP流量)很好地起作用。
但是,还有其他协议,例如SIP(可以通过TCP或UDP协议),RTP(可以通过UDP协议)以及核心电信网络信令协议,例如DIAMETER(通过TCP或SCTP协议)或类似的M3UA(通过SCTP协议)。在Kubernetes奴才中运行的应用程序中是否有办法处理此类流量?
在我的阅读中,我遇到了Kuberntes的Ingress API的概念,但是我知道这是扩展代理功能的一种方式。那是对的吗 ?
另外,确实存在当前尚无Ingress API的已知实现(开源或闭源),该实现可以允许Kubernetes集群处理上面列出的流量类型?
最后,除了使用Ingress API之外,即使有性能限制,也没有办法处理上面列出的流量吗?
另外,确实存在当前尚无Ingress API的已知实现(开源或闭源),该实现可以允许Kubernetes集群处理上面列出的流量类型?
大概是这个IBM在IBM Voice Gateway上进行的“设置高可用性”研究
(此处带有SIP(会话发起协议),如OpenSIPS)
Kubernetes部署
在Kubernetes术语中,单个语音网关实例等同于单个吊舱,其中包含SIP Orchestrator容器和Media Relay容器。
语音网关Pod被安装在Kubernetes群集中,该群集由外部SIP负载平衡器作为前端。
通过Kubernetes,可以将语音网关Pod安排为在VM群集上运行。该框架还监视Pod,并且可以配置为在检测到故障时自动重新启动语音网关Pod。注意:由于当前不支持Kubernetes中由SIP负载平衡器自动缩放和自动发现新Pod,因此需要外部SIP。
并且,为了说明Kubernetes的局限性:
由于语音网关使用的协议,因此在Kubernetes环境中运行IBM Voice Gateway时,除了部署典型的基于HTTP的应用程序外,还需要特别注意事项。
语音网关依赖于SIP协议进行呼叫信令,而RTP协议则依赖于媒体,这两者都需要与特定语音网关实例的关联。为了避免破坏会话亲缘关系,必须为这些协议绕过Kubernetes入口路由器。
要解决入口路由器的限制,必须在主机网络模式下配置语音网关容器。
在主机网络模式下,当在任何一个语音网关容器中打开端口时,那些相同的端口也会被打开并映射到基础虚拟机或节点上。
该配置还消除了在Kubectl配置文件中定义媒体端口范围的需要,而Kubernetes当前不支持该文件。在主机网络模式下,每个节点仅部署一个Pod,以确保SIP和媒体端口在主机VM上打开并且对SIP负载平衡器可见。
此答案中最好地说明了为Kubernetes设置的网络配置,它描述了pod /节点通信中涉及的元素:
| 归档时间: |
|
| 查看次数: |
2496 次 |
| 最近记录: |