在CentOS/RHEL/Ubuntu上设置Red Hat Quay注册表

时间:2020-02-23 14:31:39  来源:igfitidea点击:

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文档页面。