公有镜像仓库是指暴露在互联网、可以从互联网的任意位置拉取镜像的镜像仓库,比如docker.io、quay.io等熟知的公有镜像仓库,企业可以通过公有镜像仓库优缺点对比来拉取合适的镜像。
公有镜像仓库优势:
(1)开放:任何人都可上传、分享镜像到公有镜像仓库中。
(2)便捷高效:搜索、拉取其他开发者的镜像便捷高效。
(3)成本低:企业无需购买硬件、解决方案来搭建镜像仓库,五需团队来维护。
(4)免运维:只需关注应用开发,不必关心镜像仓库的更新、升级、维护等。
公有镜像仓库的局限性:
(1)企业信息隐私和敏感性:企业的代码和数据是企业的私有资产,企业的镜像会包含一些敏感信息,如密钥信息、令牌信息等。这些敏感信息暴露到企业外部可能会带来风险。
(2)安全性:公有镜像仓库中的镜像是由各个开发者分享的,这些镜像通常以功能为目的,对镜像内的依赖包、应用版本等没有任何限制。而在企业环境中,若使用一些含有漏洞的依赖包,则会引入安全隐患。
(3)权限控制:企业中的应用和服务通常由不同的团队开发完成,镜像仓库要能够为每个仓库分配不同类型的成员来管理合库中的镜像。
(4)网络连通性:企业的网络结构多种多样,并非所有环境都可以访问互联网。
(5)吞吐量:大规模部署容器的企业,对网络的吞吐量有非常高的需求公有镜像仓库的吞吐量很难保证这样的需求。
(6)成本:公有镜像仓库通常会按照拥有的仓库数量、镜像数量、存储空间、网络带宽、网络吞吐量等来计价,若企业拥有几十万、甚至几百万个镜像,则要使用几十TB的空间来存储镜像,公有镜像仓库的价格将非常昂贵。
因此,公有镜像仓库带来便捷的同时也可能存在一定的风险,大型企业在使用镜像时,应该根据不同的业务需求,采取公有镜像仓库和自建私有镜像仓库相结合的模式,保证业务的稳定性的同时降低成本。