在CentOS7上用kubeadm HAProxy Keepalived 安装多Master节点的高可用Kubernetes集群

本文介绍了如何在CentOS7上使用kubeadm、HAProxy和Keepalived搭建多Master节点的高可用Kubernetes集群。详细步骤包括资源规划、部署负载均衡服务器、初始化集群、安装网络组件等,并提供了故障排查指南和参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在CentOS7上用kubeadm HAProxy Keepalived 安装多Master节点的高可用Kubernetes集群

前言

之前写过一篇文章使用kubeadm一键部署kubernetes集群 v1.10.3 v1.11.0 v1.13.0 和编写了一个一键部署单Master节点的Kubernetes集群的开源项目k8s-deploy

现在Kubernetes已更新到v1.19,所以重新更新了k8s-deploy项目,支持部署多Master节点的高可用Kubernetes集群。

在正式安装前,推荐先阅读k8s-deploy项目和Troubleshooting中的常见问题。

官方文档

部署规划

资源规划

全部节点都在一个低延迟的子网中:

主机名 IP 说明
k8s-lb-01 192.168.0.151
192.168.0.170
HAProxy + Keepalived (master)
k8s-lb-02 192.168.0.161
192.168.0.170
HAProxy + Keepalived (backup)
k8s-master-01 192.168.0.152 Master节点1
k8s-master-02 192.168.0.153 Master节点2
k8s-master-03 192.168.0.162 Master节点3
k8s-worker-01 192.168.0.154 Worker节点1
k8s-worker-02 192.168.0.164 Worker节点2
k8s-worker-03 192.168.0.165 Worker节点3

说明:

  • 采用外部HAProxy作集群负载均衡器;
  • 采用2个 HAProxy + Keepalived 来保证负载均衡的高可用,Keepalived VIP为192.168.0.170;
  • 采用每个Master节点上伴随部署Etcd的方式(Slacked Etcd typology 堆叠Etcd拓扑),而Etcd高可用最少需要3个节点(奇数),因此Master节点至少为3个。
  • 3个worker节点来保证worker节点高可用。
  • 服务器规格都为CentOS7 x86_64 2vCPU/2G 。
  • 全部机器都在192.168.0.0/24网段,且相互连通。

集群规划

计划部署“2负载均衡 + 3 Master节点 + 3 Worker节点”的高可用Kubernetes集群:

  • Docker 19.03.11
  • Kubernetes v1.19.3
  • Calico网络组件
  • HAProxy负载均衡
  • 集群Control-Plane Endpoint:192.168.0.170:6443
  • 集群API Server(s):
    • 192.168.0.152:6443
    • 192.168.0.153:6443
    • 192.168.0.162:6443

部署负载均衡服务器

安装和配置HAProxy

安装HAProxy:

yum install haproxy -y

编辑/etc/haproxy/haproxy.cfg,删掉默认的代理设置,添加负载均衡反向代理到Kubernetes集群Master节点的设置:

#---------------------------------------------------------------------
# apiserver frontend which proxys to the masters
#---------------------------------------------------------------------
frontend apiserver
    bind *:6443
    mode tcp
    option tcplog
    default_backend apiserver

#---------------------------------------------------------------------
# round robin balancing for apiserver
#---------------------------------------------------------------------
backend apiserver
    option httpchk GET /healthz
    http-check expect status 200
    mode tcp
    option ssl-hello-chk
    balance     roundrobin
        server k8s-master-01 192.168.0.152:6443 check
        server k8s-master-02 192.168.0.153:6443 check
        server k8s-master-03 192.168.0.162:6443 check

以服务方式运行HAProxy:

systemctl daemon-reload
systemctl enable haproxy
systemctl start haproxy

查看HAProxy服务状态:

systemctl status haproxy -l

如果HAProxy启动失败,请关闭SELinux再试。

安装和配置Keepalived

安装Keepalived:

yum install keepalived -y

配置Linux系统内核参数:

sudo cat <<EOF >  /etc/sysctl.d/keepali
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值