第 5 章 开放registry
默认情况下,OpenShift 镜像 registry 在集群安装期间是加密的,它需要使用TLS进行访问。与早期版本的OpenShift Container Platform不同,安装时registry不会向集群外部公开。
5.1. 手动公开默认 registry
通过使用路由可以开放从外部访问 OpenShift 镜像 registry 的通道,用户不再需要从集群内部登录到默认的 OpenShift Container Platform registry。通过外部访问,您可以使用路由地址从集群外部登录 registry,并使用路由主机标记并推送到现有项目。
先决条件
以下的先决条件会被自动执行:
- 部署 Registry Operator。
- 部署 Ingress Operator。
-
您可以使用具有
cluster-admin
角色的用户访问集群。
流程
您可以使用 configs.imageregistry.operator.openshift.io
资源中的 defaultRoute
参数来公开路由。
使用 defaultRoute
公开 registry:
将
defaultRoute
设为true
:$ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
获取默认 registry 路由:
$ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')
获取 Ingress Operator 的证书:
$ oc extract secret/$(oc get ingresscontroller -n openshift-ingress-operator default -o json | jq '.spec.defaultCertificate.name // "router-certs-default"' -r) -n openshift-ingress --confirm
使用以下命令启用集群的默认证书来信任路由:
$ sudo update-ca-trust enable
使用默认路由通过 podman 登录:
$ sudo podman login -u kubeadmin -p $(oc whoami -t) $HOST