Kubernetes 集群部署之多 Master 节点实现高可用

前言

之前我做过 单Master节点的二进制安装部署k8s服务。但是万一这台 Master 宕机了,整个服务就崩了,所以为了实现集群高可用,需要增加多台 Master 解决单点故障。

一、K8s Master 高可用架构

file

  • 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节点 实现高可用

为者常成,行者常至