2.2. 配置对经过身份验证的 registry 的支持


作为 3scale 2.6 发行版本的一部分,容器镜像已从 registry.access.redhat.com 迁移到 registry.redhat.io 中的经过身份验证的 registry。按照以下步骤准备现有的 3scale 基础架构,以支持新的经过身份验证的 registry:

  1. 在新的 Red Hat 身份验证 registry 中创建凭证,位于 registry.redhat.io 中。

    • 创建名为 Registry Service Account 的 Registry Token。此 registry 令牌应该在 3scale 平台中用于进行 registry.redhat.io 进行身份验证。
    • 有关如何创建凭证的详情,请参阅 Red Hat Container Registry Authentication
  2. 当一个 Registry Service Account 可用时,在部署 3scale 基础架构的 OpenShift 项目中创建一个新 secret:

    1. 进入到 Red Hat Service Accounts 面板来获取 OpenShift secret 定义。
    2. 选择用于 3scale 基础架构的 Registry Service Account。
    3. 选择 OpenShift Secret 选项卡,再点下载 secret 链接。
  3. 从 Red Hat Service Accounts 面板下载 OpenShift secret 后,修改 YAML 文件的 metadata 部分中的 name 字段,将现有名称替换为 threescale-registry-auth 名称。

    secret 类似于以下内容:

    apiVersion: v1
    kind: Secret
    metadata:
      name: threescale-registry-auth
    data:
      .dockerconfigjson: a-base64-encoded-string-containing-auth-credentials
    type: kubernetes.io/dockerconfigjson
    Copy to Clipboard Toggle word wrap
  4. 保存更改,并在当前部署的 3scale 2.5 的 OpenShift 项目中创建 secret:

    $ oc create -f the-secret-name.yml
    Copy to Clipboard Toggle word wrap
  5. 创建 secret 后,您可以检查其是否存在。以下命令返回一个包含内容的 secret:

    $ oc get secret threescale-registry-auth
    Copy to Clipboard Toggle word wrap
  6. 创建使用 3scale -registry-auth secret 的 amp 服务帐户。要做到这一点,使用以下内容创建文件 amp-sa.yml

    apiVersion: v1
    kind: ServiceAccount
    imagePullSecrets:
    - name: threescale-registry-auth
    metadata:
      name: amp
    Copy to Clipboard Toggle word wrap
  7. 部署 amp 服务帐户:

    $ oc create -f amp-sa.yml
    Copy to Clipboard Toggle word wrap
  8. 确保已正确创建了 amp 服务帐户。以下命令会返回创建的服务帐户,其内容为 3scale -registry-auth,作为 imagePullSecrets 部分中的一个元素之一:

    $ oc get sa amp -o yaml
    Copy to Clipboard Toggle word wrap
  9. 在应用到现有 3scale 项目的默认服务帐户后,验证权限是否复制到新的 amp 服务帐户。

    • 如果在服务账户身份验证模式下配置了服务发现,请按照 在没有 OAuth 服务器的情况下配置 中的说明,为 system:serviceaccount:<3scale-project>:default 用户授予 cluster-role view 权限,相同的权限现在需要应用到 system:serviceaccount:<3scale-project>:amp:

      $ oc adm policy add-cluster-role-to-user view system:serviceaccount:<3scale-project>:amp
      Copy to Clipboard Toggle word wrap
  10. 更新所有现有 DeploymentConfig 以使用新的 amp 服务帐户:

    $ THREESCALE_DC_NAMES="apicast-production apicast-staging apicast-wildcard-router backend-cron backend-listener backend-redis backend-worker system-app system-memcache system-mysql system-redis system-sidekiq system-sphinx zync zync-database"
    for component in ${THREESCALE_DC_NAMES}; do oc patch dc $component --patch '{"spec":{"template": {"spec": {"serviceAccountName": "amp"}}}}' ; done
    Copy to Clipboard Toggle word wrap

    命令的输出包含这些行:

    deploymentconfig.apps.openshift.io/apicast-production patched
    deploymentconfig.apps.openshift.io/apicast-staging patched
    deploymentconfig.apps.openshift.io/apicast-wildcard-router patched
    deploymentconfig.apps.openshift.io/backend-cron patched
    deploymentconfig.apps.openshift.io/backend-listener patched
    deploymentconfig.apps.openshift.io/backend-redis patched
    deploymentconfig.apps.openshift.io/backend-worker patched
    deploymentconfig.apps.openshift.io/system-app patched
    deploymentconfig.apps.openshift.io/system-memcache patched
    deploymentconfig.apps.openshift.io/system-mysql patched
    deploymentconfig.apps.openshift.io/system-redis patched
    deploymentconfig.apps.openshift.io/system-sidekiq patched
    deploymentconfig.apps.openshift.io/system-sphinx patched
    deploymentconfig.apps.openshift.io/zync patched
    deploymentconfig.apps.openshift.io/zync-database patched
    Copy to Clipboard Toggle word wrap

    上一命令还会重新部署所有 3scale 现有 DeploymentConfig,从而触发它们的重启。

  11. 当 DeploymentConfig 被重启时,您可能会观察其状态中的更改。等待所有 DeploymentConfig 都为 Ready

    • 您可以通过输入以下命令来检查 DeploymentConfig 的状态,并验证每个 DeploymentConfig 的状态是否为 DesiredCurrent 列的值相同,并不是零:

      $ oc get dc
      Copy to Clipboard Toggle word wrap
  12. 另外,验证所有 pod 都处于 Running 状态,并且所有 pod 都是 Ready

    $ oc get pods
    Copy to Clipboard Toggle word wrap
  13. 使用以下命令检查所有 DeploymentConfig 是否设置了 amp 服务帐户:

    $ for component in ${THREESCALE_DC_NAMES}; do oc get dc $component -o yaml | grep -i serviceAccountName; done
    Copy to Clipboard Toggle word wrap
  14. 由于上一命令,可以看到在以前设置 THREESCALE_DC_NAMES 环境变量中定义的元素数多次重复执行以下行:

    serviceAccountName: amp
    Copy to Clipboard Toggle word wrap
  15. 此时,DeploymentConfigurations 已准备好使用红帽经过身份验证的 registry 镜像。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat