k8s 私有 registry 方案

2022-04-20 02:25:52 +08:00
 dayeye2006199

需要在客户的内网服务器环境中(没有因特网连接)交付一套部署在 k8s 上的软件。 现在计划方案是用硬盘把所有的程序镜像打包,在他们的内网启动一个私有 registry 服务,随后开始正常的部署。

网上看到用的比较多的 registry 方案:

  1. docker registry server
  2. Harbor

Harbor 的功能比较多。Docker registry 安装更简单一些。

这个 registry 只需要只读功能(部署的时候拉取镜像使用,不需要镜像写入,也没有租户管理之类的需求),程序部署完之后基本就没用了。

这样的情况是不是选项 1 更好一些。或者大家有其他更好的建议吗?

3331 次点击
所在节点    Kubernetes
22 条回复
XiLingHost
2022-04-20 02:42:17 +08:00
直接在虚拟机里部署好整套 k8s 环境然后打包成 ova/ovf 到客户的环境里部署
dayeye2006199
2022-04-20 02:53:29 +08:00
@XiLingHost 因为需要多机集群 + GPU 直通,所以不知道虚拟机的方案是否可以方便的支持
oldboy627
2022-04-20 07:24:43 +08:00
我们是 registry ,挺方便的
yijihu
2022-04-20 08:37:34 +08:00
Harbor 不错,我们在用
feelinglucky
2022-04-20 09:00:05 +08:00
无脑选 Harbor 就是了,不会错
eudore
2022-04-20 09:02:08 +08:00
交付场景
1 、所有机器上 docker load 一下就好。
2 、弄个 registry 不推荐 harbor 太麻烦。
Suaxi
2022-04-20 09:11:44 +08:00
镜像不是太多的情况下手动 load 一下就好,如果镜像特别多的话就 harbor
idblife
2022-04-20 09:20:46 +08:00
harbor 吧
貌似 gitlab 也有,还没测试过
Judoon
2022-04-20 09:27:53 +08:00
既然是集群,应该是多机吧,如果镜像仓库部署完了就关掉不用了,怎么保证以下几个场景
1 、应用主动或被动漂移到另一个节点上,没有镜像
2 、(如果 1 的解决方案是在初始状态每个机器都同步一下镜像的话) k8s 在磁盘空间快满了会做 image GC ,未在使用的镜像会被清理。此时再遇到 1 场景,怎么办
3 、上层应用需要升级的时候,是每个机器上导入一遍镜像?
salmon5
2022-04-20 09:34:26 +08:00
harbor ,为什么不用 harbor ?需要一点机器成本?
Aliencn
2022-04-20 10:42:39 +08:00
想想这两个方案那个更方便配合脚本做自动化,需求简单我推荐 registry
XSG
2022-04-20 10:49:09 +08:00
docker load 不推荐,实际长时间使用场景,磁盘空间快满时会触发 pod 驱逐,也会删除本地镜像,到时候 pod 就没法启动了
cloverstd
2022-04-20 11:01:19 +08:00
看你的需求,官方 registry 自部署就可以了,harbor 还要部署数据库
anonymousar
2022-04-20 11:47:05 +08:00
harbor
kaneg
2022-04-20 12:42:15 +08:00
这么简单的需求,docker registry 足矣,它本身也有官方提供的 docker image 启动
anubu
2022-04-20 13:00:17 +08:00
如果真是临时部署,一次性使用,registry 就够了,harbor 复杂了些。但应该还有后续的重新调度、应用升级问题吧,个人认为隔离环境运行 k8s ,私有 registry 是必须的,长期使用还是推荐 harbor 。
codefever
2022-04-20 13:01:47 +08:00
registry 应该可以满足你的需求啊,官方的东西靠谱一点
chronos
2022-04-20 13:09:37 +08:00
直接用 docker registry 就行,harbor 复杂一些,在你的这个场景下没什么必要。
MoonWalker
2022-04-20 13:20:44 +08:00
nexus 貌似也支持 docker 仓库
pydiff
2022-04-20 16:34:07 +08:00
我有个疑问,你们这是要帮人家部署一套 k8s ,然后再部署自己的产品吗?那后面的 k8s 维护也是你们搞吗?是不是表达有误,就是客户已经有了 k8s ,你只是在上面部署产品。如果是这种方式的,正常来讲,客户那边已经有了自己的镜像仓库的,你把自己的镜像保存下来再导入进去即可,然后在 deployment 中配置好 pullsecret 即可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/848029

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX