第6章 レジストリーの公開
デフォルトで、OpenShift Container Platform レジストリーのセキュリティーは、TLS 経由でトラフィックを送信できるようにクラスターのインストール時に保護されます。以前のバージョンの OpenShift Container Platform とは異なり、レジストリーはインストール時にクラスター外に公開されません。
6.1. セキュアなレジストリーの手動による公開
クラスター内から OpenShift Container Platform レジストリーにログインするのではなく、外部からレジストリーにアクセスできるように、このレジストリーをルートに公開します。この方法を使うと、ルートアドレスを使ってクラスターの外部からレジストリーにログインし、ルートのホストを使ってイメージにタグ付けしたり、イメージをプッシュしたりできます。
前提条件
以下の前提条件は自動的に実行されます。
- レジストリー Operator をデプロイします。
- Ingress Operator をデプロイします。
手順
configs.imageregistry.operator.openshift.io
リソースで DefaultRoute
パラメーターを使用するか、またはカスタムルートを使用してルートを公開することができます。
DefaultRoute
を使用してレジストリーを公開するには、以下を実行します。
DefaultRoute
をTrue
に設定します。$ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
Podman でログインします。
$ HOST=$(oc get route default-route -n openshift-image-registry --template='{{ .spec.host }}') $ podman login -u $(oc whoami) -p $(oc whoami -t) --tls-verify=false $HOST 1
- 1
--tls-verify=false
は、ルートのクラスターのデフォルト証明書が信頼されない場合に必要になります。Ingress Operator で、信頼されるカスタム証明書をデフォルト証明書として設定できます。
カスタムルートを使用してレジストリーを公開するには、以下を実行します。
ルートの TLS キーでシークレットを作成します。
$ oc create secret tls public-route-tls \ -n openshift-image-registry \ --cert=</path/to/tls.crt> \ --key=</path/to/tls.key>
この手順はオプションです。シークレットを作成しない場合、ルートは Ingress Operator からデフォルトの TLS 設定を使用します。
レジストリー Operator では、以下のようになります。
spec: routes: - name: public-routes hostname: myregistry.mycorp.organization secretName: public-route-tls ...
レジストリーのルートのカスタム TLS 設定を指定している場合は
secretName
のみを設定します。