5.2. 手动公开受保护的registry
通过使用路由公开 registry,用户不再需要从集群内部登录到 OpenShift 镜像 registry。通过此外部访问,您可以使用路由地址从集群外部登录到 registry。然后,您可以使用路由主机标记并将镜像推送到现有项目中。
您可以使用configs.imageregistry.operator.openshift.io资源中的DefaultRoute参数或使用自定义路由来公开路由。
先决条件
以下的先决条件会被自动执行:
- 部署 Registry Operator。
- 部署 Ingress Operator。
-
您可以使用具有
cluster-admin角色的用户访问集群。
流程
要使用
DefaultRoute参数公开 registry,请将DefaultRoute设置为True:oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge$ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=mergeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下命令使用
podman登录:HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')$ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman login -u kubeadmin -p $(oc whoami -t) --tls-verify=false $HOST
$ podman login -u kubeadmin -p $(oc whoami -t) --tls-verify=false $HOSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
--TLS-verify=false:如果路由的默认证书不受信任,则将此参数设置为false。您可以将一个自定义的可信证书设置为 Ingress Operator 的默认证书。
-
要使用自定义路由公开 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>$ oc create secret tls public-route-tls \ -n openshift-image-registry \ --cert=</path/to/tls.crt> \ --key=</path/to/tls.key>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Registry Operator 中输入以下命令:
oc edit configs.imageregistry.operator.openshift.io/cluster
$ oc edit configs.imageregistry.operator.openshift.io/clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果为 registry 的路由提供了自定义 TLS 配置,则仅设置
secretName。
故障排除