kubernetes之sealos搭建高可用集群

本文详细介绍了如何使用Sealos工具在CentOS 7.7系统上搭建Kubernetes高可用集群。首先强调了系统要求和初始化步骤,包括升级内核、设置时间同步、配置主机名和hosts文件、关闭防火墙和selinux以及调整内核参数。接着,重点讲述了Sealos的部署过程,包括下载安装、初始化集群、添加和删除节点的操作。最后,提到了通过Sealos进行集群状态检查和管理的命令。

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

kubernetes之sealos搭建高可用集群


如图所示,kuernetes组件组件主要可分为APISERVICE、replication CrontrollerManger、Scheduler、ETCD、Kubelet、Kube_proxy等。部署高可用,实际就是这些组件的高可用。
由于ETCD使用raft算法,所以当部署多个master节点时,会自动组成高可用;CrontrollerManger与Scheduler在设计时也自动组成了高可用。所以搭建kubernetes的高可用就是搭建apiserver的高可用

注意事项

  1. 必须同步所有服务器时间
  2. 所有服务器主机名不能重复
  3. 系统支持:centos7.6以上(其中centos8不支持) ubuntu16.04以上
  4. 内核推荐4.14以上, 系统推荐:centos7.7

部署

角色ip系统
master01192.168.234.136CentOS Linux release 7.7.1908 (Core)
master02192.168.234.137CentOS Linux release 7.7.1908 (Core)
master03192.168.234.138CentOS Linux release 7.7.1908 (Core)
node01192.168.234.139CentOS Linux release 7.7.1908 (Core)

升级系统内核

参考站内博客Linux系统内核升级

设置时间同步

#master端
$ vim /etc/chrony.conf
server ntp1.aliyun.com iburst
server ntp2.aliyun.com iburst
server ntp3.aliyun.com iburst

allow 192.168.234.0/24   #允许同步网段
local stratum 10  #权重,三台服务器各自设置不同
#node端
$ vim /etc/chrony.conf
server 192.168.234.136 iburst
server 192.168.234.136 iburst
server 192.168.234.136 iburst

#重启服务,并设为开机自启
$ systemctl restart chronyd  && systemctl enable chronyd

设置主机名并配置hosts配置文件

$ hostnamectl set-hostname master01
$ hostnamectl set-hostname master02
$ hostnamectl set-hostname master03
$ hostnamectl set-hostname node01
$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.234.136 master01
192.168.234.137 master02
192.168.234.138 master03
192.168.234.139 node01

关闭防火墙、selinux、以及swap分区

$ systemctl stop firewalld && systemctl disable firewalld
$ setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
$ swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

调整内核参数

cat > /etc/sysctl.d/kubernetes.conf << EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF

$ sysctl -p /etc/sysctl.d/kubernetes.conf

开启ipvs

$ modprobe br_netfilter  #用于向内核中加载模块
$ cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
$ chmod 755 /etc/sysconfig/modules/ipvs.modules 
$ bash /etc/sysconfig/modules/ipvs.modules 

以上步骤所有集群机器需要全部执行。

Sealos 部署高可用

Sealos 相关操作只要放入其中一个节点即可,他会自动发送到其他节点

# 下载并安装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

#安装集群
$ sealos init --passwd '12344' \
    --master 192.168.234.136  --master 192.168.234.137  --master 192.168.234.138 \
    --node 192.168.234.139 \
    --pkg-url /opt/kube1.22.0.tar.gz \
    --version v1.22.0 | tee /opt/sealosinit.log

节点查看

#kube-scheduler 状态查看
$  kubectl  get endpoints kube-scheduler -n kube-system -o yaml
#kube-controller-manager 状态查看
$ kubectl  get endpoints kube-controller-manager -n kube-system -o yaml

Sealos 相关命令

增加 Master 节点

$ sealos join --master 192.168.0.6 --master 192.168.0.7

# 或者多个连续 IP
$ sealos join --master 192.168.0.6-192.168.0.9  

增加 node

$ sealos join --node 192.168.0.6 --node 192.168.0.7

# 或者多个连续 IP
$ sealos join --node 192.168.0.6-192.168.0.9  

删除指定 Master 节点

$ sealos clean --master 192.168.0.6 --master 192.168.0.7

# 或者多个连续 IP
$ sealos clean --master 192.168.0.6-192.168.0.9 

删除指定 node 节点

$ sealos clean --node 192.168.0.6 --node 192.168.0.7

# 或者多个连续 IP
$ sealos clean --node 192.168.0.6-192.168.0.9 

清理集群

$ sealos clean --all

备份集群

$ sealos etcd save
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值