V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
dayeye2006199
V2EX  ›  Kubernetes

k8s 私有 registry 方案

  •  
  •   dayeye2006199 · 2022-04-20 02:25:52 +08:00 · 3290 次点击
    这是一个创建于 708 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    1. docker registry server
    2. Harbor

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

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

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

    第 1 条附言  ·  2022-04-21 01:28:55 +08:00
    这套 k8s 底座也是部署的一部分。后续也需要我们来维护。
    这个帖子里也询问了有什么比较好的方案: https://www.v2ex.com/t/846931
    目前在看的是 rancher 的离线和 edge 解决方案。

    搞得这么复杂是因为需要把多机的 CPU 、存储、和 GPU 资源进行池化,统一进行调度和管理。部署的程序主要是 jupyterhub+一些其他的机器学习工具(例如 pipeline 管理,实验管理,环境管理等),让用户能够自主服务,申请需要的计算环境和规格。

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

    1. 在其中一个机器上跑个 docker-registry-proxy ,把需要的镜像倒入到这个容器的缓存目录下;
    2. 写个脚本,将其他机器的 docker proxy 配置成上面那个 proxy 地址,同时也给其他机器配置上自己的根证书;
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2020 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 16:18 · PVG 00:18 · LAX 09:18 · JFK 12:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.