第 7 章 使用 Operator 部署 Red Hat Quay
可以使用命令行界面或 OpenShift Container Platform 控制台部署 OpenShift Container Platform 上的 Red Hat Quay。这些步骤基本相同。
7.1. 从命令行部署 Red Hat Quay 复制链接链接已复制到粘贴板!
使用以下步骤,使用命令行界面(CLI)从 部署 Red Hat Quay。
先决条件
- 已使用 CLI 登录 OpenShift Container Platform。
步骤
输入以下命令创建一个命名空间,如
quay-enterprise:oc new-project quay-enterprise
$ oc new-project quay-enterpriseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选。如果要预先配置 Red Hat Quay 部署的任何方面,请为配置捆绑包创建一个
Secret:oc create secret generic quay-enterprise-config-bundle --from-file=config-bundle.tar.gz=/path/to/config-bundle.tar.gz
$ oc create secret generic quay-enterprise-config-bundle --from-file=config-bundle.tar.gz=/path/to/config-bundle.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在名为
quayregistry.yaml的文件中创建QuayRegistry自定义资源对于最小部署,请使用所有默认值:
quayregistry.yaml:
apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: example-registry namespace: quay-enterprise
apiVersion: quay.redhat.com/v1 kind: QuayRegistry metadata: name: example-registry namespace: quay-enterpriseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选。如果要有一些组件非受管状态,请在
spec字段中添加此信息。最小部署可能类似以下示例:带有非受管组件的 quayregistry.yaml 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选。如果您已创建了配置捆绑包,如
init-config-bundle-secret,请在quayregistry.yaml文件中引用它:带有配置捆绑包的 quayregistry.yaml 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选。如果配置了代理,您可以使用覆盖为 Red Hat Quay、Clair 和 mirror 添加信息:
配置了代理的 quayregistry.yaml 示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
输入以下命令在指定命名空间中创建
QuayRegistry:oc create -n quay-enterprise -f quayregistry.yaml
$ oc create -n quay-enterprise -f quayregistry.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令查看
status.registryEndpoint何时填充:oc get quayregistry -n quay-enterprise example-registry -o jsonpath="{.status.registryEndpoint}" -w$ oc get quayregistry -n quay-enterprise example-registry -o jsonpath="{.status.registryEndpoint}" -wCopy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 有关如何跟踪 Red Hat Quay 部署进度的更多信息,请参阅监控和调试部署过程。
7.1.1. 使用 API 创建第一个用户 复制链接链接已复制到粘贴板!
使用以下步骤在 Red Hat Quay 组织中创建第一个用户。
先决条件
-
配置选项
FEATURE_USER_INITIALIZE必须设为True。 - 数据库中不存在任何用户。
此流程通过指定 "access_token": true 来请求 OAuth 令牌。
打开 Red Hat Quay 配置文件并更新以下配置字段:
FEATURE_USER_INITIALIZE: true SUPER_USERS: - quayadminFEATURE_USER_INITIALIZE: true SUPER_USERS: - quayadminCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令停止 Red Hat Quay 服务:
sudo podman stop quay
$ sudo podman stop quayCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令启动 Red Hat Quay 服务:
sudo podman run -d -p 80:8080 -p 443:8443 --name=quay -v $QUAY/config:/conf/stack:Z -v $QUAY/storage:/datastorage:Z {productrepo}/{quayimage}:{productminv}$ sudo podman run -d -p 80:8080 -p 443:8443 --name=quay -v $QUAY/config:/conf/stack:Z -v $QUAY/storage:/datastorage:Z {productrepo}/{quayimage}:{productminv}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下
CURL命令,以使用用户名、密码、电子邮件和访问令牌生成新用户:curl -X POST -k http://quay-server.example.com/api/v1/user/initialize --header 'Content-Type: application/json' --data '{ "username": "quayadmin", "password":"quaypass12345", "email": "quayadmin@example.com", "access_token": true}'$ curl -X POST -k http://quay-server.example.com/api/v1/user/initialize --header 'Content-Type: application/json' --data '{ "username": "quayadmin", "password":"quaypass12345", "email": "quayadmin@example.com", "access_token": true}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果成功,命令会返回带有用户名、电子邮件和加密密码的对象。例如:
{"access_token":"6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED", "email":"quayadmin@example.com","encrypted_password":"1nZMLH57RIE5UGdL/yYpDOHLqiNCgimb6W9kfF8MjZ1xrfDpRyRs9NUnUuNuAitW","username":"quayadmin"} # gitleaks:allow{"access_token":"6B4QTRSTSD1HMIG915VPX7BMEZBVB9GPNY2FC2ED", "email":"quayadmin@example.com","encrypted_password":"1nZMLH57RIE5UGdL/yYpDOHLqiNCgimb6W9kfF8MjZ1xrfDpRyRs9NUnUuNuAitW","username":"quayadmin"} # gitleaks:allowCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果用户存在于数据库中,则返回错误:
{"message":"Cannot initialize user in a non-empty database"}{"message":"Cannot initialize user in a non-empty database"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您的密码至少没有 8 个字符或包含空格,则返回错误:
{"message":"Failed to initialize user: Invalid password, password must be at least 8 characters and contain no whitespace."}{"message":"Failed to initialize user: Invalid password, password must be at least 8 characters and contain no whitespace."}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令登录到 Red Hat Quay 部署:
sudo podman login -u quayadmin -p quaypass12345 http://quay-server.example.com --tls-verify=false
$ sudo podman login -u quayadmin -p quaypass12345 http://quay-server.example.com --tls-verify=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Login Succeeded!
Login Succeeded!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.2. 使用命令行查看创建的组件 复制链接链接已复制到粘贴板!
使用以下步骤查看部署的 Red Hat Quay 组件。
先决条件
- 您已在 OpenShift Container Platform 上部署了 Red Hat Quay。
步骤
输入以下命令查看部署的组件:
oc get pods -n quay-enterprise
$ oc get pods -n quay-enterpriseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.1.3. Pod 横向自动扩展 复制链接链接已复制到粘贴板!
默认部署显示了以下正在运行的 pod:
-
两个用于 Red Hat Quay 应用程序本身的 pod (
example-registry-quay-app requirements') -
一个 Red Hat Quay 日志记录的 Redis pod (
example-registry-quay-redis ldapmodify) -
一个用于 PostgreSQL 的数据库 pod 用于元数据存储(
例如:-registry-quay-database fluentd) -
两个
Quay镜像 pod (example-registry-quay-mirror Case) -
Clair 应用程序的两个 pod (
example-registry-clair-app channel) -
一个用于 Clair 的 PostgreSQL pod (
example-registry-clair-postgres suit)
默认情况下,水平 PPod 自动扩展配置为 管理,并且 Quay 的 pod 数量,Clair 和存储库镜像的数量设置为 2。这有助于避免在通过 Red Hat Quay Operator 或重新调度事件更新或重新配置 Red Hat Quay 时造成停机。您可以输入以下命令查看有关 HPA 对象的信息:
oc get hpa -n quay-enterprise
$ oc get hpa -n quay-enterprise
输出示例
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE example-registry-clair-app Deployment/example-registry-clair-app 16%/90%, 0%/90% 2 10 2 13d example-registry-quay-app Deployment/example-registry-quay-app 31%/90%, 1%/90% 2 20 2 13d example-registry-quay-mirror Deployment/example-registry-quay-mirror 27%/90%, 0%/90% 2 20 2 13d
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
example-registry-clair-app Deployment/example-registry-clair-app 16%/90%, 0%/90% 2 10 2 13d
example-registry-quay-app Deployment/example-registry-quay-app 31%/90%, 1%/90% 2 20 2 13d
example-registry-quay-mirror Deployment/example-registry-quay-mirror 27%/90%, 0%/90% 2 20 2 13d