基于 LVScare 的 Kubernetes 高可用方案
在云环境中,Kubernetes 控制面的高可用通常交给云厂商的 LoadBalancer 来解决。但在以下场景中,这条路并不成立:
- 私有 IDC / 裸金属集群
- 边缘计算、离线环境
- 公有云迁回自建机房(缺少云 LB、云 SLB)
- 希望减少组件复杂度、避免引入 keepalived / VRRP
我之前有了解过 sealos,它提供了一种非常“反常规但优雅”的方案:
不做 VIP,不做 VRRP,而是用 IPVS + LVScare 在每个节点本地维护 kube-apiserver 的高可用访问能力。
本文就是在这一思路启发下,对 LVScare 作为 Kubernetes 高可用组件 的一次整理与实践总结。
传统 Kubernetes API Server 高可用方案回顾
方案一:云 LoadBalancer
优点:
- 简单、稳定
- 对使用者透明
缺点:
- 强依赖云厂商
- 私有化 / IDC 场景不可用
方案二:VRRP + keepalived(VIP)
VIP:6443
|
+----------+------------+
| |
Nginx <-keepalived-> Nginx(Backup)
|
+---+--------------------------+
| | |
apiserver apiserver apiserver问题在于:
- 需要额外的 LB 节点
- 需要维护 VRRP / VIP
- 架构组件偏重
sealos 的思路:去中心化的 API Server 高可用
sealos 提出的核心思路是:
不再提供一个“中心入口”,而是让每个节点都具备访问“所有 API Server 的能力”。