使用sealos快速部署k8s集群
环境信息
主机名 | IP地址 |
---|---|
master1 | 192.168.0.1 |
node1 | 192.168.0.2 |
node2 | 192.168.0.3 |
服务器密码:123456
主机名解析
# 主机名成解析 编辑三台服务器的/etc/hosts文件,添加下面内容
192.168.0.1 master1
192.168.0.2 node1
192.168.0.3 node2
时间同步
kubernetes要求集群中的节点时间必须精确一直,这里使用chronyd服务从网络同步时间
yum install chrony -y
# 启动chronyd服务
systemctl start chronyd
systemctl enable chronyd
chronyc sources
date
禁用iptable和firewalld服务
kubernetes和docker 在运行的中会产生大量的iptables规则,为了不让系统规则跟它们混淆,直接关闭系统的规则
# 1 关闭firewalld服务
systemctl stop firewalld
systemctl disable firewalld
# 2 关闭iptables服务
systemctl stop iptables
systemctl disable iptables
禁用selinux
selinux是linux系统下的一个安全服务,如果不关闭它,在安装集群中会产生各种各样的奇葩问题
# 编辑 /etc/selinux/config 文件,修改SELINUX的值为disable
# 注意修改完毕之后需要重启linux服务
SELINUX=disabled
禁用swap分区
swap分区指的是虚拟内存分区,它的作用是物理内存使用完,之后将磁盘空间虚拟成内存来使用,启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用swap设备,但是如果因为某些原因确实不能关闭swap分区,就需要在集群安装过程中通过明确的参数进行配置说明
# 编辑分区配置文件/etc/fstab,注释掉swap分区一行
# 注意修改完毕之后需要重启linux服务
vim /etc/fstab
注释掉 /dev/mapper/centos-swap swap
# /dev/mapper/centos-swap swap
修改hostname
# 到对应机器上执行
hostnamectl set-hostname master1
hostnamectl set-hostname node1
hostnamectl set-hostname node2
安装sealos和k8s集群
只需要在master服务器上执行下面命令即可
# 下载并安装sealos, sealos是个golang的二进制工具,直接下载拷贝到bin目录即可, release页面也可下载
wget -c https://sealyun-home.oss-cn-beijing.aliyuncs.com/sealos/latest/sealos && \
chmod +x sealos && mv sealos /usr/bin
# 下载离线资源包
wget -c https://sealyun.oss-cn-beijing.aliyuncs.com/05a3db657821277f5f3b92d834bbaf98-v1.22.0/kube1.22.0.tar.gz
# 安装一个三master的kubernetes集群
sealos init --passwd '123456' \
--master 192.168.0.1 \
--node 192.168.0.2 --node 192.168.0.3\
--pkg-url /root/kube1.22.0.tar.gz \
--version v1.22.0
增加master
sealos join --master 192.168.0.6 --master 192.168.0.7
sealos join --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
增加node
sealos join --node 192.168.0.6 --node 192.168.0.7
sealos join --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
删除指定master节点
sealos clean --master 192.168.0.6 --master 192.168.0.7
sealos clean --master 192.168.0.6-192.168.0.9 # 或者多个连续IP
删除指定node节点
sealos clean --node 192.168.0.6 --node 192.168.0.7
sealos clean --node 192.168.0.6-192.168.0.9 # 或者多个连续IP
清理集群
sealos clean --all
备份集群
sealos etcd save
注意事项
- 必须同步所有服务器时间
- 所有服务器主机名不能重复
- 系统支持:centos7.6以上(其中centos8不支持) ubuntu16.04以上
- 内核推荐4.14以上, 系统推荐:centos7.7