Sealos 集群部署与应用交付实战指南:一条命令拉起 K8s,再十分钟上线一个应用
【免费下载链接】Sealos以应用为中心的智能云操作系统项目地址: https://gitcode.com/labring/Sealos
搭建一个能跑业务的 Kubernetes 集群,传统做法是把装二进制、配证书、调 containerd、装网络插件、写 Ingress 这几十步全部手工走完,任何一步偏差都要回头排查。Sealos 把这套流程压缩成一条sealos run命令:指定集群镜像和节点 IP,几分钟内得到一套带 Helm 和 Cilium 的多节点 K8s 集群;而"应用上线"也不再是写 YAML,而是打开桌面里的 App Store 点几下鼠标的事。本文以这个仓库的实际目录和文档为参照,走一遍从安装到交付的完整动线。
一屏看懂 Sealos:把"集群 + 应用"装进一个云操作系统
Sealos 的定位是构建在 Kubernetes 之上的云操作系统(Cloud OS),核心思路有两个:
- 集群镜像:像容器镜像一样用 OCI 标准打包一套完整的集群环境(K8s + 组件 + 配置),
sealos run时按镜像内容把节点装到位,环境差异被锁在镜像里。 - 应用为中心:桌面(Desktop)里的每个图标就是一个应用——App Store 装模板、App Launchpad 装任意镜像、Devbox 管开发环境、Terminal 管底层操作,界面动线和普通操作系统一致。
| 能力 | 解决的痛点 | 适合谁 |
|---|---|---|
集群镜像 +sealos run | K8s 集群部署步骤多、易出错 | 平台 / 运维 |
| App Store | 常用应用从零编排成本高 | 快速搭建演示、团队共享环境 |
| App Launchpad | 私有镜像上线要手写 Deployment/Ingress | 应用开发者 |
| Devbox | 本地环境不一致、依赖装不齐 | 研发团队 |
| 托管数据库 | 自建 MySQL/PostgreSQL/Redis 运维重 | 业务方 |
| Terminal | 查问题要 SSH 进节点 | 所有人 |
从 0 到运行:三步跑通最短路径
第一步:用安装脚本装好 CLI
仓库里的 scripts/install.sh 会自动完成四件事:按uname -m识别架构(amd64/arm64)、校验 curl/wget 可用、下载对应二进制装到/usr/bin、最后用sealos version自检。
# 从项目获取安装脚本后执行(latest 表示拉取最新发布版本) sh install.sh latest labring/sealos sealos version第二步:一条命令装出多节点 Kubernetes 集群
在第一台 master 节点上执行(sealos run要求从集群节点内部发起):
# 三 master + 两 worker 的高可用集群 sealos run labring/kubernetes:v1.28.3 labring/helm:v3.9.4 labring/cilium:v1.13.4 \ --masters 192.168.64.2,192.168.64.22,192.168.64.20 \ --nodes 192.168.64.21,192.168.64.19 \ --passwd '<各节点SSH密码>' # 只想先验证流程?单节点集群更省事 sealos run labring/kubernetes:v1.28.3 --single镜像之间是有顺序讲究的:labring/helm必须排在labring/cilium前面。装完后集群内 kubectl 即可用,常用生命周期命令:
sealos status # 查看集群状态 sealos reset # 销毁当前集群(不可逆,操作前先确认)第三步:从 App Store 装一个现成应用
集群就绪后,打开 Sealos Desktop,进入App Store,左上角搜索框直接定位目标应用(如博客 Flarum、论坛、AI 应用等),进入详情点击Deploy App。等待所有组件状态变为 running 后,回到桌面点击该应用图标即可直接访问。整个过程不需要写任何 YAML。
核心场景拆解
App Launchpad:任意镜像到可访问 URL,最短 5 分钟
App Store 里没有的镜像(尤其是私有仓库镜像),用 App Launchpad 直接部署:
- 桌面点击App Launchpad → New Application,填写应用名与镜像名,勾选 External Access(分配公网访问域名);
- 部署完成后点 Details,能看到 CPU/内存实时指标,点外链即可打开服务;
- 数据不落盘的演示可以到此为止;需要持久化时,在同一页面配置持久卷(Persistent Volume),数据不会随 Pod 重建丢失。
进阶能力都在 Launchpad 配置项里:多副本、自定义域名、ConfigMap 配置、多端口暴露、应用内 Terminal 一键进入。对应的操作文档在 docs/archived/5.0/docs/user-guide/app-launchpad/。
托管数据库:把 Operator 的复杂度收进界面
需要 MySQL、PostgreSQL、Redis、MongoDB 或 S3 兼容对象存储时,直接在桌面创建实例:选引擎与规格、设置访问方式,实例详情页提供连接串和访问信息,备份与规格变更也在这里完成。对于"业务方要个库"这种高频需求,这比让每个团队自己起一个 Operator 实例现实得多。
Devbox:把开发环境也变成"点一下"
Devbox(云端开发环境)的动线以 Next.js 为例:
- 桌面点击Devbox → Create New Project,选择框架(Next.js 等),用滑块设置 CPU/内存;
- Network 部分填容器端口(如 3000)、打开 Internet Access,系统默认分配一个子域名,也可改绑自定义域名;
- 在项目列表的 Operation 列选择 Cursor / VSCode / VSCode Insiders,本地 IDE 通过 SSH 远程连入云端工程,直接改代码;
- 推送后 Devbox 负责构建与部署,不需要本地装 Docker 和 K8s。
团队里"我本地能跑"的问题,本质是环境不一致;把环境收进云端并按项目隔离,这一步就能消掉。
Terminal:你的终端本身就是个 Pod
桌面里的 Terminal 与操作系统终端行为一致,但要注意一点:每个用户的 Terminal 实际运行在一个 Kubernetes Pod 里,这意味着它天然带着集群的 kubectl 权限——可以直接查看应用容器、进入容器调试,也能连进托管数据库。排障动线变成"Terminal 里 kubectl get → 进容器 → 看日志",不用在节点之间 SSH 跳来跳去。
进阶与避坑
sealos run之前容易被忽略的前置条件
集群装不出来,九成问题出在环境而不是命令本身。官方前置清单(见 deploy-kubernetes.md)值得逐条核对:
sealos run必须在第一台 master 节点上执行,从集群外机器远程发起目前不支持;- 用干净系统,不要预装 Docker,容器运行时由 Sealos 通过 containerd 接管,预装的 Docker 会互相打架;
- 各节点主机名唯一且不含下划线;全集群时间同步(chrony/ntp);
- 公有云场景
--masters/--nodes填内网 IP; - 镜像顺序:
labring/helm在labring/cilium之前; - K8s 版本选同一主/次版本下 patch 最高的(如 v1.28.3),稳定性最好。
自定义域名 + TLS 证书:cert-manager 卡住时的手动方案
绑了自定义域名但浏览器提示证书不安全,多半是 cert-manager 没签发成功。手动补证书的路径是"建 Secret → patch Ingress":
# 1. 用你的证书与私钥建一个 tls secret kubectl create secret tls my-tls --cert tls.crt --key tls.key # 2. 把 secret 挂到应用对应的 ingress 上 kubectl patch ingress <ingress名称> -p \ '{"spec":{"tls":[{"hosts":["your.domain"],"secretName":"my-tls"}]}}'前提是域名 CNAME 已指到集群入口。完整步骤截图在 set-cert.md。
HPA 自动扩缩容:用 CPU 阈值控制副本数
Launchpad 内置了 Horizontal Pod Autoscaler(HPA,按指标自动增减 Pod 副本数)。规则很直白:设定 CPU 使用率阈值(如 50%)和副本区间(如 1~5),当所有实例的平均 CPU 超过阈值时自动加副本直到上限,低于阈值时自动缩回下限,但至少保留 1 个实例。压测前把它配上,比事后手动kubectl scale靠谱。
许可边界:允许什么、不允许什么
Sealos 采用的是 Sealos Sustainable Use License(见 LICENSE.md),不是标准开源许可:内部业务使用与个人非商业用途允许;以它对外提供云服务(即把平台能力作为服务卖给第三方)不允许。用之前过一遍许可条款,尤其是 SaaS 化场景。
延伸资源与上手清单
仓库内的资料入口:
- 集群镜像与 CLI 完整文档:docs/archived/5.0/docs/developer-guide/lifecycle-management/(含
sealos run参数、离线安装、镜像构建) - 用户指南(App Store / Launchpad / Devbox / Terminal / 数据库):docs/archived/5.0/docs/user-guide/
- CLI 命令源码(想确认某个子命令的行为时直接翻):lifecycle/cmd/sealos/
- 安装脚本:scripts/install.sh
- 版本变更记录:CHANGELOG/
建议的上手顺序:
sealos version确认 CLI 可用;sealos run labring/kubernetes:v1.28.3 --single先装单节点,确认全流程无阻塞;- 换多 master 参数重装,验证高可用形态;
- 在 App Store 部署一个模板应用,熟悉"部署 → 访问"动线;
- 用自己的私有镜像走一遍 App Launchpad,加上持久卷;
- 给核心应用配 HPA 与自定义域名,跑一次压测观察扩缩容行为。
按这个顺序走完,你就同时掌握了"集群怎么装"和"应用怎么交付"两条主线,后续无论是自建平台还是给团队共享环境,都有可直接复用的基线。
【免费下载链接】Sealos以应用为中心的智能云操作系统项目地址: https://gitcode.com/labring/Sealos
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考