Linux容器大大简化了软件分发。将应用程序与它运行所需的一切打包有助于提高环境的稳定性和可再现性。
虽然有许多公共注册表,你可以在其中上传、管理和分发容器镜像,但有许多令人信服的理由支持你管理容器注册表。让我们来看看为什么自己管理有意义,以及一个免费的开源项目Pulp如何帮助你在内部环境中管理和分发容器。
为什么要管理自己的容器注册表/strong>
使你考虑管理自己的容器注册表的原因有很多:
大小:一些容器镜像相当大。如果有多个团队下载同一个镜像,可能会花费大量时间,给你的 络和预算带来压力。
带宽:如果你在带宽有限的区域或者在出于安全原因限制访问因特 的组织中工作,则需要一种可靠的方法来管理所使用的容器。
金钱:服务条款可以改变。外部容器注册表可以会引入或增加速率限制阈值,这可能会对你的操作造成极大的限制。
稳定性:由于多种原因,托管在外部源上的容器镜像可能会一天就消失。容器镜像更新这样的小事就可能带来大麻烦。
隐私:你可能还希望开发和分发不希望在公共第三方注册表托管的容器。
用Pulp自己管理
使用Pulp,你可以避免这些问题,并完全控制你的容器。
1. 避免速率限制
在Pulp中创建容器镜像的本地缓存允许组织中的每个人提取托管在Pulp上的容器镜像,而不是从外部注册表。这意味着你可以避免rate限制,只有在需要新内容时才可以从外部注册表进行同步。每当确实需要从外部注册表同步容器时,在从远程注册表启动同步之前,请首先检查内容是否已经存在。如果你受到注册表速率限制,则只镜像所需的内容,然后使用Pulp将其分发到整个组织。
2. 整理容器
3. 无风险试验
在Pulp中,每次对存储库进行更改时,都会创建一个新的不可变版本。你可以创建存储库的多个版本,例如development、test、stage和production,并跨这些版本升级容器。你可以自由地将容器镜像的最新更新从外部注册表同步到Pulp,然后使最新更改可用于开发或其他环境。你可以对存储库进行你认为必要的任何更改,并将容器内容升级为供测试团队或其他环境使用。如果出现问题,还可以回滚到早期版本。
4. 只同步需要的内容
如果要使用Pulp来创建容器子集的本地缓存(而不是完整的容器注册表),你可以从远程源筛选所选的容器。使用Pulp,有多个内容同步选项,以便你只存储所需的内容,或配置部署以按需缓存内容。
5. 在断开连接的环境中工作
如果在断开连接或受限制的环境中工作,你可以将已连接的Pulp实例的更新同步到已断开连接的Pulp。目前,有计划实施一个本地air-gapped Pulp功能,以实现一个完全断开的工作流程。同时,作为一种解决方法,你可以使用Skopeo之类的工具下载所需的容器镜像,然后将它们推送到断开连接的容器注册表中。
更多
使用Pulp,你还可以从containerfiles构建容器,将私有容器推送到存储库,并在整个组织中分发这些容器。
如何开始
如果你对容器注册表的自己管理感兴趣,今天就可以安装Pulp。用Pulp Ansible安装程序,安装过程已经高度自动化和简单。
Pulp有一个基于插件的架构。当你安装Pulp,选择Container插件和任何其他类型你想管理的内容插件。如果你想试用Pulp,你可以评估一个容器版的Pulp。
原文链接:
https://opensource.com/article/21/5/container-management-pulp
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92167 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!