第 5 章 开放registry

默认情况下,OpenShift Container Platform registry在集群安装期间是加密的,它需要使用TLS进行访问。与早期版本的OpenShift Container Platform不同,安装时registry不会向集群外部公开。

5.1. 手动公开默认 registry

通过使用路由可以开放从外部访问OpenShift Container Platform registry的通道,用户不再需要从集群内部登录到默认的 OpenShift Container Platform registry。通过外部访问,您可以使用路由地址从集群外部登录 registry,并使用路由主机标记并推送到现有项目。

先决条件

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

    • 部署 Registry Operator。
    • 部署 Ingress Operator。

流程

您可以使用 configs.imageregistry.operator.openshift.io 资源中的 defaultRoute 参数来公开路由。

使用 defaultRoute 公开 registry:

  1. defaultRoute 设为 true

    $ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
  2. 获取默认 registry 路由:

    $ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')
  3. 获取 Ingress Operator 的证书:

    $ oc get secret -n openshift-ingress  router-certs-default -o go-template='{{index .data "tls.crt"}}' | base64 -d | sudo tee /etc/pki/ca-trust/source/anchors/${HOST}.crt  > /dev/null
  4. 使用以下命令启用集群的默认证书来信任路由:

    $ sudo update-ca-trust enable
  5. 使用默认路由通过 podman 登录:

    $ sudo podman login -u kubeadmin -p $(oc whoami -t) $HOST