以下内容均来自个人笔记并重新梳理,如有错误欢迎指正!如果对您有帮助,烦请点赞、关注、转发!欢迎扫码关注个人公众号!
目录
一、Sealos 简介
二、Sealos 下载、安装
三、Sealos 部署 Kubernetes 集群
四、Sealos 常用命令
五、Sealos 构建集群镜像(ClusterImage)
六、Sealos 与 Sealer 对比
一、Sealos 简介
Sealos 是一个基于 Kubernetes 的云操作系统发行版。它采用云原生的方式,抛弃传统的云计算架构,转向以 Kubernetes 为内核的新架构。
Sealos 秉承可以像 Linux 一样简单使用云的理念,在 Sealos 的架构中,公有云和私有云没有本质区别,都只需要安装云操作系统。
与 Sealer 类似,Sealos 可以打包整个 kubernetes 集群实现分布式应用的离线交付。本文将详细介绍通过 Sealos 在本地部署服务器上 kubernetes 集群的方法。
Sealos 项目地址:GitHub - labring/sealos
Sealos 官网地址:Sealos
Sealos 帮助文档:What is Sealos?
Sealos 公有云地址:https://cloud.sealos.io
二、Sealos 下载、安装
# AMD架构
wget https://github.com/labring/sealos/releases/download/v4.3.7/sealos_4.3.7_linux_amd64.tar.gz
tar -xzf sealos_4.3.7_linux_amd64.tar.gz -C /usr/bin
chmod +x /usr/bin/sealos# ARM架构
wget https://github.com/labring/sealos/releases/download/v4.3.7/sealos_4.3.7_linux_arm64.tar.gz
tar -xzf sealos_4.3.7_linux_arm64.tar.gz -C /usr/bin
chmod +x /usr/bin/sealos# 查看版本信息
sealos version
三、Sealos 部署 Kubernetes 集群
1、准备工作
# 关闭防火墙
systemctl disable --now firewalld# 关闭 selinxu
setenforce 0
sed -i ’s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config# 清空 iptables 规则
iptables -F && iptables -t nat -F# 禁用 swap 分区
swapoff -a
sed -i '/swap / s/^\(.*\)$/#\1/g' /etc/fstab# /etc/hosts 文件添加条目(需要保证主机的 hostname 唯一)
172.16.200.166 master
172.16.200.167 node# 配置主机间 SSH 免密(详细过程略)
2、部署集群
- 方式一:sealos run
sealos run labring/kubernetes:v1.26.0 labring/calico:v3.24.1 --masters 172.16.200.166 --nodes 172.16.200.167🔔 提示一
# labring/kubernetes:v1.26.0:指定集群镜像名称,可以通过 https://explore.ggcr.dev 查询
# labring/calico:v3.24.1:指定 Calico 镜像名称
# --masters:指定集群 Master 节点的 IP 地址,多个 IP 通过 ,进行分隔
# --nodes:指定集群 Node 节点的 IP 地址,多个 IP 通过 ,进行分隔🔔 提示二
# Nginx-Ingress-Controller 等组件需要自行安装
- 方式二:sealos apply
sealos apply -f Clusterfile.yaml🔔 提示
可以通过 clusterfile.yaml 自定义部署配置,如 kubeadm 配置、Docker 配置等
clusterfile.yaml 自定义配置示例
🔔 定义集群信息
---
apiVersion: apps.sealos.io/v1beta1
kind: Cluster
metadata:name: mycluster
spec:image:- labring/kubernetes:v1.26.0- labring/calico:v3.24.1ssh:user: rootpk: /root/.ssh/id_rsapasswd: xxxxport: 22hosts:- ips:- 172.16.200.166:22roles:- master- amd64- ips:- 172.16.200.167:22roles:- node- amd64🔔 定义 Calico 配置
---
apiVersion: apps.sealos.io/v1beta1
kind: Config
metadata:name: calico
spec:path: charts/calico/values.yamlstrategy: mergedata: |installation:enabled: truekubernetesProvider: ""calicoNetwork:ipPools:- blockSize: 26cidr: 10.160.0.0/12encapsulation: IPIPnatOutgoing: EnablednodeSelector: all()nodeAddressAutodetectionV4:interface: "eth.*|en.*"
3、实测结果
- Sealos 部署 Kubernetes 集群同样高效
- Sealos 支持的操作系统很广泛,并同时支持 AMD 64 架构和 ARM 64 架构
四、Sealos 常用命令
sealos --helpsealos is a Kubernetes distribution, a unified OS to manage cloud native applications.Cluster Management Commands:apply Run cloud images within a kubernetes cluster with Clusterfilecert update Kubernetes API server's certrun Run cloud native applications with ease, with or without a existing clusterreset Reset all, everything in the clusterstatus state of sealosNode Management Commands:add Add nodes into clusterdelete Remove nodes from clusterRemote Operation Commands:exec Execute shell command or script on specified nodesscp Copy file to remote on specified nodesExperimental Commands:registry registry relatedContainer and Image Commands:build Build an image using instructions in a Containerfile or Kubefilecreate Create a cluster without running the CMD, for inspecting imagediff Inspect changes to the object's file systemsinspect Inspect the configuration of a container or imageimages List images in local storageload Load image(s) from archive filelogin Login to a container registrylogout Logout of a container registrymanifest Manipulate manifest lists and image indexesmerge merge multiple images into onepull Pull images from the specified locationpush Push an image to a specified destinationrmi Remove one or more images from local storagesave Save image into archive filetag Add an additional name to a local imageOther Commands:completion Generate the autocompletion script for the specified shelldocs generate API referenceenv prints out all the environment information in use by sealosgen generate a Clusterfile with all default settingsversion Print version infoUse "sealos <command> --help" for more information about a given command.
# 查看集群镜像
sealos images# 添加 Master 节点
sealos add --masters 172.16.200.168# 删除 Master 节点
sealos delete --masters 172.16.200.168# 添加 Node 节点
sealos add --nodes 172.16.200.168# 删除 Node 节点
sealos delete --nodes 172.16.200.168# 在集群节点上批量执行 shell 命令
sealos exec "cat /etc/hosts"# 查看集群统计信息
sealos status# 删除集群
sealos reset --force
五、Sealos 构建集群镜像(ClusterImage)
1、编写 kubefile 文件
Kubefile 与 Dockerfile 极其相似,由连续列出的各种命令(指令)和参数组成,用于在基础 ClusterImage 上自动执行指令,构建新的 ClusterImage。
- Docker 使用 Dockerfile 构建 Docker 镜像,并使用 Docker 镜像运行 Docker 容器,解决了单主机应用程序的几乎所有交付问题
- Sealos 使用 Kubefile 构建 ClusterImage,并使用 ClusterImage 运行 Kubernetes 集群,将交付概念扩展到集群级别,并且主要关注分布式应用程序的视角
FROM labring/kubernetes:v1.26.0COPY daemon.json etc/
2、构建集群镜像
sealos build -t labring/kubernetes:v1.26.0-fix -f kubefile .
六、Sealos 与 Sealer 对比
Sealos 和 Sealer 都是开源项目,旨在简化 Kubernetes 集群的部署和管理,使用方法和相关命令也极为相似,但是笔者在接触过后感觉 Sealer 在 Kubernetes 集群部署上明显更加高效易用。
Sealos 的主要特点包括:
- 开箱即用:提供预配置的 Kubernetes 环境,无需额外配置
- 易于管理:提供统一的管理工具和控制台
- 安全可靠:提供安全加固和增强功能
- 可扩展性:支持集群扩展和缩减
Sealer 的主要特点包括:
- 简单易用:无需编写复杂命令
- 快速部署:支持一键部署 Kubernetes 集群
- 高可用性:提供高可用集群部署方案
- 可扩展性:支持集群扩展和缩减
Sealos | sealer | |
定位 | Kubernetes 发行版 | Kubernetes 部署工具 |
用户 | 企业、组织 | 运维人员、开发人员 |
特点 | 开箱即用、易于管理、安全可靠 | 简单易用、快速部署 |