第4章 レジストリーの公開
デフォルトで、OpenShift イメージレジストリーのセキュリティーは、TLS 経由でトラフィックを送信できるようにクラスターのインストール時に保護されます。以前のバージョンの Red Hat OpenShift Service on AWS とは異なり、レジストリーはインストール時にクラスター外に公開されません。
4.1. デフォルトレジストリーの手動による公開
クラスター内からデフォルトの OpenShift イメージレジストリーにログインするのではなく、外部からレジストリーにアクセスできるように、このレジストリーをルートに公開します。この外部アクセスにより、ルートアドレスを使用してクラスターの外部からレジストリーにログインし、ルートホストを使用してイメージにタグを付けて既存のプロジェクトにプッシュできます。
前提条件:
以下の前提条件が自動的に実行する。
- Registry Operator をデプロイする。
- Ingress Operator デプロイする。
-
cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
手順
configs.imageregistry.operator.openshift.io リソースで defaultRoute パラメーターを使用してルートを公開できます。
defaultRoute を使用してレジストリーを公開するには、以下を実行します。
defaultRouteをtrueに設定します。$ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=mergeデフォルトのレジストリールートを取得します。
$ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}')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以下のコマンドを使用して、クラスターのデフォルト証明書がルートを信頼するようにします。
$ sudo update-ca-trust enable
デフォルトのルートを使用して podman にログインします。
$ sudo podman login -u kubeadmin -p $(oc whoami -t) $HOST