概念
sealer可以像docker那样把整个集群制作成镜像,实现分布式软件的构建、交付、运行。
应用场景:
- kubernetes集群安装
- kubernetes集群、数据库、中间件、SaaS应用整体打包,一键交付
- 离线交付,多架构支持,国产化支持
- 各种在kubernetes上编排的分布式应用交付
Clusterfile:用户自定义kubeadm,helm values 等配置的覆盖或合并,plugins,你可以覆盖或合并任何你想要的配置文件。像chart values、docker daemon.json、kubeadm 配置文件等。创建自定义的Clusterfile,使用如下命令创建集群
sealer apply -f Clusterfile
Kubefile:是一个文本文档,包含用户可以在命令行上调用的所有命令来组装映像。我们可以使用Kubefile
来定义可以离线共享和部署的集群映像。Kubefile
就像它包含定义特定Dockerfile
集群的构建指令一样。
创建Kubefile文件
FROM registry.cn-qingdao.aliyuncs.com/sealer-apps/openebs-localpv:2.11.0
COPY prometheus manifests
CMD kubectl apply -f prometheus/crd.yaml
CMD kubectl apply -f prometheus/operator.yaml
执行如下命令构建自定义的集群镜像
sealer build -f Kubefile -t prometheus:2.30.0 --base=false .
使用sealer管理kubernetes集群
安装sealer
#下载软件
wget https://github.com/sealerio/sealer/releases/download/v0.8.5/sealer-v0.8.5-linux-amd64.tar.gz
#解压缩
tar zxvf sealer-v0.8.5-linux-amd64.tar.gz
#移动到/usr/bin目录
mv sealer /usr/bin
启动一个kubernetes集群
sealer run kubernetes:v1.19.8 \
--masters 10.10.20.201,10.10.20.202,10.10.20.203 \
--node10.10.20.204,10.10.20.205,10.10.20.206 --passwd xxx
增加删除节点
sealer join --masters 192.168.0.2,192.168.0.3,192.168.0.4
sealer join --nodes 192.168.0.5,192.168.0.6,192.168.0.7
删除集群
创建集群会默认创建一个集群文件存储在/root/.sealer/[cluster-name]/Clusterfile,里面包含集群元数据信息。
sealer delete -f /root/.sealer/my-cluster/Clusterfile
# 或者
sealer delete --all
升级 Kubernetes 集群
sealer upgrade registry.cn-beijing.aliyuncs.com/sealer-io/kubernetes:v1.19.9_develop -c my-cluster
集群镜像
基于base镜像创建自定义的Cloud images,创建kubefile
FROM kubernetes:v1.19.8
COPY imageList manifests
COPY apollo charts
COPY helm /bin
CMD helm install charts/apollo
COPY recommended.yaml manifests
CMD kubectl apply -f manifests/recommended.yaml
manifests
目录: 这是一个特殊的目录,sealer build的时候会解析这个目录下面的所有yaml文件并把里面的容器镜像地址提取出来,然后拉取。用户标准的kubernetes yaml不放在这个目录的话不会处理。charts
目录: 这也是一个特殊目录,sealer会执行helm template的能力,然后提取chart中的容器镜像地址,拉取并存储到集群镜像中。chart不拷贝到这个目录下不处理。manifests/imageList
: 这是个特殊的文件里面是其它需要拉取的镜像地址列表,比如镜像地址在CRD中sealer解析不到,那就需要手动配置到这个文件中。
构建镜像
sealer build -t my-cluster:v1.19.9 .
私有镜像仓库
集群镜像也可以被推送到docker registry中,诸如harbor一类的镜像仓库
集群镜像上传
#登录镜像仓库
sealer login registry.cn-qingdao.aliyuncs.com -u username -p password
#给镜像打标签
sealer tag dashboard:latest registry.cn-qingdao.aliyuncs.com/sealer-io/kuberentes:v1.19.8
#上传集群镜像
sealer push registry.cn-qingdao.aliyuncs.com/sealer-io/kuberentes:v1.19.8
#下载集群镜像
sealer pull registry.cn-qingdao.aliyuncs.com/sealer-io/kuberentes:v1.19.8
镜像导入导出
sealer save -o dashboard.tar dashboard:latest
# 可以把tar拷贝到客户环境中进行load
sealer load -i dashboard.tar