你是否还在为使用 kubeadm 部署 K8s 集群而烦恼?需要修改大量配置,安装各种依赖,步骤繁琐不说,还极易踩坑。
今天要介绍一个名为 Sealos 的工具,它能够实现 Kubernetes 集群的一键部署!其操作被极大简化,全程只需 1 条命令即可完成,即便是新手也能轻松上手。从此,当需要部署 K8s 集群时,你将告别复杂的 kubeadm 流程。
注:Kubeadm 手动部署方式可参考其他文档,例如:https://blog.csdn.net/qq_48450494/article/details/127738876
1 部署环境准备
环境配置(1 主 2 从)
注意主机命名规范:这里采用 节点作用名称+节点IP 来命名。加入节点IP有助于我们直观了解各节点的网络规划,也便于后续的查找与区分。
| 名称 |
IP 地址 |
操作系统 |
配置 |
角色 |
| k8s-master01-192-168-10-1 |
192.168.10.1 |
CentOS7.9 |
2C4G |
控制节点 |
| k8s-node01-192-168-10-2 |
192.168.10.2 |
CentOS7.9 |
2C4G |
工作节点 |
| k8s-node02-192-168-10-3 |
192.168.10.3 |
CentOS7.9 |
2C4G |
工作节点 |
先决条件
- 每个集群节点应该有不同的主机名,且主机名不要带下划线。
- 所有节点的时间需要同步。
- 建议使用干净的操作系统来创建集群。不要预先自行安装 Docker 或 Containerd!
所有节点统一初始化(必做)
1)关闭防火墙和 SELinux
# 关闭防火墙并设置开机禁用
systemctl disable --now firewalld
# 永久关闭SELinux(需重启生效,临时关闭用setenforce 0)
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
setenforce 0
2)修改主机名与 hosts 解析
# master节点
hostnamectl set-hostname k8s-master01-192-168-10-1
# node1节点
hostnamectl set-hostname k8s-node01-192-168-10-2
# node2节点
hostnamectl set-hostname k8s-node02-192-168-10-3
# 所有节点配置hosts(添加以下内容)
cat >> /etc/hosts <<EOF
192.168.10.1 k8s-master01-192-168-10-1
192.168.10.2 k8s-node01-192-168-10-2
192.168.10.3 k8s-node02-192-168-10-3
EOF
3)时间同步
#删除centos默认repo包,配置阿里云Centos-7.repo包
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
#方式1:安装配置chrony时间同步
IP=`ip addr | grep 'state UP' -A2 | grep inet | egrep -v '(127.0.0.1|inet6|docker)' | awk '{print $2}' | tr -d "addr:" | head -n 1 | cut -d / -f1`
yum install -y chrony
sed -i '3,6s/^/#/g' /etc/chrony.conf
sed -i "7s|^|server $IP iburst|g" /etc/chrony.conf
echo "allow all" >> /etc/chrony.conf
echo "local stratum 10" >> /etc/chrony.conf
systemctl restart chronyd
systemctl enable chronyd
timedatectl set-ntp true
sleep 5
systemctl restart chronyd
chronyc sources
#方式2:时间同步 注意:系统重启后恢复成原时间
yum install ntpdate -y
ntpdate ntp1.aliyun.com
2 安装 Sealos 工具(仅在 master 节点执行)
下载并安装 Sealos
下载 Sealos 二进制版本压缩包:https://github.com/labring/sealos/releases
# 解压、并安装
tar zxvf sealos_xxxxx_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin
更多下载方式,请移步官方文档:https://sealos.run/docs/k8s/quick-start/install-cli ,其中介绍了包括版本选择、二进制下载、包管理工具安装和源码安装在内的多种方法。
3 一键部署 K8s 集群
在 Master 节点执行下列命令。对于希望简化 K8s 集群 部署流程的 运维 人员来说,这个过程极其友好。
$ sealos run \
registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.29.9 \
registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 \
registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 \
--masters 192.168.10.1 \
--nodes 192.168.10.2,192.168.10.3 \
-p [your-ssh-passwd]
部署过程说明
- 执行命令后,Sealos 会自动下载 K8s 组件镜像、容器运行时(containerd)、网络插件等。
- 部署时间约 5-10 分钟(取决于网络速度),期间无需人工干预。
- 若部署失败,执行
sealos reset 清理环境后,重新运行部署命令即可。
更多高级操作(如添加节点、删除节点、离线部署K8s集群等)请参考:https://sealos.run/docs/k8s/quick-start/deploy-kubernetes
4 集群验证
1)查看集群节点状态
# 所有节点状态为Ready即部署成功
kubectl get nodes
2)查看集群组件状态
# 查看所有命名空间的Pod运行状态
kubectl get pods -A
# 查看集群信息
kubectl cluster-info

3)查看集群签发的证书时间

4)重置集群
当你想清理 K8s 集群环境时,使用 sealos reset 这一条命令即可直接卸载,非常便捷。
# 完全清理K8s集群环境
sealos reset
希望这篇使用 Sealos 快速部署 Kubernetes 的指南能帮助你提升效率。技术实践中的问题与经验,欢迎在 云栈社区 这样的开发者社区中交流探讨。