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

k8s 私有 registry 方案

  •  
  •   dayeye2006199 · 117 天前 · 2397 次点击
    这是一个创建于 117 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    1. docker registry server
    2. Harbor

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

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

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

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

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