新春之际,很高兴在此时宣布 Sealer[1] 0.9 版本的正式发布。Sealer 是一款致力于探索面向分布式应用的快速打包、交付和运行的解决方案。2021 年5月 Sealer 项目正式开源;短短一年时间,Sealer 在 2022 年 4 月成为 CNCF Sandbox 项目。
Sealer 0.9 版本中,其在核心定位上由专注 “集群维度的 Build,Share,Run” 升级为 “以集群为基础,以应用为中心,帮助集群和分布式应用实现 Build, Share,Run”,并重点增强了对应用的支持能力。
版本详解
增强对应用的支持
应用与集群解耦
Docker Image 很好的解决了单机应用的打包交付问题,而 Sealer Image[2] 尝试在集群维度,解决类 Kubernetes 集群以及分布式应用的打包交付问题。Sealer Image 基于包含内容将 Sealer Image 分为集群镜像和应用镜像。其中:
- 集群镜像,表示一个镜像包含 cluster runtime,如 Kubernetes、K0S、K3S 等。Run 阶段既会安装集群也会安装应用(如果包含了应用)
- 应用镜像,表示一个镜像未包含 cluster runtime,其需要基于已有的集群进行安装。
Kubefile 支持 LABEL & KUBEVERSION 指令
Kubefile 中 LABEL 指令类似 Dockerfile LABEL 指令,允许用户针对 `Sealer Image` 指定一些元数据信息,这些元数据信息在构建完成后可通过 sealer inspect 命令查看。
其中,Sealer 官方保留以 *http://sealer.io/ 为前缀的 label key,如:
针对集群镜像,通过 LABEL 可声明集群镜像支持的能力列表等信息
- http://cluster.alpha.sealer.io/cluster-runtime-type,支持的集群类型,如 kubernetes, k0s, k3s 等
- http://cluster.alpha.sealer.io/cluster-runtime-version,支持的集群 runtime 的版本,如 kubernetes 版本
- http://cluster.alpha.sealer.io/container-runtime-type,支持的 container runtime 类型,如 docker,containerd 等