Kubernetes 集群部署之多 Master 节点实现高可用
前言
之前我做过 单Master节点的二进制安装部署k8s服务。但是万一这台 Master 宕机了,整个服务就崩了,所以为了实现集群高可用,需要增加多台 Master 解决单点故障。
一、K8s Master 高可用架构
- Keepalived + Load Balancer : LB 可以是 LVS、Haproxy 或 Nginx,结合 keepalived 实现负载均衡高可用。
- Load Balancer 服务 接受前台用户发送过来的 kubectl 等请求,再通过反向代理转发到后台的 Master 节点上面,
- 单节点的话,多台 Node 直接指向 一台Master 节点;而多Master集群结构中,Master 会指向 Load Balancer 服务,请求都来自负载均衡服务,所以LB要做高可用。
- Master 的 Apiserver 都指向 Keepalived 的虚拟 IP上
- Master 上通过 Apiserver 直接 操作 Node 节点上的 kubelet,不需要再通过 VIP 的负载均衡转发。Node 节点会由 Master 管理实现高可用。
- 首先 ETCD 集群实现 去中心化高可用(奇数台机器),通过 Raft 算法保持数据库数据一致性。
由于LVS 消耗资源,我们用 keeplived,实现负载均衡高可用。
相关文章:
Kubernetes 集群部署 之 多Master节点 实现高可用
为者常成,行者常至
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)