第 9 章 将 Red Hat Quay 与 Bridge Operator 集成


使用 Quay Bridge Operator,您可以将 OpenShift 中的集成容器 registry 替换为 Red Hat Quay registry。通过这样做,集成的 OpenShift registry 变得高度可用,企业级 Red Hat Quay registry,具有增强的基于角色的访问控制(RBAC)功能。

Bridge Operator 的主要目标是将集成的 OpenShift registry 的功能复制到新的 Red Hat Quay registry 中。此 Operator 启用的功能包括:

  • 作为 Red Hat Quay 组织同步 OpenShift 命名空间。

    • 为每个默认命名空间服务帐户创建 Robot 帐户
    • 为每个创建的 Robot 帐户创建机密(将每个 Robot Secret 合并到一个服务帐户,作为可挂载和 Image Pull Secret)
    • 同步 OpenShift ImageStreams 作为 Quay 存储库
  • 自动重写新构建以使用 ImageStreams 输出到 Red Hat Quay
  • 构建完成后会自动导入 ImageStream 标签

通过 Quay Bridge Operator 使用此流程,您可以在 Red Hat Quay 和 OpenShift 集群间启用双向通信。

9.1. 运行 Quay Bridge Operator

9.1.1. 先决条件

在设置 Bridge Operator 前,请保留以下内容:

  • 具有超级用户权限的现有 Red Hat Quay 环境
  • 具有集群管理员权限的 Red Hat OpenShift Container Platform 环境(4.2 或更高版本)
  • OpenShift 命令行工具(oc 命令)

9.1.2. 设置和配置 OpenShift 和 Red Hat Quay

Red Hat Quay 和 OpenShift 配置都是必需的:

9.1.3. Red Hat Quay 设置

创建一个专用的 Red Hat Quay 组织,并从该机构中创建的新应用程序,生成与 OpenShift 中的 Quay Bridge Operator 搭配使用的 OAuth 令牌

  1. 以具有超级用户访问权限的用户身份登录 Red Hat Quay,再选择要为其配置外部应用程序的组织。
  2. 在左侧导航中,选择 Applications。
  3. 选择 Create New Application 并输入新应用的名称(如 openshift)。
  4. 显示新应用程序后,将其选中。
  5. 在左侧导航中,选择 Generate Token 以创建新的 OAuth2 令牌。
  6. 选择所有复选框,授予集成所需的访问权限。
  7. 检查分配的权限,然后选择 Authorize Application,然后进行确认。
  8. 复制并保存要在下一节中使用的生成的 Access Token。

9.1.4. OpenShift 设置

为 Quay Bridge Operator 设置 OpenShift 需要几个步骤,包括:

9.1.4.1. 部署 Operator

部署 Operator 的最快方法是从 OperatorHub 部署。从 OpenShift Web 控制台中的 Administrator 视角,导航到 Operators 选项卡,然后选择 OperatorHub。

搜索 Quay Bridge Operator,然后选择 Install。

选择一个 Approval Strategy,然后选择 Install,它将 Operator 部署到集群中。

9.1.4.2. 为 OAuth 令牌创建 OpenShift secret

Operator 将使用前面获取的 Access Token 与 Quay 通信。将此令牌存储在 OpenShift 中,作为机密。

执行以下命令,在 openshift-operators 命名空间中创建一个名为 quay-integration 的 secret,其键 包含访问令牌:

$ oc create secret -n openshift-operators generic quay-integration --from-literal=token=<access_token>

9.1.4.3. 创建 QuayIntegration 自定义资源

最后,为了完成 OpenShift 和 Quay 之间的集成,需要创建 QuayIntegration 自定义资源。这可以在 Web 控制台中或命令行完成。

quay-integration.yaml

apiVersion: quay.redhat.com/v1
kind: QuayIntegration
metadata:
  name: example-quayintegration
spec:
  clusterID: openshift  1
  credentialsSecret:
    namespace: openshift-operators
    name: quay-integration2
  quayHostname: https://<QUAY_URL>   3
  insecureRegistry: false 4

1
clusterID 值应该在整个生态系统中唯一。这个值是可选的,默认为 openshift
2
credentialsSecret 属性引用包含之前创建的令牌的 secret 的命名空间和名称。
3
使用 Red Hat Quay 实例的主机名替换 QUAY_URL。
4
如果 Quay 使用自签名证书,请设置属性 insecureRegistry: true

创建 QuayIntegration 自定义资源:

$ oc create -f quay-integration.yaml

此时会创建 Quay 集成资源,将 OpenShift 集群链接到 Red Hat Quay 实例。Quay 中的机构应该从 OpenShift 环境为相关的命名空间创建

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.