跳转至

01 sealos

Sealos

sealos 是一种k8s 应用管理和编排工具, 具有非常好的扩展性

工具安装和下载

  • 可以通过以下方式来获取sealos 的版本列表
curl --silent "https://api.github.com/repos/labring/sealos/releases" | jq -r '.[].tag_name'

结果如下:

root@cmzhu:/data# curl --silent "https://api.github.com/repos/labring/sealos/releases" | jq -r '.[].tag_name'
v4.4.0-beta1
v4.3.5
v4.3.4
v4.4.0-alpha3
v4.4.0-alpha1
v4.3.3
v4.3.2
v4.3.1
v4.3.1-rc2
v4.3.1-rc1
v4.3.0
v4.3.0-rc1
v4.2.3
v4.2.2
v5.0.0-alpha1
v4.2.1
v4.2.1-rc6
v4.2.1-rc5
v4.2.1-rc4
v4.2.1-rc3
v4.2.1-rc1
v4.2.0
v4.2.0-alpha3
v4.2.0-alpha2
v4.2.0-alpha1
v4.1.7
v4.1.6
v4.1.5
v4.1.5-rc3
v4.1.5-rc2
root@cmzhu:/data#

其中:v4.3.4表示稳定版 v4.4.0-alpha3,v4.4.0-beta1 表示预发版本

使用下面命令可以获取最新的稳定版本号

VERSION=`curl -s https://api.github.com/repos/labring/sealos/releases/latest | grep -oE '"tag_name": "[^"]+"' | head -n1 | cut -d'"' -f4`

然后开始下载二进制,并且安装

curl -sfL https://raw.githubusercontent.com/labring/sealos/${VERSION}/scripts/install.sh |
  sh -s ${VERSION} labring/sealos

也可以手动下载二进制安装

$ wget https://github.com/labring/sealos/releases/download/${VERSION}/sealos_${VERSION#v}_linux_amd64.tar.gz \
   && tar zxvf sealos_${VERSION#v}_linux_amd64.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin

包管理工具安装

deb(ubuntu/ debian)
echo "deb [trusted=yes] https://apt.fury.io/labring/ /" | sudo tee /etc/apt/sources.list.d/labring.list
sudo apt update
sudo apt install sealos
rpm(Centos/Rocky Linux)
sudo cat > /etc/yum.repos.d/labring.repo << EOF
[fury]
name=labring Yum Repo
baseurl=https://yum.fury.io/labring/
enabled=1
gpgcheck=0
EOF
sudo yum clean all
sudo yum install sealos

源码安装

前置依赖
  1. linux
  2. git
  3. golang 1.20+
  4. libgpgme-dev libbtrfs-dev libdevmapper-dev

如果在 arm64 环境下需要添加 :arm64 后缀。

构建
# git clone the repo
git clone https://github.com/labring/sealos.git
# just make it
make build BINS=sealos

安装k8s 集群

先决条件

sealos 是一个简单的 go 二进制文件,可以安装在大多数 Linux 操作系统中。

以下是一些基本的安装要求:

  • 每个集群节点应该有不同的主机名。 主机名不要带下划线。
  • 所有节点的时间同步。
  • 在 Kubernetes 集群的第一个节点上运行sealos run命令,目前集群外的节点不支持集群安装。
  • 建议使用干净的操作系统来创建集群。不要自己装 Docker。
  • 支持大多数 Linux 发行版,例如:Ubuntu CentOS Rocky linux。
  • 支持 DockerHub 中支持的 Kubernetes 版本。
  • 支持使用 containerd 作为容器运行时。
  • 在公有云上请使用私有 IP。

CPU 架构

目前支持 amd64arm64 架构。

单机安装 Kuberentes

提前将需要用到的镜像打包到本地仓库(远程仓库国内使用比较慢, 建议先将镜像同步回本地仓库)

docker pull labring/kubernetes:v1.25.0
docker pull labring/helm:v3.8.2
docker pull labring/calico:v3.24.1

单机安装命令如下:

sealos run dockerhub.cmzhu.cn:5000/docker.io/labring/kubernetes:v1.25.0 dockerhub.cmzhu.cn:5000/docker.io/labring/helm:v3.8.2 dockerhub.cmzhu.cn:5000/docker.io/labring/calico:v3.24.1 --single

集群安装 Kuberentes

sealos run labring/kubernetes:v1.25.0 labring/helm:v3.8.2 labring/calico:v3.24.1 \
     --masters 192.168.64.2,192.168.64.22,192.168.64.20 \
     --nodes 192.168.64.21,192.168.64.19 -p [your-ssh-passwd]

sealos 增加节点

## 增加node 节点
$ sealos add --nodes 192.168.64.21,192.168.64.19
## 增加master 节点
$  sealos add --masters 192.168.64.21,192.168.64.19 

sealos 删除节点

## 删除node 节点
$ sealos delete --nodes 192.168.64.21,192.168.64.19 
## 删除master 节点
$ sealos delete --masters 192.168.64.21,192.168.64.19

重置集群(删除集群)

$ sealos reset

离线交付

只需要提前导入需要使用到得镜像, 或者保证环境中存在相应得包, 就能够和原本的在线安装方式相同, 来安装

$ sealos pull labring/kubernetes:v1.25.0
# 打包镜像
$ sealos save -o kubernetes.tar labring/kubernetes:v1.25.0

load 镜像

将save 的镜像kubernetes.tar拷贝到指定环境中, load 即可

$ sealos load -i kubernetes.tar

剩下的安装方式与在线安装一致

$ sealos images # 查看集群镜像是否导入成功
$ sealos run labring/kuberentes:v1.25.0  # 单机安装,集群安装同理

快速启动

$ sealos run kubernetes.tar # 单机安装,集群安装同理

k8s 和sealos 支持镜像版本说明

支持containerd 的k8s (k8s 版本 >= 1.18.0)

k8s 版本 sealos 版本 cri 版本 镜像版本
<1.25 >=v4.0.0 v1alpha2 labring/kubernetes:v1.24.0
>=1.25 >=v4.1.0 v1alpha2 labring/kubernetes:v1.25.0
>=1.26 >=v4.1.4-rc3 v1 labring/kubernetes:v1.26.0
>=1.27 >=v4.2.0-alpha3 v1 labring/kubernetes:v1.27.0

这些版本都是以containerd 为容器运行时(runc);

支持 docker 的 Kubernetes(k8s 版本 >=1.18.0)

k8s 版本 sealos 版本 cri 版本 镜像版本
<1.25 >=v4.0.0 v1alpha2 labring/kubernetes-docker:v1.24.0
>=1.25 >=v4.1.0 v1alpha2 labring/kubernetes-docker:v1.25.0
>=1.26 >=v4.1.4-rc3 v1 labring/kubernetes-docker:v1.26.0
>=1.27 >=v4.2.0-alpha3 v1 labring/kubernetes-docker:v1.27.0

上表是以docker 为容器运行时(runc)的k8s