This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.レジストリー
OpenShift Container Platform 4.1 のレジストリーの設定
概要
第1章 イメージレジストリー リンクのコピーリンクがクリップボードにコピーされました!
1.1. 統合 OpenShift Container Platform レジストリー リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、クラスター上の標準ワークロードとして実行されるコンテナーイメージレジストリーでビルドを提供します。このレジストリーはインフラストラクチャー Operator によって設定され、管理されます。これはユーザーがワークロードを実行するイメージを管理するために追加設定なしで使用できるソリューションを提供し、既存のクラスターインフラストラクチャーの上部で実行されます。このレジストリーは、他のクラスターワークロードのようにスケールアップまたはスケールダウンでき、特定のインフラストラクチャーのプロビジョニングを必要としません。さらに、これはクラスターのユーザー認証および認可システムに統合されるため、イメージを作成し、取得するためのアクセスは、イメージリソースでユーザーのパーミッションを定義することによって制御できることを意味します。
通常、レジストリーはクラスター上にビルドされたイメージの公開ターゲットとして、またクラスター上で実行されるワークロードのイメージのソースとして使用されます。新規イメージがレジストリーにプッシュされると、クラスターにはその新規イメージについて通知され、他のコンポーネントは更新されたイメージに応答し、これを使用できます。
イメージデータは 2 つの場所に保存されます。実際のイメージデータは、クラウドストレージまたはファイルシステムボリュームなどの設定可能なストレージの場所に格納されます。標準のクラスター API によって公開され、アクセス制御を実行するために使用されるイメージメタデータは、標準的な API リソース、とくにイメージおよびイメージストリームとして保存されます。
第2章 OpenShift Container Platform のイメージレジストリー Operator リンクのコピーリンクがクリップボードにコピーされました!
イメージレジストリー Operator は、OpenShift Container Platform レジストリーの単一インスタンスをインストールし、レジストリーストレージのセットアップを含む、レジストリーのすべての設定を管理します。
ストレージは Amazon Web Services にインストールする場合にのみ自動的に設定されます。
コントロールプレーンのデプロイ後、Operator はクラスターで検出される設定に基づいてデフォルトの configs.imageregistry.operator.openshift.io
リソースインスタンスを作成します。
完全な configs.imageregistry.operator.openshift.io
リソースを定義するのに利用できる情報が十分にない場合、その不完全なリソースが定義され、Operator は足りない情報を示す情報を使ってリソースのステータスを更新します。
イメージレジストリー Operator は openshift-image-registry
namespace で実行され、その場所のレジストリーインスタンスも管理します。レジストリーのすべての設定およびワークロードリソースはその namespace に置かれます。
前提条件
- OpenShift Container Platform クラスターをデプロイします。
2.1. イメージレジストリー Operator の設定パラメーター リンクのコピーリンクがクリップボードにコピーされました!
configs.imageregistry.operator.openshift.io
リソースは以下の設定パラメーターを提供します。
パラメーター | 説明 |
---|---|
|
|
|
レジストリーインスタンスの |
| デフォルトで生成されるアップロードのセキュリティーを保護するためにレジストリーで必要な値。 |
| マスター API およびアップストリームレジストリーの呼び出し時に使用されるプロキシーを定義します。 |
|
|
| API 要求の制限の詳細。指定されたレジストリーインスタンスが追加リソースをキューに入れる前に処理する並列要求の数を制御します。 |
| 外部ルートがデフォルトのホスト名を使用して定義されるかどうかを決定します。これが有効にされている場合、ルートは re-encrypt 暗号を使用します。デフォルトは false に設定されます。 |
| 作成する追加ルートの配列。ルートにホスト名および証明書を指定します。 |
| レジストリーのレプリカ数。 |
2.2. イメージレジストリー Operator の設定リソース リンクのコピーリンクがクリップボードにコピーされました!
configs.imageregistry.operator.openshift.io
リソースのほかにも、openshift-image-registry
namespace に置かれる別個の ConfigMap およびシークレットリソースによって追加の設定が Operator に提供されます。
前提条件
- CA は PEM でエンコードされている必要があります。
手順
ConfigMap を openshift-config
namespace に作成し、その名前を image.config.openshift.io
リソースの AdditionalTrustedCA
で使用し、追加の CA を指定することができます。この CA は外部レジストリーと通信する際に信頼される必要があります。image-registry-private-configuration
(シークレット) は、ストレージのアクセスおよび管理に必要な認証情報を提供します。これは、デフォルト認証情報が見つからない場合に Operator によって使用されるデフォルト認証情報を上書きします。
イメージレジストリー CA の例
- 1
- レジストリーにポートがある場合 (例:
registry-with-port.example.com:5000
)、「: 」は..
に置き換える必要があります。
S3 ストレージの場合、ConfigMap には 2 つのキーが含まれることが予想されます。
- REGISTRY_STORAGE_S3_ACCESSKEY
- REGISTRY_STORAGE_S3_SECRETKEY
以下の手順で追加の CA を設定することができます。
追加の CA を設定するには、以下を実行します。
oc create configmap registry-config --from-file=<external_registry_address>=ca.crt -n openshift-config oc edit image.config.openshift.io cluster
$ oc create configmap registry-config --from-file=<external_registry_address>=ca.crt -n openshift-config $ oc edit image.config.openshift.io cluster spec: additionalTrustedCA: name: registry-config
Copy to Clipboard Copied! Toggle word wrap Toggle overflow image-registry
Pod 内のイメージを確認します。oc rsh image-registry-xxxxx ls /etc/pki/ca-trust/source/anchors
$ oc rsh image-registry-xxxxx sh-4.2 $ ls /etc/pki/ca-trust/source/anchors <external_registry_address> image-registry.openshift-image-registry.svc..5000 image-registry.openshift-image-registry.svc.cluster.local..5000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.3. イメージレジストリーのデフォルトルートをカスタムリソース定義 (CRD、Custom Resource Definition ) で有効にする リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform では、Registry
Operator はレジストリー機能を制御します。Operator は、configs.imageregistry.operator.openshift.io
カスタムリソース定義 (CRD) で定義されます。
イメージレジストリーのデフォルトルートを自動的に有効にする必要がある場合には、イメージレジストリー Operator CRD のパッチを適用します。
手順
イメージレジストリー Operator CRD にパッチを適用します。
oc patch configs.imageregistry.operator.openshift.io/cluster --type merge -p '{"spec":{"defaultRoute":true}}'
$ oc patch configs.imageregistry.operator.openshift.io/cluster --type merge -p '{"spec":{"defaultRoute":true}}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4. イメージレジストリーストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
2.4.1. ユーザーによってプロビジョニングされるインフラストラクチャーで AWS のレジストリーストレージを設定する リンクのコピーリンクがクリップボードにコピーされました!
インストール時に、S3 バケットを作成するにはクラウド認証情報を使用でき、レジストリー Operator がストレージを自動的に設定します。
レジストリー Operator が S3 バケットを作成できず、ストレージを自動的に設定する場合、以下の手順により S3 バケットを作成し、ストレージを設定することができます。
前提条件
- ユーザーによってプロビジョニングされるインフラストラクチャーでの AWS 上のクラスター
手順
レジストリー Operator が S3 バケットを作成できず、ストレージを自動的に設定する場合は、以下の手順を使用してください。
- バケットライフサイクルポリシーを設定し、1 日以上経過している未完了のマルチパートアップロードを中止します。
configs.imageregistry.operator.openshift.io/cluster
にストレージ設定を入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
AWS でレジストリーイメージのセキュリティーを保護するには、S3 バケットに対してパブリックアクセスのブロックを実行します。
2.4.2. ベアメタルの場合のレジストリーストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、インストール後にレジストリーをストレージを使用できるように設定する必要があります。
前提条件
- クラスター管理者のパーミッション。
- ベアメタル上のクラスター。
-
ReadWriteMany
アクセスモードのプロビジョニングされた永続ボリューム (PV)(例:NFS
)。 - 容量は「100Gi」以上である。
手順
-
レジストリーをストレージを使用できるように設定するには、
configs.imageregistry/cluster
リソースのspec.storage.pvc
を変更します。 レジストリー Pod がないことを確認します。
oc get pod -n openshift-image-registry
$ oc get pod -n openshift-image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ストレージタイプが emptyDIR
の場合、レプリカ数が 1
を超えることはありません。ストレージタイプが NFS
で、レジストリー Pod を replica>1
を設定してスケールアップする必要がある場合、no_wdelay
マウントオプションを有効にする必要があります。以下は例になります。
cat /etc/exports /mnt/data *(rw,sync,no_wdelay,no_root_squash,insecure,fsid=0) sh-4.3# exportfs -rv exporting *:/mnt/data
# cat /etc/exports
/mnt/data *(rw,sync,no_wdelay,no_root_squash,insecure,fsid=0)
sh-4.3# exportfs -rv
exporting *:/mnt/data
レジストリー設定を確認します。
oc edit configs.imageregistry.operator.openshift.io
$ oc edit configs.imageregistry.operator.openshift.io storage: pvc: claim:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow claim
フィールドを空のままにし、image-registry-storage
PVC の自動作成を可能にします。clusteroperator
ステータスを確認します。oc get clusteroperator image-registry
$ oc get clusteroperator image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.4.3. VMware vSphere のレジストリーストレージの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、インストール後にレジストリーをストレージを使用できるように設定する必要があります。
前提条件
- クラスター管理者のパーミッション。
- VMware vSphere 上のクラスター。
ReadWriteMany
アクセスモードのプロビジョニングされた永続ボリューム (PV)(例:NFS
)。重要vSphere ボリュームは
ReadWriteMany
アクセスモードをサポートしません。レジストリーストレージを設定するには、NFS
などの異なるストレージバックエンドを使用する必要があります。- 容量は「100Gi」以上である。
手順
-
レジストリーをストレージを使用できるように設定するには、
configs.imageregistry/cluster
リソースのspec.storage.pvc
を変更します。 レジストリー Pod がないことを確認します。
oc get pod -n openshift-image-registry
$ oc get pod -n openshift-image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
ストレージタイプが emptyDIR
の場合、レプリカ数が 1
を超えることはありません。ストレージタイプが NFS
で、レジストリー Pod を replica>1
を設定してスケールアップする必要がある場合、no_wdelay
マウントオプションを有効にする必要があります。以下は例になります。
cat /etc/exports /mnt/data *(rw,sync,no_wdelay,no_root_squash,insecure,fsid=0) sh-4.3# exportfs -rv exporting *:/mnt/data
# cat /etc/exports
/mnt/data *(rw,sync,no_wdelay,no_root_squash,insecure,fsid=0)
sh-4.3# exportfs -rv
exporting *:/mnt/data
レジストリー設定を確認します。
oc edit configs.imageregistry.operator.openshift.io
$ oc edit configs.imageregistry.operator.openshift.io storage: pvc: claim:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow claim
フィールドを空のままにし、image-registry-storage
PVC の自動作成を可能にします。clusteroperator
ステータスを確認します。oc get clusteroperator image-registry
$ oc get clusteroperator image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第3章 レジストリーオプション リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform はイメージをソースコードからビルドし、それらをデプロイし、それらのライフサイクルを管理できます。これを可能にするため、 OpenShift Container Platform は内部の統合コンテナーイメージレジストリーを提供しています。このレジストリーは OpenShift Container Platform 環境にデプロイでき、ここからイメージをローカルで管理できます。
3.1. 統合 OpenShift Container Platform レジストリー リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform は、クラスター上の標準ワークロードとして実行されるコンテナーイメージレジストリーでビルドを提供します。このレジストリーはインフラストラクチャー Operator によって設定され、管理されます。これはユーザーがワークロードを実行するイメージを管理するために追加設定なしで使用できるソリューションを提供し、既存のクラスターインフラストラクチャーの上部で実行されます。このレジストリーは、他のクラスターワークロードのようにスケールアップまたはスケールダウンでき、特定のインフラストラクチャーのプロビジョニングを必要としません。さらに、これはクラスターのユーザー認証および認可システムに統合されるため、イメージを作成し、取得するためのアクセスは、イメージリソースでユーザーのパーミッションを定義することによって制御できることを意味します。
通常、レジストリーはクラスター上にビルドされたイメージの公開ターゲットとして、またクラスター上で実行されるワークロードのイメージのソースとして使用されます。新規イメージがレジストリーにプッシュされると、クラスターにはその新規イメージについて通知され、他のコンポーネントは更新されたイメージに応答し、これを使用できます。
イメージデータは 2 つの場所に保存されます。実際のイメージデータは、クラウドストレージまたはファイルシステムボリュームなどの設定可能なストレージの場所に格納されます。標準のクラスター API によって公開され、アクセス制御を実行するために使用されるイメージメタデータは、標準的な API リソース、とくにイメージおよびイメージストリームとして保存されます。
3.2. サードパーティーレジストリー リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform はサードパーティーレジストリーからのイメージを使用してコンテナーを作成できますが、これらのレジストリーは統合 OpenShift Container Platform レジストリーと同じイメージ通知のサポートを提供する訳ではありません。このため、OpenShift Container Platform はイメージストリームの作成時にリモートレジストリーからタグをフェッチします。
フェッチされたタグの更新は、oc import-image <stream>
を実行するだけで簡単に実行できます。新規イメージが検出されると、以前に記述されたビルドとデプロイメントの応答が生じます。
3.2.1. 認証 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform はユーザーが指定する認証情報を使用してプライベートイメージリポジトリーにアクセスするためにレジストリーと通信できます。これにより、OpenShift Container Platform はイメージのプッシュ/プルをプライベートリポジトリーへ/から実行できます。
3.3. Red Hat Quay レジストリー リンクのコピーリンクがクリップボードにコピーされました!
エンタープライズ向けの高品質なコンテナーイメージレジストリーを必要とされる場合、Red Hat Quay をホストされたサービスとして、また独自のデータセンターやクラウド環境にインストールするソフトウェアとしてご利用いただけます。Red Hat Quay の高度なレジストリーには、geo レプリケーション、イメージのスキャニング、およびイメージのロールバック機能が含まれます。
Quay.io サイトにアクセスし、独自のホストされる Quay レジストリーアカウントをセットアップします。その後、Quay チュートリアルに従って Quay レジストリーにログインし、イメージの管理を開始します。
Red Hat Quay レジストリーへのアクセスは、任意のリモートコンテナーイメージレジストリーと同様に OpenShift Container Platform から実行できます。
3.4. 認証で有効にされる Red Hat レジストリー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Container Catalog で利用可能なすべてのコンテナーイメージはイメージレジストリーの registry.redhat.io
でホストされます。
レジストリー registry.redhat.io
では、イメージおよび OpenShift Container Platform でホストされるコンテンツへのアクセスに認証が必要です。新規レジストリーへの移行後も、既存レジストリーはしばらく利用可能になります。
OpenShift Container Platform はイメージを registry.redhat.io
からプルするため、これを使用できるようにクラスターを設定する必要があります。
新規レジストリーは、以下の方法を使用して認証に標準の OAuth メカニズムを使用します。
- 認証トークン。管理者によって生成されるこれらのトークンは、システムにコンテナーイメージレジストリーに対する認証機能を付与するサービスアカウントです。サービスアカウントはユーザーアカウントの変更による影響を受けないため、トークンの認証方法は信頼性があり、回復性があります。これは、実稼働クラスター用にサポートされている唯一の認証オプションです。
-
Web ユーザー名およびパスワード。これは、
access.redhat.com
などのリソースへのログインに使用する標準的な認証情報のセットです。OpenShift Container Platform でこの認証方法を使用することはできますが、これは実稼働デプロイメントではサポートされません。この認証方法の使用は、OpenShift Container Platform 外のスタンドアロンのプロジェクトに制限されます。
ユーザー名およびパスワード、または認証トークンのいずれかの認証情報を使用して podman login
を使用し、新規レジストリーのコンテンツにアクセスします。
すべてのイメージストリームは新規レジストリーを参照します。レジストリーにはアクセスするために認証が必要であるため、Samples Operator は samples-registry-credentials
シークレットを作成します。
認証情報は 2 つの場所に配置する必要があります。
- OpenShift namespace。OpenShift namespace のイメージストリームがインポートできるように、認証情報は OpenShift namespace になければなりません。
- ホスト。Kubernetes でイメージをプルする際にホストの認証情報を使用するため、認証情報はホスト上になければなりません。
第4章 レジストリーへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
ログおよびメトリクスの表示やレジストリーのセキュリティー保護および公開などの、レジストリーへのアクセスについての各種の方法について、以下のセクションを参照してください。
レジストリーに直接アクセスし、podman
コマンドを起動することが可能です。これにより、podman push
や podman pull
などの操作で統合レジストリーへ/からイメージを直接プッシュまたはプルすることができます。これを実行するには、oc login
コマンドを使ってレジストリーにログインしている必要があります。実行できる操作は、以下のセクションで説明されているようにユーザーが持つパーミッションによって異なります。
前提条件
- アイデンティティープロバイダー (IDP) を設定しておく必要があります。
podman pull
コマンドを使用する場合などにイメージをプルするには、ユーザーにregistry-viewer
ロールがなければなりません。このロールを追加するには、以下を実行します。oc policy add-role-to-user registry-viewer <user_name>
$ oc policy add-role-to-user registry-viewer <user_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow イメージの書き出しやプッシュを実行するには (
podman push
コマンドを使用する場合など)、ユーザーにregistry-editor
ロールが必要です。このロールを追加するには、以下を実行します。oc policy add-role-to-user registry-editor <user_name>
$ oc policy add-role-to-user registry-editor <user_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.1. クラスターからレジストリーへの直接アクセス リンクのコピーリンクがクリップボードにコピーされました!
クラスター内からレジストリーにアクセスすることができます。
手順
内部ルートを使用して、クラスターからレジストリーにアクセスします。
ノードのアドレスを取得することにより、ノードにアクセスします。
oc get nodes oc debug nodes/<node_address>
$ oc get nodes $ oc debug nodes/<node_address>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow アクセストークンを使用してコンテナーイメージレジストリーにログインします。
oc login -u kubeadmin -p <password_from_install_log> podman login -u kubeadmin -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
$ oc login -u kubeadmin -p <password_from_install_log> $ podman login -u kubeadmin -p $(oc whoami -t) image-registry.openshift-image-registry.svc:5000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のようなログインを確認するメッセージが表示されるはずです。
Login Succeeded!
Login Succeeded!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記ユーザー名には任意の値を指定でき、トークンには必要な情報がすべて含まれます。コロンが含まれるユーザー名を指定すると、ログインに失敗します。
イメージレジストリー Operator はルートを作成するため、
default-route-openshift-image-registry.<cluster_name>
のようになります。レジストリーに対して
podman pull
およびpodman push
操作を実行します。重要任意のイメージをプルできますが、system:registry ロールを追加している場合は、各自のプロジェクトにあるレジストリーにのみイメージをプッシュすることができます。
次の例では、以下を使用します。
Expand Component 値 <registry_ip>
172.30.124.220
<port>
5000
<project>
openshift
<image>
image
<tag>
省略 (デフォルトは
latest
)任意のイメージをプルします。
podman pull name.io/image
$ podman pull name.io/image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新規イメージに
<registry_ip>:<port>/<project>/<image>
形式でタグ付けします。プロジェクト名は、イメージを正しくレジストリーに配置し、これに後でアクセスできるようにするために OpenShift Container Platform のプル仕様に表示される必要があります。podman tag name.io/image image-registry.openshift-image-registry.svc:5000/openshift/image
$ podman tag name.io/image image-registry.openshift-image-registry.svc:5000/openshift/image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記指定されたプロジェクトについて
system:image-builder
ロールを持っている必要があります。このロールにより、ユーザーはイメージの書き出しやプッシュを実行できます。このロールが設定されていない場合には次の手順のpodman push
が失敗します。 新規プロジェクトを作成し、イメージをプッシュしてテストできます。新しくタグ付けされたイメージをレジストリーにプッシュします。
podman push image-registry.openshift-image-registry.svc:5000/openshift/image
$ podman push image-registry.openshift-image-registry.svc:5000/openshift/image
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. レジストリーの内容の表示 リンクのコピーリンクがクリップボードにコピーされました!
管理者として、レジストリーの内容を確認することができます。
前提条件
- 管理者としてログインします。
手順
プロジェクト
openshift-image-registry
の下で Pod を確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. レジストリーログの表示 リンクのコピーリンクがクリップボードにコピーされました!
oc logs
コマンドを使用してレジストリーのログを表示することができます。
手順
デプロイメントで
oc logs
コマンドを使用して、コンテナーイメージレジストリーのログを表示します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. レジストリーメトリクスへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container レジストリーは、Prometheus メトリクスのエンドポイントを提供します。Prometheus はスタンドアロンのオープンソースのシステムモニタリングおよびアラートツールキットです。
メトリクスは、レジストリーエンドポイントの /extensions/v2/metrics パスに公開されます。
手順
メトリクスクエリーの実行またはクラスターロールの使用という、メトリクスにアクセスするための 2 つの方法を使用できます。
メトリクスクエリー
以下のようにメトリクスクエリーを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<user>
は任意ですが、<secret>
はレジストリー設定で指定された値と一致していなければなりません。
クラスターロール
メトリクスにアクセスするために必要なクラスターロールがない場合、これを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このロールをユーザーに追加し、以下のコマンドを実行します。
oc adm policy add-cluster-role-to-user prometheus-scraper <username>
$ oc adm policy add-cluster-role-to-user prometheus-scraper <username>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスターロールを使用してメトリクスにアクセスします。設定ファイルのメトリクスに対応する部分は以下のようになります。
openshift: version: 1.0 metrics: enabled: true ...
openshift: version: 1.0 metrics: enabled: true ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
追加リソース
-
kubeadmin
は削除されるまでレジストリーにアクセスできます。詳細は、「Removing the kubeadmin user」を参照してください。 - アイデンティティープロバイダーの設定についての詳細は、「Understanding identity provider configuration」を参照してください。
第5章 レジストリーの公開 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトで、OpenShift Container Platform レジストリーのセキュリティーは、TLS 経由でトラフィックを送信できるようにクラスターのインストール時に保護されます。以前のバージョンの OpenShift Container Platform とは異なり、レジストリーはインストール時にクラスター外に公開されません。
5.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
$ oc patch configs.imageregistry.operator.openshift.io/cluster --patch '{"spec":{"defaultRoute":true}}' --type=merge
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ 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 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
--tls-verify=false
は、ルートのクラスターのデフォルト証明書が信頼されない場合に必要になります。Ingress Operator で、信頼されるカスタム証明書をデフォルト証明書として設定できます。
カスタムルートを使用してレジストリーを公開するには、以下を実行します。
ルートの TLS キーでシークレットを作成します。
oc create secret tls public-route-tls \ -n image-registry \ --cert=</path/to/tls.crt> \ --key=</path/to/tls.key>
$ oc create secret tls public-route-tls \ -n image-registry \ --cert=</path/to/tls.crt> \ --key=</path/to/tls.key>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この手順はオプションです。シークレットを作成しない場合、ルートは Ingress Operator からデフォルトの TLS 設定を使用します。
レジストリー Operator では、以下のようになります。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow レジストリーのルートのカスタム TLS 設定を指定している場合は
secretName
のみを設定します。
Legal Notice
リンクのコピーリンクがクリップボードにコピーされました!
Copyright © 2025 Red Hat
OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).
Modified versions must remove all Red Hat trademarks.
Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.
Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.