Harbor权威指南:容器镜像、Helm Chart等云原生制品的管理与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.4 存储系统配置

在 Harbor 系统中默认使用本地文件系统持久化存储数据。本地文件系统的存储容量和性能有限,并且可靠性不高,因此用户可以配置 Harbor 使用其他存储服务来解决存储问题。Harbor支持使用AWS的Amazon S3、Azure的Blob存储、Google Cloud的Cloud Storage、阿里云的对象存储 OSS、腾讯云的对象存储 COS,以及开源云计算管理平台OpenStack提供的Swift等。

本节介绍如何配置Harbor使用除本地文件系统外的持久化存储,如AWS的Amazon S3、网络文件系统NFS和阿里云的对象存储OSS。

3.4.1 AWS的Amazon S3

Amazon S3(Amazon Simple Storage Service,亚马逊简单存储服务)具有简单、可靠、高性能、可扩展、高可用和持久化的优势,能够为各种高并发、高性能的业务提供持久化存储支撑。Amazon S3因其优秀特性备受用户喜爱,所以在开源社区有很多兼容 S3 接口协议的存储服务项目,如Ceph RADOS Gateway、MinIO等。使用Apache v2.0授权协议的MinIO部署、管理和使用简便,且高度兼容Amazon S3服务接口协议,是自建S3兼容存储服务较佳的选择。

本节介绍如何配置Harbor使用Amazon S3或者MinIO持久化存储Artifact数据。

1.创建S3存储桶

在配置Harbor之前,需要在S3服务上创建Bucket(存储桶)。为了提高服务的可用性、稳定性和访问速度,需要尽量选择地理位置距离Harbor实例更近或者网络链路更短的S3服务,例如和Harbor实例在同一个云服务商的可用区(Availability Zone,云服务厂商在一个地域内根据电力、网络等划分的数据中心),或者和Harbor实例在同一个IDC机房内的S3兼容服务。如图3-11所示,在MinIO中新建的Bucket采用了默认的读写策略。

img

图3-11

首先,创建一个S3存储桶。然后,为该存储桶设置私有读、写策略,防止S3存储桶在未授权的情况下被访问而造成数据泄露。如图3-11所示,在通常情况下,MinIO新建的S3存储桶是私有读写的,这里需要确保没有配置该存储桶的权限为公开读写。最后,在Amazon控制台上拿到Access Key和Secret Key。MinIO的Access Key和Secret Key是在部署MinIO服务时设置的。

2.配置harbor.yml

3.1.1节已经介绍过如何通过harbor.yml配置外置存储,下面讲解如何配置Harbor使用Amazon S3存储:

img

参数属性如表3-23所示。

表3-23

img

3.4.2 网络文件系统NFS

Harbor可以使用网络文件系统(NFS)作为后端存储。这里的NFS文件存储可以为自建的NFS服务器、腾讯云提供的CFS云文件存储服务、阿里云提供的NAS文件存储服务等兼容NFS接口协议的文件存储服务。

在安装或者配置Harbor使用NFS之前需要检查环境,确保:

◎ NFS服务器已正确配置并且拥有固定的IP地址;

◎ 所有运行Harbor实例的节点主机都已经安装了正确的NFS客户端;

◎ 节点主机和NFS服务器之间网络可达。

把NFS服务直接挂载到Harbor实例所在的节点主机上,便可使Harbor使用NFS作为后端持久化存储。

1.节点配置NFS

挂载NFS之前,请确保在节点上已经安装了nfs-utils或者nfs-common。使用如下命令进行安装。

◎ CentOS:执行“sudo yum install nfs-utils”命令进行安装。

◎ Debian或者Ubuntu:执行“sudo apt install nfs-common”命令进行安装。

在完成NFS客户端的安装后,首先执行“mkdir/mnt/harbor/”命令创建挂载目录,然后执行“sudo mount -t nfs -o vers=4.0 <NFS服务器IP>:/<挂载目录>”命令完成NFS挂载。

注意:可以使用autofs工具实现自动挂载。

2.配置Harbor

如果要在 Harbor 中使用配置好的 NFS,则需要修改 harbor.yml 配置文件中的“data_volume”字段为“<挂载目录>”,如前文中的“/mnt/harbor/”,然后进行 Harbor的安装。

3.4.3 阿里云的对象存储OSS

使用阿里云的对象存储OSS作为Harbor后端存储时,其流程与3.4.1节使用S3服务的流程类似。

1.创建OSS存储桶

在配置Harbor之前,需要在阿里云OSS控制台上创建Bucket(存储桶)。为了提高服务的可用性、稳定性和访问速度,应该选择物理位置距离 Harbor 实例更近或者网络链路更短的阿里云对象存储OSS创建存储桶,如和Harbor实例在同一个可用区的对象存储OSS服务。

2.配置harbor.yml

在3.1.1节已经介绍过如何配置外置存储。下面讲解如何配置Harbor使用OSS存储:

img

参数属性如表3-24所示。

表3-24

img