概念验证 - 部署 Red Hat Quay
前言 复制链接链接已复制到粘贴板!
对于生产目的,以下 概念验证 部署方法不受支持。此部署类型使用本地存储。在并行访问 Red Hat Quay 所需的存储 registry 时,无法保证提供所需的读写一致性和数据完整性保证。不要将此部署类型用于生产目的。仅用于测试目的。
Red Hat Quay 是一个企业级的 registry,用于构建、保护和提供容器镜像。本节中的文档详细介绍了如何部署 Red Hat Quay 以概念验证 或非生产目的。本文档的主要目标包括:
- 如何为基本非生产环境部署 Red Hat Quay。
- 作为 Red Hat Quay 的容器镜像管理,包括如何推送、拉取、标签和组织镜像。
- 探索可用性和可伸缩性。
- 如何使用 SSL/TLS 证书部署高级 Red Hat Quay 概念验证部署。
除了本文档的主要目标之外,可以使用概念验证部署来测试 Red Hat Quay 提供的各种功能,如建立超级用户、设置存储库配额限制、启用 Splunk 进行操作日志存储、启用 Clair 进行漏洞报告等。有关本指南后的一些功能列表,请参阅"下一步"部分。
此概念验证部署步骤可以在一台机器(物理或虚拟)上进行操作。
第 1 章 先决条件 复制链接链接已复制到粘贴板!
Red Hat Enterprise Linux (RHEL) 9
- 要获得 Red Hat Enterprise Linux (RHEL) 9 的最新版本,请参阅 下载 Red Hat Enterprise Linux。
- 有关安装说明,请参阅 Red Hat Enterprise Linux 9 产品文档。
- 有效的红帽订阅
- 两个或多个虚拟 CPU
- 4 GB 或更多 RAM
测试系统中大约 30 GB 的磁盘空间,可按如下方式划分:
- Red Hat Enterprise Linux (RHEL)操作系统大约需要 10 GB 磁盘空间。
- 运行三个容器的 Docker 存储需要大约 10 GB 磁盘空间。
Red Hat Quay 本地存储大约需要 10 GB 磁盘空间。
注意CEPH 或其他本地存储可能需要更多内存。
有关大小调整的更多信息,请参阅 Quay 3.x 大小指南。
Red Hat Quay 支持以下构架:
- amd64/x86_64
- s390x
- ppc64le
1.1. 安装 Podman 复制链接链接已复制到粘贴板!
本文档使用 Podman 来创建和部署容器。
有关 Podman 和相关技术的更多信息,请参阅在 Red Hat Enterprise Linux 9 上构建、运行和管理 Linux 容器。
如果您的系统中没有安装 Podman,可以使用等同的 Docker 命令,但不建议这样做。Docker 尚未通过 Red Hat Quay 3 测试,并将在以后的版本中弃用。对于 Red Hat Quay 3 的高可用性、生产质量部署,建议使用 podman。
使用以下步骤安装 Podman。
流程
输入以下命令安装 Podman:
sudo yum install -y podman
$ sudo yum install -y podman
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 另外,您可以安装
container-tools
模块,该模块拉取到一组完整的容器软件包:sudo yum module install -y container-tools
$ sudo yum module install -y container-tools
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 2 章 为 Red Hat Quay 概念验证部署准备 Red Hat Enterprise Linux 复制链接链接已复制到粘贴板!
使用以下步骤为 Red Hat Quay 概念验证部署配置 Red Hat Enterprise Linux (RHEL)。
2.1. 安装并注册 RHEL 服务器 复制链接链接已复制到粘贴板!
使用以下步骤为 Red Hat Quay 概念验证部署配置 Red Hat Enterprise Linux (RHEL)服务器。
流程
- 安装最新的 RHEL 9 服务器。如果想桌面,您可以执行最小 shell 访问安装,或者 Server 加上 GUI。
- 注册并订阅您的 RHEL 服务器系统,如 如何使用 Red Hat Subscription-Manager 在红帽客户门户网站中注册和订阅 RHEL 系统
输入以下命令注册您的系统并列出可用的订阅。选择可用的 RHEL 服务器订阅,附加到池 ID,并升级到最新版本:
subscription-manager register --username=<user_name> --password=<password> subscription-manager refresh subscription-manager list --available subscription-manager attach --pool=<pool_id> yum update -y
# subscription-manager register --username=<user_name> --password=<password> # subscription-manager refresh # subscription-manager list --available # subscription-manager attach --pool=<pool_id> # yum update -y
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. registry 身份验证 复制链接链接已复制到粘贴板!
使用以下步骤验证您的 registry 以获取 Red Hat Quay 概念验证。
流程
按照 Red Hat Container Registry Authentication 过程将身份验证设置为
registry.redhat.io
。通过设置身份验证,您可以拉取Quay
容器。注意这与早期版本的 Red Hat Quay 不同,当镜像托管在 Quay.io 上时。
输入以下命令登录到 registry:
sudo podman login registry.redhat.io
$ sudo podman login registry.redhat.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您会被会提示输入您的
用户名
和密码
。
2.3. 防火墙配置 复制链接链接已复制到粘贴板!
如果您的系统中运行了一个防火墙,您可能需要添加允许访问 Red Hat Quay 的规则。使用以下步骤为概念验证部署配置防火墙。
流程
所需的命令取决于您在系统上映射的端口,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. IP 地址和命名服务 复制链接链接已复制到粘贴板!
在 Red Hat Quay 中配置组件容器有几种方法,以便它们可以相互通信,例如:
- 使用命名服务。如果您希望部署保留容器重启后(通常是导致更改的 IP 地址),则可以实施命名服务。例如,可以使用 dnsname 插件用于允许容器按名称相互解析。
-
使用主机网络。您可以使用
podman run
命令和--net=host
选项,然后在配置中指定地址时使用主机上的容器端口。当两个容器希望使用相同的端口时,此选项容易出现端口冲突。不建议使用这个方法。 - 配置端口映射。您可以使用端口映射来公开主机上的端口,然后将这些端口与主机 IP 地址或主机名结合使用。
本文档使用端口映射,并假设您的主机系统的静态 IP 地址。
组件 | 端口映射 | 地址 |
---|---|---|
Quy |
| http://quay-server.example.com |
Postgres for Quay |
| quay-server.example.com:5432 |
Redis |
| quay-server.example.com:6379 |
postgres 用于 Clair V4 |
| quay-server.example.com:5433 |
Clair V4 |
| http://quay-server.example.com:8081 |
第 3 章 准备您的系统来部署 Red Hat Quay 复制链接链接已复制到粘贴板!
对于概念验证 Red Hat Quay 部署,您必须在部署 registry 前配置端口映射、数据库和 Redis。使用以下步骤为您的系统准备部署 Red Hat Quay。
3.1. 为 Red Hat Quay 配置端口映射 复制链接链接已复制到粘贴板!
您可以使用端口映射来公开主机上的端口,然后将这些端口与主机 IP 地址或主机名结合使用,以导航到 Red Hat Quay 端点。
流程
输入以下命令为主机系统获取您的静态 IP 地址:
ip a
$ ip a
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
--- link/ether 6c:6a:77:eb:09:f1 brd ff:ff:ff:ff:ff:ff inet 192.168.1.132/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp82s0 ---
--- link/ether 6c:6a:77:eb:09:f1 brd ff:ff:ff:ff:ff:ff inet 192.168.1.132/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp82s0 ---
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 IP 地址和本地主机名(例如
quay-server.example.com
)添加到/etc/hosts
文件中,该文件将用于访问 Red Hat Quay 端点。您可以输入以下命令确认 IP 地址和主机名已添加到/etc/hosts
文件中:cat /etc/hosts
$ cat /etc/hosts
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
192.168.1.138 quay-server.example.com
192.168.1.138 quay-server.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. 配置数据库 复制链接链接已复制到粘贴板!
Red Hat Quay 需要一个数据库来存储元数据。PostgreSQL 在整个文档中被使用。对于此部署,使用本地文件系统中的目录来持久保留数据库数据。
使用以下步骤设置 PostgreSQL 数据库。
流程
在安装文件夹中,由
$QUAY
变量表示,请输入以下命令为数据库数据创建一个目录:mkdir -p $QUAY/postgres-quay
$ mkdir -p $QUAY/postgres-quay
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令设置适当的权限:
setfacl -m u:26:-wx $QUAY/postgres-quay
$ setfacl -m u:26:-wx $QUAY/postgres-quay
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动
Postgres
容器,使用数据库数据的卷定义指定用户名、密码和数据库名称和端口:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,确保安装了 Postgres
pg_trgm
模块:sudo podman exec -it postgresql-quay /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U postgres'
$ sudo podman exec -it postgresql-quay /bin/bash -c 'echo "CREATE EXTENSION IF NOT EXISTS pg_trgm" | psql -d quay -U postgres'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意Quay
容器需要pg_trgm
模块。
3.3. 配置 Redis 复制链接链接已复制到粘贴板!
Redis 是一个键值存储,供 Red Hat Quay 用于实时构建器日志。
使用以下步骤为 Red Hat Quay 概念验证部署 Redis
容器。
流程
输入以下命令启动
Redis
容器,指定端口和密码:sudo podman run -d --rm --name redis \ -p 6379:6379 \ -e REDIS_PASSWORD=strongpassword \ registry.redhat.io/rhel8/redis-6:1-110
$ sudo podman run -d --rm --name redis \ -p 6379:6379 \ -e REDIS_PASSWORD=strongpassword \ registry.redhat.io/rhel8/redis-6:1-110
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 4 章 部署 Red Hat Quay 复制链接链接已复制到粘贴板!
配置 Red Hat Quay 部署后,您可以按照以下流程部署它。
先决条件
- Red Hat Quay 数据库正在运行。
- Redis 服务器正在运行。
4.1. 创建 YAML 配置文件 复制链接链接已复制到粘贴板!
使用以下步骤在本地部署 Red Hat Quay。
流程
输入以下命令创建一个用于部署 Red Hat Quay 容器的最小
config.yaml
文件:touch config.yaml
$ touch config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将以下 YAML 配置复制并粘贴到
config.yaml
文件中:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个目录来复制 Red Hat Quay 配置捆绑包:
mkdir $QUAY/config
$ mkdir $QUAY/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 Red Hat Quay 配置文件复制到目录中:
cp -v config.yaml $QUAY/config
$ cp -v config.yaml $QUAY/config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1.1. 配置 Red Hat Quay 超级用户 复制链接链接已复制到粘贴板!
您可以通过编辑 config.yaml
文件来添加超级用户,以添加所需的配置字段。超级用户帐户列表作为数组存储在字段 SUPER_USERS
中。超级用户具有以下功能:
- 用户管理
- 机构管理
- 服务密钥管理
- 更改日志透明性
- 使用日志管理
- 全局可见的用户消息创建
流程
将
SUPER_USERS
数组添加到config.yaml
文件中:SERVER_HOSTNAME: quay-server.example.com SETUP_COMPLETE: true SUPER_USERS: - quayadmin ...
SERVER_HOSTNAME: quay-server.example.com SETUP_COMPLETE: true SUPER_USERS: - quayadmin
1 ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 如果遵循本指南,请使用
quayadmin
。
4.2. 为镜像数据准备本地存储 复制链接链接已复制到粘贴板!
使用以下步骤设置本地文件系统来存储 registry 镜像。
流程
输入以下命令创建一个将存储 registry 镜像的本地目录:
mkdir $QUAY/storage
$ mkdir $QUAY/storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置目录以存储 registry 镜像:
setfacl -m u:1001:-wx $QUAY/storage
$ setfacl -m u:1001:-wx $QUAY/storage
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. 部署 Red Hat Quay registry 复制链接链接已复制到粘贴板!
按照以下步骤部署 Quay
registry 容器。
流程
输入以下命令启动
Quay
registry 容器,为配置数据指定适当的卷,并为镜像数据指定本地存储:sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.15.1
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.15.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 5 章 使用 Red Hat Quay 复制链接链接已复制到粘贴板!
以下步骤演示了如何使用接口来创建新机构和存储库,以及如何搜索和浏览现有存储库。执行以下步骤 3,您可以使用命令行界面与 registry 交互并推送和拉取镜像。
流程
-
使用您的浏览器访问位于
http://quay-server.example.com
的 Red Hat Quay registry 的用户界面,假设您在/etc/hosts
文件和config.yaml
文件中已将quay-server.example.com
配置为您的主机名。 -
点
Create Account
并添加用户,例如quayadmin
,密码为password
。 在命令行中登录到 registry:
sudo podman login --tls-verify=false quay-server.example.com
$ sudo podman login --tls-verify=false quay-server.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Username: quayadmin Password: password Login Succeeded!
Username: quayadmin Password: password Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.1. 在 Red Hat Quay 中推送和拉取镜像 复制链接链接已复制到粘贴板!
使用以下步骤将镜像推送到 Red Hat Quay registry。
流程
要从 Red Hat Quay registry 中测试推送和拉取镜像,首先从外部 registry 拉取示例镜像:
sudo podman pull busybox
$ sudo podman pull busybox
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令查看镜像的本地副本:
sudo podman images
$ sudo podman images
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/busybox latest 22667f53682a 14 hours ago 1.45 MB
REPOSITORY TAG IMAGE ID CREATED SIZE docker.io/library/busybox latest 22667f53682a 14 hours ago 1.45 MB
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令标记此镜像,这会准备镜像以将其推送到 registry:
sudo podman tag docker.io/library/busybox quay-server.example.com/quayadmin/busybox:test
$ sudo podman tag docker.io/library/busybox quay-server.example.com/quayadmin/busybox:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将镜像推送到 registry。在这一步后,您可以使用浏览器在存储库中查看标记的镜像。
sudo podman push --tls-verify=false quay-server.example.com/quayadmin/busybox:test
$ sudo podman push --tls-verify=false quay-server.example.com/quayadmin/busybox:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signatures
Getting image source signatures Copying blob 6b245f040973 done Copying config 22667f5368 done Writing manifest to image destination Storing signatures
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要从命令行测试对镜像的访问,首先删除镜像的本地副本:
sudo podman rmi quay-server.example.com/quayadmin/busybox:test
$ sudo podman rmi quay-server.example.com/quayadmin/busybox:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Untagged: quay-server.example.com/quayadmin/busybox:test
Untagged: quay-server.example.com/quayadmin/busybox:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 再次拉取镜像,这次从 Red Hat Quay registry 中拉取镜像:
sudo podman pull --tls-verify=false quay-server.example.com/quayadmin/busybox:test
$ sudo podman pull --tls-verify=false quay-server.example.com/quayadmin/busybox:test
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2. 访问超级用户管理员面板 复制链接链接已复制到粘贴板!
如果您将超级用户添加到 config.yaml
文件中,您可以按照以下流程访问 Red Hat Quay UI 上的 Superuser Admin Panel。
先决条件
- 您已配置了超级用户。
流程
单击 UI 导航窗格中的当前用户名或 avatar,以访问 Red Hat Quay UI 上的 Superuser Admin 面板。然后,单击 Superuser Admin Panel。
在本页中,您可以管理用户、您的机构、服务密钥、查看更改日志、查看使用情况日志,并为您的机构创建全局消息。
第 6 章 使用 SSL/TLS 证书进行概念验证部署 复制链接链接已复制到粘贴板!
使用以下小节配置带有 SSL/TLS 证书的 Red Hat Quay 部署概念验证。
6.1. 使用 SSL/TLS 复制链接链接已复制到粘贴板!
使用 SSL/TLS 的文档 已被修改并移到安全 Red Hat Quay 中。本章将在以后的 Red Hat Quay 版本中删除。
6.1.1. 创建证书颁发机构 复制链接链接已复制到粘贴板!
使用以下步骤设置您自己的 CA,并使用它来为您的域发布服务器证书。这可让您使用自己的证书保护与 SSL/TLS 的通信。
流程
输入以下命令生成 root CA 密钥:
openssl genrsa -out rootCA.key 2048
$ openssl genrsa -out rootCA.key 2048
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令生成 root CA 证书:
openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
$ openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入要合并到证书请求中的信息,包括服务器主机名,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令生成服务器密钥:
openssl genrsa -out ssl.key 2048
$ openssl genrsa -out ssl.key 2048
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令生成签名请求:
openssl req -new -key ssl.key -out ssl.csr
$ openssl req -new -key ssl.key -out ssl.csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入要合并到证书请求中的信息,包括服务器主机名,例如:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建配置文件
openssl.cnf
,指定服务器主机名,例如:openssl.cnf
文件示例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用配置文件生成证书
ssl.cert
:openssl x509 -req -in ssl.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ssl.cert -days 356 -extensions v3_req -extfile openssl.cnf
$ openssl x509 -req -in ssl.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out ssl.cert -days 356 -extensions v3_req -extfile openssl.cnf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令确认您的创建证书和密钥:
ls /path/to/certificates
$ ls /path/to/certificates
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
rootCA.key ssl-bundle.cert ssl.key custom-ssl-config-bundle-secret.yaml rootCA.pem ssl.cert openssl.cnf rootCA.srl ssl.csr
rootCA.key ssl-bundle.cert ssl.key custom-ssl-config-bundle-secret.yaml rootCA.pem ssl.cert openssl.cnf rootCA.srl ssl.csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.2. 为独立 Red Hat Quay 部署配置 SSL/TLS 复制链接链接已复制到粘贴板!
对于独立的 Red Hat Quay 部署,必须使用命令行界面和手动更新 config.yaml
文件来配置 SSL/TLS 证书。
6.2.1. 使用命令行界面配置自定义 SSL/TLS 证书 复制链接链接已复制到粘贴板!
必须使用命令行界面(CLI)配置 SSL/TLS,并手动更新 config.yaml
文件。
先决条件
- 您已创建了证书颁发机构并签署证书。
流程
将证书文件和主密钥文件复制到您的配置目录中,确保它们分别命名为
ssl.cert
和ssl.key
:cp ~/ssl.cert ~/ssl.key /path/to/configuration_directory
cp ~/ssl.cert ~/ssl.key /path/to/configuration_directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令进入配置目录:
cd /path/to/configuration_directory
$ cd /path/to/configuration_directory
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
config.yaml
文件并指定您希望 Red Hat Quay 处理 SSL/TLS:config.yaml
文件示例# ... SERVER_HOSTNAME: <quay-server.example.com> ... PREFERRED_URL_SCHEME: https # ...
# ... SERVER_HOSTNAME: <quay-server.example.com> ... PREFERRED_URL_SCHEME: https # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:输入以下命令将
rootCA.pem
文件的内容添加到ssl.cert
文件的末尾:cat rootCA.pem >> ssl.cert
$ cat rootCA.pem >> ssl.cert
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令停止
Quay
容器:sudo podman stop <quay_container_name>
$ sudo podman stop <quay_container_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令重启 registry:
sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.15.1
$ sudo podman run -d --rm -p 80:8080 -p 443:8443 \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.15.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3. 测试 SSL/TLS 配置 复制链接链接已复制到粘贴板!
可以使用命令行界面(CLI)测试您的 SSL/TLS 配置。使用以下步骤测试 SSL/TLS 配置。
6.3.1. 使用 CLI 测试 SSL/TLS 配置 复制链接链接已复制到粘贴板!
可以使用命令行界面(CLI)测试您的 SSL/TLS 配置。使用以下步骤测试 SSL/TLS 配置。
使用以下步骤通过 CLI 测试 SSL/TLS 配置。
流程
输入以下命令尝试登录到启用了 SSL/TLS 的 Red Hat Quay registry:
sudo podman login quay-server.example.com
$ sudo podman login quay-server.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Error: error authenticating creds for "quay-server.example.com": error pinging docker registry quay-server.example.com: Get "https://quay-server.example.com/v2/": x509: certificate signed by unknown authority
Error: error authenticating creds for "quay-server.example.com": error pinging docker registry quay-server.example.com: Get "https://quay-server.example.com/v2/": x509: certificate signed by unknown authority
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 因为 Podman 不信任自签名证书,所以必须使用-
-tls-verify=false
选项:sudo podman login --tls-verify=false quay-server.example.com
$ sudo podman login --tls-verify=false quay-server.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Login Succeeded!
Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在后面的部分中,您要将 Podman 配置为信任 root 证书颁发机构。
6.3.2. 使用浏览器测试 SSL/TLS 配置 复制链接链接已复制到粘贴板!
使用以下步骤使用浏览器测试 SSL/TLS 配置。
流程
导航到您的 Red Hat Quay registry 端点,例如
https://quay-server.example.com
。如果正确配置,浏览器会警告潜在的风险:继续登录屏幕。浏览器会通知您连接不安全。例如:
在以下部分中,您要将 Podman 配置为信任 root 证书颁发机构。
6.4. 配置 Podman 以信任证书颁发机构 复制链接链接已复制到粘贴板!
Podman 使用两个路径来查找证书颁发机构(CA)文件: /etc/containers/certs.d/
和 /etc/docker/certs.d/
。使用以下步骤将 Podman 配置为信任 CA。
流程
将 root CA 文件复制到
/etc/containers/certs.d/
或/etc/docker/certs.d/
之一。使用服务器主机名决定的确切路径,并将文件命名为ca.crt
:sudo cp rootCA.pem /etc/containers/certs.d/quay-server.example.com/ca.crt
$ sudo cp rootCA.pem /etc/containers/certs.d/quay-server.example.com/ca.crt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在登录到 Red Hat Quay registry 时,验证您不再需要使用 the
-tls-verify=false
选项:sudo podman login quay-server.example.com
$ sudo podman login quay-server.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Login Succeeded!
Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.5. 将系统配置为信任证书颁发机构 复制链接链接已复制到粘贴板!
使用以下步骤将您的系统配置为信任证书颁发机构。
流程
输入以下命令将
rootCA.pem
文件复制到合并的系统范围信任存储中:sudo cp rootCA.pem /etc/pki/ca-trust/source/anchors/
$ sudo cp rootCA.pem /etc/pki/ca-trust/source/anchors/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令更新系统范围的信任存储配置:
sudo update-ca-trust extract
$ sudo update-ca-trust extract
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选。您可以使用
trust list
命令来确保Quay
服务器已配置:trust list | grep quay
$ trust list | grep quay label: quay-server.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 现在,当您通过
https://quay-server.example.com
浏览到 registry 时,锁定图标会显示连接安全:要从系统范围的信任中删除
rootCA.pem
文件,请删除该文件并更新配置:sudo rm /etc/pki/ca-trust/source/anchors/rootCA.pem
$ sudo rm /etc/pki/ca-trust/source/anchors/rootCA.pem
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo update-ca-trust extract
$ sudo update-ca-trust extract
Copy to Clipboard Copied! Toggle word wrap Toggle overflow trust list | grep quay
$ trust list | grep quay
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如需更多信息,请参阅 使用共享系统证书的 RHEL 9 文档。
第 7 章 将 Podman CNI 配置为使用 IPv6 复制链接链接已复制到粘贴板!
在某些情况下,您可能想要运行本地的 Red Hat Quay 实例以使用 IPv6。此设置常用于开发或测试目的。
默认情况下,root 用户的 Podman 网络不使用 IPv6,而是默认使用 IPv4。您可以将 Podman Container Network Interface (CNI)配置为使用 IPv4 和 IPv6,这允许使用 IPv6 的 Red Hat Quay 实例。
其他资源
7.1. 创建双栈容器网络 复制链接链接已复制到粘贴板!
使用以下步骤创建双栈的新容器网络。
流程
除非需要 默认 容器网络同时使用 IPv4 和 IPv6,否则建议 创建新容器 网络为双栈。作为 root 用户,运行以下命令来创建双栈的新容器网络:
podman network create ip-dual-stack --ipv6
# podman network create ip-dual-stack --ipv6
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过此命令,使用此网络的新容器是原生的双栈。
7.2. 在 IPv6 中部署 Red Hat Quay 的本地实例 复制链接链接已复制到粘贴板!
创建新的双栈网络后,您可以部署 Red Hat Quay 的本地实例。
先决条件
-
您已配置了 Redis、PostgreSQL 数据库、本地镜像存储,以及创建带有所需设置的
config.yaml
文件。
流程
在 Red Hat Quay
config.yaml
文件中,将FEATURE_LISTEN_IP_VERSION
字段设置为IPv6
。例如:# ... FEATURE_LISTEN_IP_VERSION: dual-stack # ...
# ... FEATURE_LISTEN_IP_VERSION: dual-stack # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令启动
Quay
registry 容器,为配置数据指定适当的卷,并为镜像数据指定本地存储。请注意,如果您使用双栈,则必须在启动容器时指定显式 IPv6 端口映射。sudo podman run -d --rm -p "[::]:80:8080" -p "[::]:443:8443" \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.15.1
$ sudo podman run -d --rm -p "[::]:80:8080" -p "[::]:443:8443" \ --name=quay \ -v $QUAY/config:/conf/stack:Z \ -v $QUAY/storage:/datastorage:Z \ registry.redhat.io/quay/quay-rhel8:v3.15.1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第 8 章 后续步骤 复制链接链接已复制到粘贴板!
部署 Red Hat Quay 的概念版本后,以下小节可能有用。其中许多流程都可用于概念验证部署,为 Red Hat Quay 的功能提供见解。
使用 Red Hat Quay。本指南中的内容解释了以下概念:
- 添加用户和软件仓库
- 使用镜像标签
- 使用构建 worker 构建 Dockerfile
- 设置构建触发器
- 为存储库事件添加通知
- 更多
管理 Red Hat Quay.本指南中的内容解释了以下概念:
- 使用 SSL/TLS
- 配置操作日志存储
- 配置 Clair 安全扫描程序
- 仓库镜像
- IPv6 和双栈部署
- 为 Red Hat Quay 配置 OIDC
- geo-replication
- 更多