使用 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 安装工具,更是一个旨在提升应用交付与运维效率的完整云操作系统。本文提供的实践案例充分展示了其快速搭建生产就绪集群的能力。

相关推荐
CodeMartain1 小时前
Dify Windows 原生部署(无 Docker、纯本地)
运维·docker·容器
牛奶咖啡132 小时前
k8s容器编排技术实践——使用containerd作为容器运行时部署k8s集群
kubernetes·k8s的安装部署·开启系统的ipvs支持·安装containerd·containerd配置加速器·安装k8s的工具·安装calico网络插件
万里侯3 小时前
云原生数据备份与恢复:保障数据安全的最佳实践
微服务·容器·k8s
llrraa20103 小时前
配置docker国内镜像源
运维·docker·容器
阿里云云原生3 小时前
阿里云 STAROps 全域智能运维平台发布!从“被动救火”到“主动自治”
云原生
2301_780789664 小时前
手游遇到攻击为什么要用SDK游戏盾手游遇到攻击为什么要用 SDK 游戏盾?
安全·web安全·游戏·架构·kubernetes·ddos
35岁程序员的自救之路4 小时前
AiBBS - 面向下一个十年的AI + 云原生社区系统
人工智能·云原生
珂玥c5 小时前
k8s集群ingress碎碎念
云原生·容器·kubernetes
佳杰云星5 小时前
如何给大模型集群选“大脑”?智算调度与管理平台 10 维选型指南(附选型评分表)
人工智能·kubernetes·大模型·云计算·gpu·算力调度·智算中心
比特森林探险记7 小时前
context 在 gRPC / Gin / K8s 中的实战
容器·kubernetes·gin