容器镜像中心

序言

    很多事看起来很遥远,实际上并不遥远,近在咫尺,只是你平时没有注意,没有看到风景的变化,四季如春,变幻莫测。


    很多事能看到结局,但是却没想到来的如此之快。。。毫无准备,一脸懵逼。

镜像中心

    容器总是存在一个镜像中心,而一个镜像中心的存在主要是为了保存所有的镜像image,而在使用的时候,总是要追求高可用,从而会有不同的架构。


    开源是为了更好的闭源,从而一般都是使用registry镜像来直接搭建镜像中心。

640?wx_fmt=png

    在使用这种架构的时候,主要就是使用分布式存储,而在使用registry的时候,在配置文件中的storage中将分布式存储的url及账号密码写入即可。而使用nginx作为前端主要是为了将80端口转换成5000端口,并且nginx可以设置主机名,从而能使用域名的方式来进行推送镜像。


    在使用nginx的时候需要注意的是,一个是设置nginx的上传的最大文件的大小,因为对于有的镜像来说,几个G也是很正常的,而nginx默认有1M大小的限制,从而超过了这个大小就会报错request entiry too large;另外一个是nginx的传输有时间的限制的,默认是60s,而对于大文件来说,可能就不止了,设置10分钟试试,否则就会出现报错gateway 504 timeout。


    在使用这种架构的时候,优点是可以平行扩展,当前端的处理能力不足的时候,可以多加几个机器来进行处理,但是调用的链路略长,在虚拟机中直接使用两个容器,一个容器是nginx,一个容器是registry。


    分布式存储大法好。

640?wx_fmt=png

    另外一种架构就是直接使用本地存储,在两台机器上,选择两个比较大的磁盘,用来挂载镜像存储的位置,毕竟所有的镜像都是存在本地之中。


    在这里的高可用主要是需要一个额外的同步进程来进行同步两台机器上的镜像,从而将镜像中心的image保持同步。


    在使用registry的时候,每次进行pull的时候很简单,但是每次要删除镜像的时候就比较复杂了,当程序不断的升级,那么镜像会越来越多,虽然如果设计良好,镜像的空间增长是有限的,但是毕竟存在很多的冗余镜像,一种方法是配置文件中开启删除的功能,然后进行批量的删除,还有一种就是全量的替换挂载的目录/var/lib/registry,然后重启容器进行清空无用的image。


    在进行替换的时候,总是要传输很大的空间,从而在shell里面执行是不安全的,万一断了呢,从而都是使用screen配合rsync的断点续传功能来使用,scp虽然也不错,但是断了就是断了。。。


    screen常用的命令:

        开启: screen -S jobname

        离开:ctrl+a+d

        查看:screen -l

        结束:ctrl+d

640?wx_fmt=png

    rsync命令:rsync -azvp srouce destionation


    在使用registry的时候,使用http协议就好了,当然你要是用https也是可以的,当直接使用docker puull 域名的时候,注意dockerd中需要加入insecure的选项,标注镜像中心的地址。

风言风语

    人走茶凉的另外一种解释就是聚是一团火,散是满天星。。。我就不,聚是满天星,天斗站位,各司其职,散是一团火,人散心不散。

640?wx_fmt=jpeg


    还未相识,相知,就已经离去。。。


    

     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值