5.2. 手动公开受保护的registry


通过使用路由公开 registry,用户不再需要从集群内部登录到 OpenShift 镜像 registry。通过此外部访问,您可以使用路由地址从集群外部登录到 registry。然后,您可以使用路由主机标记并将镜像推送到现有项目中。

您可以使用configs.imageregistry.operator.openshift.io资源中的DefaultRoute参数或使用自定义路由来公开路由。

先决条件

  • 以下的先决条件会被自动执行:

    • 部署 Registry Operator。
    • 部署 Ingress Operator。
  • 您可以使用具有 cluster-admin 角色的用户访问集群。

流程

  1. 要使用 DefaultRoute 参数公开 registry,请将 DefaultRoute 设置为 True

    $ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
    Copy to Clipboard Toggle word wrap
  2. 输入以下命令使用 podman 登录:

    $ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')
    Copy to Clipboard Toggle word wrap
    $ podman login -u kubeadmin -p $(oc whoami -t) --tls-verify=false $HOST
    Copy to Clipboard Toggle word wrap
    • --TLS-verify=false :如果路由的默认证书不受信任,则将此参数设置为 false。您可以将一个自定义的可信证书设置为 Ingress Operator 的默认证书。
  3. 要使用自定义路由公开 registry,请使用路由的 TLS 密钥创建一个 secret。此步骤是可选的。如果不创建一个secret,则路由将使用Ingress Operator的默认TLS配置。

    $ oc create secret tls public-route-tls \
        -n openshift-image-registry \
        --cert=</path/to/tls.crt> \
        --key=</path/to/tls.key>
    Copy to Clipboard Toggle word wrap
  4. 在 Registry Operator 中输入以下命令:

    $ oc edit configs.imageregistry.operator.openshift.io/cluster
    Copy to Clipboard Toggle word wrap
    spec:
      routes:
        - name: public-routes
          hostname: myregistry.mycorp.organization
          secretName: public-route-tls
    ...
    Copy to Clipboard Toggle word wrap
    注意

    如果为 registry 的路由提供了自定义 TLS 配置,则仅设置 secretName

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat