高可用 Kubernetes 集群能够确保应用程序在运行时不会出现服务中断,这也是生产的需求之一。为此,有很多方法可供选择以实现高可用。本教程演示了如何配置 Keepalived 和 HAproxy 使负载均衡、实现高可用。步骤如下:

  • 准备主机。
  • 配置 Keepalived 和 HAproxy。
  • 使用 KubeKey 创建 Kubernetes 集群。

集群架构

示例集群有三个主节点,三个工作节点,两个用于负载均衡的节点,以及一个虚拟 IP 地址。本示例中的虚拟 IP 地址也可称为“浮动 IP 地址”。这意味着在节点故障的情况下,该 IP 地址可在节点之间漂移,从而实现高可用。

集群架构

请注意,在本示例中,Keepalived 和 HAproxy 没有安装在任何主节点上。但您也可以这样做,并同时实现高可用。然而,配置两个用于负载均衡的特定节点(您可以按需增加更多此类节点)会更加安全。这两个节点上只安装 Keepalived 和 HAproxy,以避免与任何 Kubernetes 组件和服务的潜在冲突。

准备主机

IP 地址

主机名

角色

192.168.1.241

lb1

Keepalived & HAproxy

192.168.1.242

lb2

Keepalived & HAproxy

192.168.1.243

master1

master, etcd,worker

192.168.1.244

master2

master, etcd,worker

192.168.1.245

master3

master, etcd,worker

192.168.250

虚拟 IP 地址

操作系统基础配置

(1) 配置主机名:

hostnamectl hostname master1