8.1 镜像下载这件小事

为了讨论方便,我们来设想一个场景。很多人会使用网盘来存放一些文件,像照片、文档之类。当我们需要存取文件的时候,我们需要向网盘提供用户名和密码,这样网盘就能验证我们的身份。这时,我们是文件资源的所有者,而网盘则扮演着资源服务器的角色。用户名和密码作为认证方式,保证只有我们自己可以存取自己的文件,如图8-1所示。

图8-1 存取网盘数据

这个场景足够简单,但我们很快就会遇到新需求,我们需要使用一个在线制作相册的应用(以下简称相册)。按正常的使用流程,我们需要把网盘中的照片下载到本地,然后再把照片上传到相册中。

这个过程是比较烦琐的。我们能想到的优化方法是,让相册直接访问网盘来获取我们的照片。而这需要我们把用户名和密码的使用权授予相册。

这样的授权方式,优点显而易见,但缺点也是很明显的:我们把网盘的用户名和密码给了相册,相册就拥有了读写网盘的能力,从数据安全角度来看,这是很可怕的。

其实这是很多应用都会遇到的一般性场景,私有镜像拉取其实也是这样的场景。这里的镜像仓库就跟网盘一样,是资源服务器,而容器集群则是第三方服务,它需要访问镜像仓库获取镜像,如图8-2所示。

图8-2 私有镜像拉取