离线部署 Sealos:镜像打包与导入的正确姿势

19 阅读2分钟

上周帮一个传统企业的运维小哥搞离线部署,他在内网环境折腾了三天,差点把电脑砸了。我远程看了一眼,发现问题其实特简单——镜像没打包全。

小白最容易踩的坑

很多人以为离线部署就是把 sealos 二进制文件拷进去就完事了。错。你还需要集群镜像、运行时镜像、以及你要跑的应用镜像。漏一个,安装到一半就卡住,报错信息还贼长,根本看不懂哪里出了问题。

那哥们的槽点是:"我明明下载了,为啥还说找不到?"答案是:他下载到了本机,但没 save 成 tar 包带进去。

打包的正确姿势

在有网的机器上,先把所有镜像拉下来:

sealos pull labring/kubernetes:v1.27.7
sealos save -o k8s.tar labring/kubernetes:v1.27.7

重点来了:不只是 kubernetes 镜像,calico、coredns 这些依赖也要一起打包。最省事的办法是用 sealos images 查一下本地有哪些,全部 save 一遍。

导入时的爽点

这是我觉得 sealos 私有化部署做得比较舒服的地方:镜像导入不用折腾 registry。

sealos load -i k8s.tar

一行命令,镜像就进本地缓存了。然后正常跑 sealos run 就行,它会自动从本地找。不像某些方案,还得先起个 harbor,再改一堆配置。

给新手的建议

  1. 先在有网环境跑一遍,记录所有被拉取的镜像名

  2. 一次性打包成一个 tar,别分开存,容易漏

  3. U 盘别用 FAT32 格式,tar 包超过 4G 就傻眼了(别问我怎么知道的)

离线部署本身不难,难的是你得清楚这套东西到底依赖什么。把这个搞明白了,剩下就是体力活。