一、背景介绍。
k8s通过master集中式管理worknode的容器编排系统,而在生产环境为了维护高可用性,master的地位起到举无轻重的作用。一旦master节点失守,则会导致整个集群服务不可用,因此配置多master集群在生产环境非常重要。
配置master集群,建议首先需要弄明白单节点master的k8s集群搭建,因为多master集群只是在单master集群的延伸。单节点master集群搭建详见:https://blog.youkuaiyun.com/wangqiubo2010/article/details/101203625
二、多master集群安排。
- keepalived + haproxy + k8集群,其中keepalived 负责master节点的健康检查和动态漂移;haproxy负责动态均衡;即keepalived + haproxy 实现master高可用。
- 本集群部署设置3个maser节点,1个worknode节点,其他worknode节点的扩容详见 https://blog.youkuaiyun.com/wangqiubo2010/article/details/113735285
- 多master集群架构图。
- 以下是本集群搭建的配置。
hostName | IP | 配置 | 备注 |
k8svip | 192.168.1.40 | 4G内存,2核2CPU,40G硬盘 | 虚拟VIP,其在keepalived中使用,非真实的虚拟机,其为master01、master02、master03提供统一的接口。 |
master01 | 192.168.1.32 | 4G内存,2核2CPU,40G硬盘 | 虚拟机,部署master01节点、keepalived、haproxy |
master02 | 192.168.1.34 | 4G内存,2核2CPU,40G硬盘 | 虚拟机,部署master02节点、keepalived、haproxy |
master03 | 192.168.1.35 | 4G内存,2核2CPU,40G硬盘 | 虚拟机,部署master03节点、keepalived、haproxy |
worknode1 | 192.168.1.33 | 虚拟机,部署worknode1节点 | |
keepalived | 192.168.1.32、192.168.1.34、192.168.1.35 | keepalived对master节点健康检查与动态漂移 | |
haproxy | 192.168.1.32、192.168.1.34、192.168.1.35 | haproxy对master节点实行动态漂移 |
三、设置hosts及ssh免密。
1、设置hosts文件。master01、master02、master03、worknode1节点均需执行。
192.168.1.40 k8svip
192.168.1.32 master01
192.168.1.34 master02
192.168.1.35 master03
192.168.1.33 worknode1
# 解决github
199.232.4.133 raw.githubusercontent.com
199.232.68.133 raw.githubusercontent.com
2、设置免密。 以下代码在master01节点执行
#设置免登录
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa &> /dev/null
ssh-copy-id root@master01
ssh-copy-id root@master02
ssh-copy-id root@master03
ssh-copy-id root@worknode1
四、多master集群部署之前置工作。
说明:以下操作均需要在所有节点执行 master01、master02、mater03、worknode1 ......
1、k8s集群部署前置工作。可参考:https://blog.youkuaiyun.com/wangqiubo2010/article/details/101203625
(1)、关闭防火墙、关闭防selinux、关闭swap(在3台机运行),以下shell文件 closeCompose.sh
#!/bin/bash
#关闭防火墙(在3台机运行)
systemctl stop firewalld && systemctl disable firewalld
#关闭selinux(在3台机运行)
sed -i 's/enforcing/disabled/' /etc/selinux/config && setenforce 0
#关闭swap(在3台机运行)
swapoff -a && sed -ri