一、速览

入门

Sealos 是一个基于 Kubernetes 构建的云操作系统,目标是把「装集群、跑应用、做运维」这件事压缩到一条命令。它用 Go 编写,核心思路是把整个 Kubernetes 集群打包成容器镜像 —— 装集群就像 docker pull 一样简单。

它解决的是云原生基础设施的典型痛点:传统方式装一个高可用 K8s 集群需要 kubeadm、keepalived、HAProxy 等多个组件配合,而 Sealos 将这些全部封装为可复用的镜像层。应用商店里预置了 FastGPT、MySQL、Redis、PostgreSQL、MongoDB 等常用服务,点击即可部署,不需要手写 YAML。

![]{https://opengraph.githubassets.com/master/labring/sealos}

对于个人开发者,可以用它快速拉起一套完整的开发环境(Devbox),免去本地 Docker/K8s 配置的麻烦;对于团队,则可以利用它的多租户隔离和资源配额做协作管理。以下内容围绕自建场景展开。

二、安装

入门

Sealos 提供一条命令的安装脚本,要求 root 权限。执行后系统会安装 sealos 二进制到 /usr/local/bin

curl -fsSL https://raw.githubusercontent.com/labring/sealos/main/scripts/install.sh | sh

安装完成后验证版本:

sealos version

核心概念:Kubernetes 本身也被打包为镜像,你需要拉取对应版本的集群镜像来初始化。格式通常为 labring/kubernetes:v1.27.0,镜像 tag 对应 K8s 版本号。

sealos run labring/kubernetes:v1.27.0

注意:国内服务器拉取 Docker Hub 镜像可能超时,可以在启动集群前给容器运行时配置镜像加速器。

对于已有 K8s 集群的用户,Sealos 也可以作为纯 PaaS 层安装,跳过集群创建步骤,只使用应用商店和 Devbox 功能。官网提供了云端托管版本,无需自建即可体验。

三、核心用法

进阶 · 推荐细读

Sealos 的日常操作集中在集群生命周期管理和应用部署两条线上。先说集群管理。

创建单节点集群(含本地 PV 支持):

sealos run labring/kubernetes:v1.27.0 \
  --masters 192.168.1.10 \
  --pwd your-ssh-password

添加工作节点

sealos add --nodes 192.168.1.11 --pwd your-ssh-password

销毁集群(会清除节点上的所有 K8s 组件):

sealos reset

应用部署方面,Sealos 提供了一个应用商店 CLI——sealos run 也可以直接跑应用镜像。以部署一个 FastGPT 为例:

sealos run labring/fastgpt:latest

该命令会自动创建 Deployment、Service 和 Ingress,并输出访问地址。所有应用元数据(镜像、端口、依赖关系)都被封装在 OCI 镜像里,相当于把 Helm Chart 做成了标准容器镜像。

常用排查命令包括查看应用状态和日志:

kubectl get pods -A
kubectl logs -f -l app=fastgpt -n fastgpt

Sealos 不替代 kubectl —— 它管理集群的安装和应用的封装,底层仍是标准 K8s 集群,所有原生 API 照常工作。

四、配置

进阶 · 推荐细读

Sealos 的集群配置通过 Clusterfile(YAML)描述。一个最小化的 Clusterfile 如下:

apiVersion: sealos.io/v1
kind: Cluster
metadata:
  name: my-cluster
spec:
  image: labring/kubernetes:v1.27.0
  ssh:
    host: 192.168.1.10
    user: root
    passwd: your-ssh-password
  masters:
    - 192.168.1.10
  nodes:
    - 192.168.1.11

然后执行:

sealos apply -f Clusterfile

这里有几个关键参数:

  • image:指定 K8s 版本镜像,升级集群时只需改这个字段重新 apply
  • ssh:Sealos 通过 SSH 连接所有节点执行初始化,需要能够免密或密码登录
  • masters / nodes:分别对应控制平面和工作节点 IP 列表

对于网络插件,Sealos 默认使用 Calico。如果需要更换为 Flannel 或其他 CNI,可以在创建集群后单独安装网络插件镜像:sealos run labring/flannel:v0.21.0。镜像仓库默认使用 SeaweedFS,也可以替换为外部 Registry,在 ~/.sealos/config.yaml 中调整。

五、运维场景

深入 · 老手可选

Sealos 自身运行方式与普通宿主机进程一致,不依赖 systemd 托管 K8s 组件——集群组件都运行在容器里。但 sealos CLI 本身如果希望开机自启或守护,可以写一个简单的 systemd unit:

[Unit]
Description=Sealos CLI
After=network-online.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/sealos run labring/kubernetes:v1.27.0
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

这在重启后自动拉起集群初始化流程的场景下很实用。

监控集成:集群本身暴露标准 K8s metrics API,直接接入 Prometheus + Grafana 即可:

sealos run labring/kubernetes-prometheus:v1.0.0

Sealos 应用商店中提供了预打包的监控方案,会自动创建 ServiceMonitor,无需手工配置抓取规则。

CI/CD 场景:你可以用 sealos 构建自己的应用镜像并在任意节点上部署。构建命令与 Dockerfile 语法兼容:

sealos build -t labring/myapp:v1.0.0 .
sealos push labring/myapp:v1.0.0

这样应用分发的粒度从「容器镜像」提升到了「整个应用栈」,与 GitHub Actions 等 CI 工具集成时,只需在 workflow 中调用这两条命令。

FOSSA 状态徽章

六、踩坑

入门

以下是自建 Sealos 集群时常见的问题。

1. 必须在 root 下运行
Sealos 的 SSH 操作和 iptables 配置都需要 root 权限,用普通用户执行会直接报权限不足。建议全程用 root,或者确保 sudo 用户有免密权限。

2. 内核版本过低
Calico 和 Kubernetes 1.27+ 要求内核 ≥ 5.4。CentOS 7 默认 3.10 内核会直接失败,建议先升级内核或改用 Ubuntu 22.04+。

3. 节点之间需要互通
Sealos 不会自动配置节点间的网络通路。多个节点必须处于同一二层网络且能互相 ping 通,否则初始化会卡在 etcd 健康检查。

4. 镜像仓库拉取超时
sealos run 拉取镜像依赖容器运行时的 registry 配置。国内环境务必先配置 Docker 的 registry-mirrors,否则容易反复重试最终失败。

5. 不要与 kubeadm 混用
Sealos 管理的集群上如果再跑 kubeadm initkubeadm reset,会导致 etcd 数据混乱。要么全用 Sealos 管理,要么换传统方式。

FOSSA 依赖扫描

如果遇到应用商店安装后无法访问的问题,优先检查 Ingress Controller 是否就绪:kubectl get pods -n ingress-nginx。大多数情况是节点安全组未放行 80/443 端口,与 Sealos 本身无关。

总体而言,Sealos 给出一套完整的分发路径:一条命令装 K8s,镜像封装应用,应用市场开箱即用。与纯手工配置 K8s 相比,学习成本低一个量级;与 Rancher 等重量级平台相比,又保持了 CLI 的轻量。对于希望快速搭建一套可运行的多应用集群的团队,值得花一个周末试用。

项目信息

项目
仓库 labring/sealos
语言 TypeScript
Star 18,317
Fork 2,476
主页 https://sealos.io

参考链接