在CentOS/RHEL/Ubuntu上设置Red Hat Quay注册表
Red Hat Quay是企业质量的容器注册表,在Red Hat收购CoreOS Quay Enterprise之后更名。 Red Hat Quay注册表用于构建和存储容器,然后将其部署到跨企业容器平台的服务器,例如Kubernetes,OpenShift Container Platform 等
Quay Registry的功能
Quay的主要功能包括:高可用性设计支持地理复制支持Docker v2,架构2(多体系结构)与持续集成管道的最佳集成支持自定义日志轮换支持各种身份验证,访问方法和存储后端自动扫描安全漏洞
本教程将讨论用于设置单个实例Quay Registry的步骤。此设置仅用于POC用途,不能用作生产安装。有关高可用性Quay注册表,请查阅Red Hat官方文档。
Quay组件
简单Quay设置的三个核心组件是:数据库:由Red Hat Quay用作其主要元数据存储(不用于图像存储)Redis:用作提供实时事件的键/值存储Quay(容器注册表) :将码头容器作为服务运行,由容器中的几个组件组成。
设置硬件最低要求
此设置需要具有以下最低硬件要求的物理机或者虚拟机:内存:4 GB CPU:2磁盘空间:30GB至少10GB的磁盘空间用于Docker存储(运行3个容器)至少10GB的磁盘空间用于Quay本地存储(CEPH)或者其他本地存储可能需要更多内存)
以下是设置过程中要遵循的步骤。
安装Docker Engine
Docker用于运行Quay容器,请使用下面的教程将其安装在系统上。
如何在RHEL 7 Server/Workstation上安装Docker
如何在Ubuntu/Debian/Fedora/CentOS上安装Docker CE
安装和部署数据库
我们可以选择在容器中或者VM上运行数据库服务器。对于我的设置,MariaDB数据库安装在将托管Quay的虚拟机上。
--- CentOS/RHEL -- $sudo yum -y install mariadb-server mariadb -- Ubuntu --- $sudo apt install mariadb-server
安装后,启动并启用服务器以在引导时启动。
sudo systemctl enable --now mariadb
保护数据库服务器安装。
mysql_secure_installation
现在为Quay创建一个数据库。
CREATE DATABASE quay_registry; GRANT ALL ON quay_registry.* TO theitroad@localhost'%' IDENTIFIED BY "Ain3IH0aing7"; FLUSH PRIVILEGES; QUIT;
安装和配置Redis
还要在虚拟机上而不是在容器中安装Redis服务器。
在CentOS/RHEL上
sudo rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm sudo rpm -ivh https://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum install -y redis --enablerepo=remi
对于RHEL 7,启用以下存储库:
sudo subscription-manager repos --enable=rhel-7-server-optional-rpms
Ubuntu:
sudo apt-get install redis-server
安装后启动并启用redis服务。
sudo systemctl enable --now redis
由于所有内容都在同一服务器上运行,因此将Redis配置为侦听127.0.0.1和服务器专用IP地址。
sudo vim /etc/redis.conf
将绑定地址设置为:
bind 127.0.0.1 ::1 10.10.1.15
进行更改后,重新启动服务。
sudo systemctl restart redis
确认Redis服务已启动。
$systemctl status redis $ss -tunelp | grep 6379
生成红帽码头配置
在将Red Hat Quay服务作为容器运行之前,我们需要使用相同的码头容器创建部署Red Hat Quay所需的配置文件(config.yaml)。 UI管理员密码作为配置参数传递到Quay容器。
$sudo docker run -p 443:8443 quay.io/redhat/quay config Heer4giivoeCoh4
用管理员密码替换Heer4giivoeCoh4. 启动容器后,访问Quay仪表板或者https://<IP |主机名>:443.
登录凭据为:
Username: quayconfig Password: Heer4giivoeCoh4
在下一个屏幕上选择新的注册表设置。
输入要创建的架构的数据库连接设置。
创建用于管理Red Hat Quay的超级用户帐户。
还提供redis连接信息。
设置服务器主机名以及是否启用TLS/SSL。
相应地设置注册表存储。
验证Quay Registry设置并保存。
下载将用于引导Quay注册表服务器的配置。
部署Red Hat Quay注册表
我们已将配置文件下载到本地计算机,然后将其上传到将要运行Quay的服务器。
scp quay-config.tar.gz theitroad@localhost:
我们将使用与用于创建配置文件的码头容器相同的码头容器,以在集群中的节点上部署Red Hat Quay服务。由于这是基本设置,因此要在单个节点上进行设置。为了获得高可用性,我们可能需要三个或者更多节点(例如,quay01,quay02和quay03)
创建数据和配置目录。
mkdir -p /data/quay/config mkdir -p /data/quay/storage
复制配置文件并解压缩。
cp quay-config.tar.gz /data/quay/config/ cd /data/quay/config/ tar xvf quay-config.tar.gz
最后,启动Quay容器。
docker run --restart=always -p 443:8443 -p 80:8080 \ --sysctl net.core.somaxconn=4096 \ -v /data/quay/config:/conf/stack:Z \ -v /data/quay/storage:/datastorage:Z \ -d quay.io/redhat/quay:v3.0.3
在防火墙中允许http和https端口。
sudo firewall-cmd --permanent --zone=trusted --add-port=80/tcp sudo firewall-cmd --permanent --zone=trusted --add-port=443/tcp sudo firewall-cmd --reload
现在,我们可以在配置的DNS名称上通过https协议访问Red Hat Quay Registry仪表板。
有关设置和更多配置的更多信息,请访问Red Hat Quay文档页面。