第四部分:使用 sealos 部署集群

📝 前言

在学习 Kubernetes 的过程中,很多初学者会选择 minikubekind 来快速体验。

但这类工具仅适合本地学习和实验,无法应用于实际工作场景。

本来 Kubernetes 的学习过程就已经非常陡峭了,没必要再去增加无谓的心智负担。

因此,本部分将介绍如何使用 sealos 快速部署一个既能学习又能生产可用的 Kubernetes 集群。

相比 minikube/kind,sealos 更贴近实际场景,支持多节点、可扩展性强,并能直接运行在云端或裸机环境。

🧠 本章知识卡片

🚀 本章小节

1️⃣ 什么是 sealos?

sealos 是一个基于 Kubernetes 的轻量级云操作系统,能够一条命令快速拉起 Kubernetes 集群,并具备以下优势:

  • 简单易用:类似使用 Docker 一样的体验,sealos run 即可完成集群安装。
  • 生产可用:支持多节点集群,支持主流云厂商环境,具备高可用能力。
  • 可扩展性强:集群安装完成后,还能直接通过 sealos run 叠加应用镜像,例如 Ingress Controller、监控系统等。
  • 可移植:支持云端、裸机、虚拟机多种环境,避免学习工具与生产环境割裂。

2️⃣ 环境准备

在开始之前,请准备好以下环境:

  • 至少 1 台 Linux 服务器(推荐 Ubuntu 20.04+ 或 CentOS 7+)

建议使用干净的操作系统来创建集群,不要自己装 Docker!

  • 服务器需开放以下端口:22(SSH)、6443(K8s API)、10250

PS:建议直接关闭服务器的防火墙。

  • 已安装并配置好 ssh,节点之间能互通。
  • 每个集群节点应该有不同的主机名。主机名不要带下划线。
  • 所有节点的时间需要同步(ntp或chrony)。
  • 在公有云上安装请使用私有 IP

3️⃣ 下载并安装 sealos(二进制)

1
2
3
4
5
6
7
8
# 自动下载安装
curl -sfL https://raw.githubusercontent.com/labring/sealos/main/scripts/install.sh | sh -s v5.0.1

# 若无法正常访问 github 可选择手动下载安装
# 离线安装包请关注公众号【青萍叙事】,回复:sealos ,即可获取下载链接
# 下载后上传到服务器,执行以下命令手动安装
tar zxvf sealos_5.0.1_linux_amd64.tar.gz sealos \
&& chmod +x sealos && mv sealos /usr/bin

PS:其他安装方式可参看官方文档《下载 Sealos 命令行工具》

4️⃣ 一键部署集群

需要在 K8s 集群的第一个 master 节点上运行 sealos run 命令,目前集群外的节点不支持集群安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# All-in-One(本地单节点)适用于学习、验证功能、本地开发使用。
# 由于默认是使用的 containerd 作为运行时,命令跟原有的docker不太一样
# 以下示例改为 Docker 作为运行时,若想保持默认,去掉镜像后面的-docker即可
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.30.5

# 单 Master 集群部署(轻量集群)
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.30.5 \
--masters 192.168.32.1 \
--nodes 192.168.32.2,192.168.32.3 -p [your-ssh-passwd]

# 多 Master 高可用集群(推荐生产使用)
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.30.5 \
--masters 192.168.32.1,192.168.32.2,192.168.32.3 \
--nodes 192.168.32.4,192.168.32.5 -p [your-ssh-passwd]

PS:更多命令介绍可参看之前的一篇文章《使用 sealos 一键部署 k8s 集群》

5️⃣ 集群组件安装

默认部署的只是一个 **裸集群**,如果想要集群真正可用至少还需部署网络组件。

1
2
3
4
5
6
7
8
9
# 一键安装 Helm
sealos run registry.cn-shanghai.aliyuncs.com/labring/helm:v3.10.0

# 默认安装的集群是不带网络插件的,因此必须要安装一个网络组件才能正常使用
# 一键安装 calico 网络(依赖Helm)
sealos run registry.cn-shanghai.aliyuncs.com/labring/calico:v3.27.4

# 一键安装 nginx ingress controller
sealos run registry.cn-shanghai.aliyuncs.com/labring/ingress-nginx:v1.11.3

PS:这里我也打包了这些集群组件的离线镜像方便大家使用,可关注公众号【青萍叙事】,回复【sealos-k8s】即可获取下载链接,通过 sealos load -i 加载离线包。

6️⃣ 自定义集群安装

如果想要在安装集群之前使用自定义的配置进行部署,例如修改 nodePort 的端口范围。

可通过以下命令进行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 生成集群完整配置文件
sealos gen registry.cn-shanghai.aliyuncs.com/labring/kubernetes-docker:v1.30.5 \
registry.cn-shanghai.aliyuncs.com/labring/helm:v3.10.0 \
registry.cn-shanghai.aliyuncs.com/labring/calico:v3.27.4 --output Clusterfile

# 编辑 Clusterfile 文件,找到 api-server 配置
---
apiServer:
certSANs:
....
extraArgs:
...
# 添加集群服务端口范围配置
service-node-port-range: "1-65535"

# 通过自定义配置部署集群
sealos apply -f Clusterfile

✅ 总结

在集群学习与实践中,minikube 和 kind 更适合作为教学工具,而不适合在实际工作中使用

相比之下,sealos 提供了轻量化、可扩展且生产可用的方案,既适合个人学习,也能直接对接企业生产环境。

通过一条命令快速部署集群和常见组件,开发者可以把精力集中在业务与应用本身,而不是基础设施搭建上。