使用 sealos 部署 k8s

文章目录

什么是 sealos
  • Sealos 是一个基于 Kubernetes 的云操作系统
  • 它让用户可以像使用个人电脑一样简单、低成本地管理和运行云端应用
  • 它的核心理念是 "以应用为中心",将分布式应用的所有依赖(如数据库、消息队列、中间件等)打包成一个可移植、可离线分发的整体
核心特点与优势

简单易用:

  • 一键安装:通过一行命令即可在空机器上安装一个完整的 Kubernetes 高可用集群。
  • 桌面化体验:提供类似 Windows/macOS 的桌面操作系统界面,通过点点鼠标就能管理集群、部署应用,极大降低了 K8s 的使用门槛。
  • 应用商店:内置丰富的应用市场,可以一键部署数据库(MySQL、Redis)、消息队列、监控系统(如 Grafana)、开发工具等常用软件。

以应用为核心:

  • 应用镜像:Sealos 提出了"云原生应用镜像"的概念。它把一个分布式应用及其所有依赖(K8s 配置、数据库、配置文件等)打包成一个不可变的、版本化的单元。这使得应用的交付、分享和回滚变得像 Docker 镜像一样简单可靠。
  • 解决了"交付最后一公里"问题:传统的容器镜像只包含单个服务,而 Sealos 应用镜像包含了整个集群级别的应用,实现了真正的开箱即用。

高效与低成本:

  • 多租户与资源隔离:原生支持多租户,不同团队或用户可以拥有独立、资源隔离的"空间",非常适合 SaaS 平台或企业内部使用。
  • 极致轻量:内核非常精简,专注于应用生命周期管理,去除了传统 K8s 发行版中很多复杂的组件,使得集群本身资源消耗极低。
  • 公有云与私有化部署:既可以在公有云上快速搭建,也支持完全离线环境下的私有化部署。

强大的核心功能

  • 数据库即服务:可以一键部署高可用的生产级数据库(如 PostgreSQL, MySQL),并自动处理备份、恢复、监控等运维工作。
  • 集群全生命周期管理:轻松地对集群进行升级、备份、恢复和扩缩容。
  • 开放的生态系统:兼容 Helm Chart 和原生 K8s YAML,并能轻松集成自定义应用。
核心架构组件

Sealos 的架构主要包括:

  • Sealos CLI:命令行工具,用于集群的安装、管理和应用镜像的构建/运行。
  • Sealos Cloud/Desktop:核心亮点,提供直观的 Web 桌面环境,用户可以在浏览器中像操作电脑一样管理整个云集群。
  • 应用镜像仓库:用于存储和分享打包好的云原生应用镜像。
  • 底层 Kubernetes 集群:由 Sealos 负责初始化和管理的基础设施层。

与传统的 Kubernetes 发行版有什么区别?

特性 传统 K8s 发行版 (如 kubeadm, k3s, RKE) Sealos
核心定位 容器编排平台,专注于调度和管理容器。 云操作系统,专注于运行和管理分布式应用。
使用体验 复杂,需精通 YAML、Helm、CLI 和各种 K8s 概念。 极其简单,提供图形化桌面和"应用商店",适合开发者和运维新手。
应用交付 需要组合多个 Helm Chart、YAML 文件和外部依赖,部署复杂。 通过应用镜像一键交付整个应用及其所有依赖,实现原子化部署。
多租户 需要额外安装和配置复杂项目(如 Kubernetes Dashboard + 权限系统)。 原生内置,开箱即用,提供用户空间和资源隔离。
核心价值 提供稳定、可靠的容器基础设施。 降低云原生技术的使用门槛,提升应用交付和运维效率。
典型应用场景
  • 个人开发者/小团队:快速在云服务器或本地搭建一个属于自己的、功能完整的 Kubernetes 环境,用于学习、开发和测试。
  • 企业私有化部署:将一套复杂的 SaaS 系统(如 OA、CRM)打包成 Sealos 应用镜像,交付给客户,实现一键安装和运维。
  • 教育/培训:因其简单性,非常适合用于教学和演示 Kubernetes 及云原生应用。
  • 构建内部云平台/Paas:为企业内部不同部门提供标准化的应用部署和管理平台。

使用 sealos 部署 Kubernetes

环境准备
server name CPU 内存容量 IP地址 系统版本 备注
k8smaster1 4C 8G 192.168.1.241 Ubuntu 22.04.5 LTS
k8smaster2 4C 8G 192.168.1.242 Ubuntu 22.04.5 LTS
k8smaster3 4C 8G 192.168.1.243 Ubuntu 22.04.5 LTS
k8snode1 4C 8G 192.168.1.244 Ubuntu 22.04.5 LTS
k8snode2 4C 8G 192.168.1.245 Ubuntu 22.04.5 LTS
k8snode3 4C 8G 192.168.1.246 Ubuntu 22.04.5 LTS Harbor
基本环境准备

所有节点需要操作

bash 复制代码
# 关闭交换分区
swapoff -a
sed -i '/swap/d' /etc/fstab

# 开启 Kubernetes 所需的网络内核参数
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF
sysctl --system

sudo tee /etc/modules-load.d/k8s.conf <<EOF
br_netfilter
overlay
EOF
sudo modprobe overlay
sudo modprobe br_netfilter

# 配置时间同步
sudo apt update
sudo apt install -y chrony
sudo systemctl enable --now chrony

# 增加系统的最大文件句柄数
ulimit -n 65535
ulimit -u 65535
cat << EOF | sudo tee -a /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
* soft noproc 65535
* hard noproc 65535
EOF

# 安装必要的软件包
sudo apt install -y curl wget gnupg lsb-release ca-certificates conntrack ipvsadm socat jq
安装 sealos 工具

安装 sealos 工具

只需要在 k8smaster1 安装

bash 复制代码
wget https://github.com/labring/sealos/releases/download/v5.0.1/sealos_5.0.1_linux_amd64.tar.gz
tar -zxvf sealos_5.0.1_linux_amd64.tar.gz
sudo mv sealos /usr/local/bin/
sudo chmod +x /usr/local/bin/sealos

# 检查
sealos version

安装 helm 工具

  • Helm 是 Sealos 安装 Calico / KubeSphere 等应用时必须的 CLI 工具
bash 复制代码
wget https://get.helm.sh/helm-v3.13.3-linux-amd64.tar.gz
tar -zxvf helm-v3.13.3-linux-amd64.tar.gz
cp linux-amd64/helm /usr/local/bin/
chmod +x /usr/local/bin/helm

# 检查
helm version
使用 sealos 安装 Kubernetes

拉取 Kubernetes 所需要的镜像

  • kubernetes:v1.27.8:Kubernetes 基础镜像
  • calico:v3.26.1: Kubernetes 网络组件
bash 复制代码
# 使用阿里云源拉取
sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.8
sealos pull registry.cn-shanghai.aliyuncs.com/labring/calico:v3.26.1

sealos run 部署 Kubernetes

  • 先根据服务器空间情况创建 Kubernetes 运行时文件存储目录
bash 复制代码
# 所有节点都需要创建
mkdir -p /data/containerd
mkdir -p /data/kubelet
mkdir -p /data/etcd

ln -s /data/containerd /var/lib/containerd
ln -s /data/kubelet /var/lib/kubelet
ln -s /data/etcd /var/lib/etcd
  • 在 k8smaster1 服务器上面使用sealos run 部署 Kubernetes
bash 复制代码
sudo sealos run \
  registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.27.8 \
  registry.cn-shanghai.aliyuncs.com/labring/calico:v3.26.1 \
  --masters 192.168.1.241,192.168.1.242,192.168.1.243 \
  --nodes 192.168.1.244,192.168.1.245,192.168.1.246 \
  --passwd 'root用户密码'

# 等待 Kubernetes 部署完成

检查 Kubernetes 部署情况

  • kubectl get nodes 验证节点信息
txt 复制代码
NAME         STATUS   ROLES           AGE   VERSION
k8smaster1   Ready    control-plane   64m   v1.27.8
k8smaster2   Ready    control-plane   64m   v1.27.8
k8smaster3   Ready    control-plane   63m   v1.27.8
k8snode1     Ready    <none>          63m   v1.27.8
k8snode2     Ready    <none>          63m   v1.27.8
k8snode3     Ready    <none>          63m   v1.27.8
  • kubectl get pods -A 检查基础组件运行情况
txt 复制代码
NAMESPACE          NAME                                      READY   STATUS    RESTARTS      AGE
calico-apiserver   calico-apiserver-ffc9f9f95-cr9ql          1/1     Running   0             40m
calico-apiserver   calico-apiserver-ffc9f9f95-tfppj          1/1     Running   0             40m
calico-system      calico-kube-controllers-b7df4dc6c-b9jms   1/1     Running   0             41m
calico-system      calico-node-6qdsr                         1/1     Running   0             41m
calico-system      calico-node-gkhxk                         1/1     Running   0             41m
calico-system      calico-node-ph92s                         1/1     Running   0             41m
calico-system      calico-node-r276z                         1/1     Running   0             41m
calico-system      calico-node-rccp4                         1/1     Running   0             41m
calico-system      calico-node-x4ch4                         1/1     Running   0             41m
calico-system      calico-typha-fb67dff85-fmxpm              1/1     Running   0             41m
calico-system      calico-typha-fb67dff85-hpt94              1/1     Running   0             41m
calico-system      calico-typha-fb67dff85-mvs9j              1/1     Running   0             41m
calico-system      csi-node-driver-gxsls                     2/2     Running   0             41m
calico-system      csi-node-driver-jjtrx                     2/2     Running   0             41m
calico-system      csi-node-driver-jzn6l                     2/2     Running   0             41m
calico-system      csi-node-driver-tcpzh                     2/2     Running   0             41m
calico-system      csi-node-driver-wdpc7                     2/2     Running   0             41m
calico-system      csi-node-driver-zzbqp                     2/2     Running   0             41m
kube-system        coredns-5d78c9869d-q9k9z                  1/1     Running   0             65m
kube-system        coredns-5d78c9869d-xflnv                  1/1     Running   0             65m
kube-system        etcd-k8smaster1                           1/1     Running   0             66m
kube-system        etcd-k8smaster2                           1/1     Running   0             65m
kube-system        etcd-k8smaster3                           1/1     Running   0             64m
kube-system        kube-apiserver-k8smaster1                 1/1     Running   0             66m
kube-system        kube-apiserver-k8smaster2                 1/1     Running   0             65m
kube-system        kube-apiserver-k8smaster3                 1/1     Running   0             64m
kube-system        kube-controller-manager-k8smaster1        1/1     Running   1 (65m ago)   66m
kube-system        kube-controller-manager-k8smaster2        1/1     Running   0             65m
kube-system        kube-controller-manager-k8smaster3        1/1     Running   0             64m
kube-system        kube-proxy-47ktb                          1/1     Running   0             64m
kube-system        kube-proxy-57vm8                          1/1     Running   0             64m
kube-system        kube-proxy-7zfnj                          1/1     Running   0             65m
kube-system        kube-proxy-jlxzj                          1/1     Running   0             64m
kube-system        kube-proxy-mfqr2                          1/1     Running   0             65m
kube-system        kube-proxy-qt2mf                          1/1     Running   0             64m
kube-system        kube-scheduler-k8smaster1                 1/1     Running   1 (65m ago)   66m
kube-system        kube-scheduler-k8smaster2                 1/1     Running   0             64m
kube-system        kube-scheduler-k8smaster3                 1/1     Running   0             64m
kube-system        kube-sealos-lvscare-k8snode1              1/1     Running   0             64m
kube-system        kube-sealos-lvscare-k8snode2              1/1     Running   0             64m
kube-system        kube-sealos-lvscare-k8snode3              1/1     Running   0             64m
tigera-operator    tigera-operator-5f4668786-bsmfg           1/1     Running   0             41m

总结

总而言之,Sealos 通过其以应用为中心的设计和极简化的一键操作,显著降低了 Kubernetes 和云原生应用的管理与部署复杂度。它不仅仅是另一个 Kubernetes 安装工具,更是一个旨在提升应用交付与运维效率的完整云操作系统。本文提供的实践案例充分展示了其快速搭建生产就绪集群的能力。

相关推荐
java1234_小锋2 小时前
Zookeeper集群数据是如何同步的?
分布式·zookeeper·云原生
Font Tian2 小时前
【云计算2025年度总结】汇总和反思
容器·云计算·k8s·openstack·虚拟化
qq_317620312 小时前
01:Docker 概述
运维·docker·容器·docker安装
我可以将你更新哟4 小时前
【docker】Dockerfile的编写
docker·容器
沛沛老爹4 小时前
Web开发者实战A2A智能体交互协议:从Web API到AI Agent通信新范式
java·前端·人工智能·云原生·aigc·交互·发展趋势
❀͜͡傀儡师4 小时前
docker部署orion-ops一站式智能运维管理平台
运维·docker·容器·orion-ops
DarkAthena5 小时前
【DOCKER+ORACLE】使用docker-compose一键拉起一个ORACLE-ADG一主一备环境
docker·oracle·容器
❀͜͡傀儡师5 小时前
docker部署Portracker 实现局域网实时端口监控
docker·容器·portracker
方也_arkling6 小时前
【Docker】Docker的安装和使用
docker·容器·github