TG客服:@SSjiejie — 官方频道:@SSwangluo
三生网络 © 2009-2023 超15年出海经验,跨境项目专家
本文旨在描述如何部署 VoltMesh 集群,以充当部署至现有 Kubernetes 基础架构中的出海应用工作负载的高可用型Ingress 和 Egress Controller。
本文提供了两种设计方式:
设计一利用 BGP (Calico) 实现最佳负载均衡性能,同时提供最大冗余
设计二利用 NodePort 服务实现最大兼容性,但负载均衡特性欠佳,出口流量可能会丢失冗余
在此设计中,将 1 个三节点 VoltMesh 集群部署至现有 Kubernetes 集群前端,并安装Calico CNI 网络插件,以便为应用工作负载提供进出流量路由和网络安全防护。尽管这一解决方案设计侧重于 Calico,但也可在未封装的情况下替代其他支持 BGP 的 CNI 插件。
您可以通过 Volterra 服务发现与 Kubernetes API 服务器的集成自动发现应用端点,从而执行实时检测。随着应用工作负载不断横向扩展和收缩,这些应用端点或 Pod IP 将自动在 VoltMesh 源池中进行添加和删除,有助于实现零接触负载均衡器重新配置。
通过服务发现识别应用 Pod IP 后,VoltMesh 集群和应用 Pod 之间的 3 层路由将通过 Pod IP 路由的 BGP 通告启用。该集群中的所有 VoltMesh 节点将直接对等互连 Calico 节点,或通过中间的“架顶式”路由器对等互连。VoltMesh 支持eBGP 和 iBGP 对等互连。
在直接对等互连 VoltMesh 节点与 Calico 节点时,请务必注意 VoltMesh 不是路由反射器服务器 —Calico 节点之间的内部对等互连对于在 Kubernetes 集群内共享 Pod IP 信息必不可少,这样方可避免向每个 Pod 到 Pod 请求添加额外的跳数,甚至破坏 Pod 到 Pod 通信。内部对等互连可通过全网状部署(适用于小规模部署)或通过充当路由反射器的指定Calico 节点(适用于大中规模部署)实现。
为了针对应用工作负载启用 VoltMesh Egress Controller 功能,VoltMesh 集群需要检查离开 Kubernetes 集群的所有流量,以便在 3、4 和 7 层应用可配置的安全策略。
如果直接对等互连 VoltMesh 节点与 Calico 节点,则集群中的单个 VoltMesh 节点将成为所有离开 Kubernetes 集群的流量的默认网关或“下一跳”。默认路由通过 BGP 从 VoltMesh 集群通告给所有 Kubernetes 节点,并由 Calico 安装至主机操作系统。如果用作默认网关的 VoltMesh 节点因任何原因发生故障,VoltMesh 集群均可检测到,并通过 BGP 自动将新的网关地址传播到 Kubernetes 节点。
通过中间路由器对等互连 VoltMesh 节点可以在 VoltMesh 集群和路由器之间创建等价多路径 (ECMP) 路由,以支持出口流量通过所有三个 VoltMesh 节点而非单个节点进行路由,从而充分利用全主配置,而非主/备/备配置。由 VoltMesh 集群通过 BGP 传播的默认网关不会通告给 Kubernetes 节点,每个 Kubernetes 节点的下一跳仍然是路由器。
虚拟 IP 或 VIP 均被用于部署在 VoltMesh 集群上的所有 HTTP(S) 和 TCP 负载均衡器。当一个 VoltMesh 节点发生故障时,每个 VIP 均可使用 VRRP 实现高可用性,并通过 BGP 进行通告。
这一设计能够为关键任务应用提供高可用性和容错性,是推荐的部署配置。
TG客服:@SSjiejie — 官方频道:@SSwangluo
三生网络 © 2009-2023 超15年出海经验,跨境项目专家