使用kubeadm搭建高可用的K8s集群
kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。
这个工具能通过两条指令完成一个kubernetes集群的部署:
# 创建一个 Master 节点
$ kubeadm init
# 将一个 Node 节点加入到当前集群中
$ kubeadm join <Master节点的IP和端口 >1. 安装要求
在开始之前,部署Kubernetes集群机器需要满足以下几个条件:
一台或多台机器,操作系统 CentOS7.x-86_x64
硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
可以访问外网,需要拉取镜像,如果服务器不能上网,需要提前下载镜像并导入节点
禁止swap分区
2. 准备环境
master1
192.168.44.155
master2
192.168.44.156
node1
192.168.44.157
VIP(虚拟ip)
192.168.44.158
3. 所有master节点部署keepalived haproxy
3.1 安装相关包和keepalived haproxy
3.2配置master节点 keepalived
master1节点配置
master2节点配置
3.3 配置master节点 haproxy
两台master节点的配置均相同,配置中声明了后端代理的两个master节点服务器,指定了haproxy运行的端口为16443等,因此16443端口为集群的入口
3.4 启动和检查
两台master都启动
4. 所有节点安装Docker/kubeadm/kubelet
Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker。
4.1 安装Docker
6. 部署Kubernetes Master
6.1 创建kubeadm配置文件
在具有vip的master上操作,这里为master1
6.2 在master1节点执行
按照提示配置环境变量,使用kubectl工具:
按照提示保存以下内容,一会要使用:
查看集群状态
7.安装集群网络
从官方地址获取到flannel的yaml,在master1上执行
安装flannel网络
检查
8、master2节点加入集群
8.1 复制密钥及相关文件
从master1复制密钥及相关文件到master2
8.2 master2加入集群
执行在master1上init后输出的join命令,需要带上参数--control-plane表示把master控制节点加入集群
检查状态
5. 加入Kubernetes Node
在node1上执行
向集群添加新节点,执行在kubeadm init输出的kubeadm join命令:
集群网络重新安装,因为添加了新的node节点
检查状态
7. 测试kubernetes集群
在Kubernetes集群中创建一个pod,验证是否正常运行:
访问地址:http://NodeIP:Port
Last updated