レジストリー
OpenShift Dedicated はイメージをソースコードからビルドし、デプロイし、ライフサイクルを管理できます。
概要
第1章 OpenShift イメージレジストリーの概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated はイメージをソースコードからビルドし、デプロイし、ライフサイクルを管理できます。また、イメージをローカルで管理するために OpenShift Dedicated 環境にデプロイできる、内部の統合コンテナーイメージレジストリーを提供します。この概要には、OpenShift イメージレジストリーに重点を置いた、OpenShift Dedicated で一般的に使用されるレジストリーの関連情報およびリンクが含まれます。
1.1. OpenShift イメージレジストリーの共通用語集 リンクのコピーリンクがクリップボードにコピーされました!
この用語集では、レジストリーコンテンツで使用される一般的な用語を定義しています。
- container
- ソフトウェアとそのすべての依存関係を構成する軽量で実行可能なイメージ。コンテナーはオペレーティングシステムを仮想化するため、データセンター、パブリッククラウドまたはプライベートクラウド、ローカルホストでコンテナーを実行できます。
- イメージリポジトリー
- イメージリポジトリーは、関連するコンテナーイメージおよびイメージを特定するタグのコレクションです。
- ミラーレジストリー
- ミラーレジストリーは、OpenShift Dedicated イメージのミラーを保持するレジストリーです。
- namespace
- namespace は、単一クラスター内のリソースのグループを分離します。
- Pod
- Pod は、Kubernetes における最小の論理単位です。Pod は、ワーカーノードで実行される 1 つ以上のコンテナーで構成されます。
- プライベートレジストリー
- レジストリーは、コンテナーイメージレジストリー API を実装するサーバーです。プライベートレジストリーは、ユーザーがそのコンテンツにアクセスするのに認証が必要なレジストリーです。
- 公開レジストリー
- レジストリーは、コンテナーイメージレジストリー API を実装するサーバーです。公開レジストリーは、その内容を公に提供するレジストリーです。
- Quay.io
- Red Hat により提供および維持されるパブリックな Red Hat Quay Container Registry インスタンスであり、ほとんどのコンテナーイメージと Operator を OpenShift Dedicated クラスターに提供します。
- OpenShift イメージレジストリー
- OpenShift イメージレジストリーは、イメージを管理するために OpenShift Dedicated により提供されるレジストリーです。
- レジストリー認証
- プライベートイメージリポジトリーとの間でイメージをプッシュおよびプルするには、レジストリーで認証情報を使用してユーザーを認証する必要があります。
- route
- サービスを公開して、OpenShift Dedicated インスタンス外のユーザーおよびアプリケーションから Pod へのネットワークアクセスを許可します。
- スケールダウン
- レプリカの数を減らすことを意味します。
- スケールアップ
- レプリカの数を増やすことを意味します。
- サービス
- サービスは、一連の Pod で実行中のアプリケーションを公開します。
1.2. 統合 OpenShift イメージレジストリー リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated は、クラスター上の標準ワークロードとして実行されるコンテナーイメージレジストリーでビルドを提供します。このレジストリーはインフラストラクチャー Operator によって設定され、管理されます。また、追加設定なしで使用できる、ワークロードを実行するイメージの管理を目的とするソリューションを提供し、既存のクラスターインフラストラクチャーの上部で実行されます。このレジストリーは、他のクラスターワークロードのようにスケールアップまたはスケールダウンでき、特定のインフラストラクチャーのプロビジョニングを必要としません。さらに、クラスターのユーザー認証および認可システムに統合されるため、イメージを作成および取得するためのアクセスは、イメージリソースでユーザーのパーミッションを定義することで制御できます。
通常、レジストリーはクラスター上にビルドされたイメージの公開ターゲットとして、またクラスター上で実行されるワークロードのイメージのソースとして使用されます。新規イメージがレジストリーにプッシュされると、その旨がクラスターに通知されます。他のコンポーネントは、更新されたイメージに対して応答したり、それを使用したりできます。
イメージデータは 2 つの場所に保存されます。実際のイメージデータは、クラウドストレージまたはファイルシステムボリュームなどの設定可能なストレージの場所に格納されます。標準のクラスター API によって公開され、アクセス制御の実行に使用されるイメージメタデータは、標準的な API リソース、特にイメージおよびイメージストリームとして保存されます。
1.3. イメージの自動プルーニング リンクのコピーリンクがクリップボードにコピーされました!
経過時間、ステータス、または制限の超過によりシステムで不要になった OpenShift イメージレジストリーのイメージは、自動的にプルーニングされます。クラスター管理者は、Pruning Custom Resource を設定したり、これを保留にしたりすることができます。
前提条件
-
dedicated-admin
パーミッションを持つアカウントを使用して OpenShift Dedicated クラスターにアクセスできる。 -
oc
CLI がインストールされている。
手順
-
imagepruners.imageregistry.operator.openshift.io/cluster
という名前のオブジェクトに以下のspec
およびstatus
フィールドが含まれることを確認します。
- 1
schedule
:CronJob
形式のスケジュールこれはオプションのフィールドで、デフォルトは daily で午前 0 時でに設定されます。- 2
suspend
:true
に設定されている場合、プルーニングを実行しているCronJob
は中断されます。これはオプションのフィールドで、デフォルトはfalse
です。新規クラスターの初期値はfalse
です。- 3
keepTagRevisions
: 保持するタグ別のリビジョン数です。これはオプションのフィールドで、デフォルトは3
です。初期値は3
です。- 4
keepYoungerThanDuration
: 指定の期間よりも後に作成されたイメージを保持します。これはオプションのフィールドです。値の指定がない場合は、keepYoungerThan
またはデフォルト値60m
(60 分) のいずれかが使用されます。- 5
keepYoungerThan
: 非推奨。keepYoungerThanDuration
と同じですが、期間は整数 (ナノ秒単位) で指定されます。これはオプションのフィールドです。keepYoungerThanDuration
を設定すると、このフィールドは無視されます。- 6
resources
: 標準の Pod リソースの要求および制限です。これはオプションのフィールドです。- 7
affinity
: 標準の Pod のアフィニティーです。これはオプションのフィールドです。- 8
nodeSelector
: 標準の Pod ノードセレクターです。これはオプションのフィールドです。- 9
tolerations
: 標準の Pod の容認です。これはオプションのフィールドです。- 10
successfulJobsHistoryLimit
: 保持する成功したジョブの最大数です。メトリックがレポートされるようにするには>= 1
にする必要があります。これはオプションのフィールドで、デフォルトは3
です。初期値は3
です。- 11
failedJobsHistoryLimit
: 保持する失敗したジョブの最大数です。メトリックがレポートされるようにするには>= 1
にする必要があります。これはオプションのフィールドで、デフォルトは3
です。初期値は3
です。- 12
observedGeneration
: Operator によって観察される生成です。- 13
conditions
: 以下のタイプの標準条件オブジェクトです。-
Available
: プルーニングジョブが作成されているかどうかを示します。理由には Ready または Error のいずれかを使用できます。 -
Scheduled
: 次のプルーニングジョブがスケジュールされているかどうかを示します。理由には、Scheduled、Suspended、または Error を使用できます。 -
Failed
: 最新のプルーニングジョブが失敗したかどうかを示します。
-
プルーナーを管理するためのイメージレジストリー Operator の動作は、イメージレジストリー Operator の ClusterOperator
オブジェクトで指定される managementState
とは独立しています。イメージレジストリー Operator が Managed
状態ではない場合、イメージプルーナーは Pruning Custom Resource によって設定され、管理できます。
ただし、Image Registry Operator の managementState
は、デプロイされたイメージプルーナージョブの動作を変更します。
-
Managed
: イメージプルーナーの--prune-registry
フラグはtrue
に設定されます。 -
Removed
: イメージプルーナーの--prune-registry
フラグはfalse
に設定されます。つまり、etcd のイメージメタデータのみプルーニングされます。
1.4. サードパーティーレジストリー リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated は、サードパーティーレジストリーからのイメージを使用してコンテナーを作成できます。しかし、サードパーティーレジストリーが統合 OpenShift イメージレジストリーと同じイメージ通知をサポートする可能性はほとんどありません。このため、OpenShift Dedicated はイメージストリームの作成時にリモートレジストリーからタグを取得します。取得されたタグを更新するには、oc import-image <stream>
を実行します。新規イメージが検出されると、記述したビルドとデプロイメントの応答が生じます。
1.4.1. 認証 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated はユーザーが指定する認証情報を使用してプライベートイメージリポジトリーにアクセスするためにレジストリーと通信できます。これにより、OpenShift Dedicated はイメージをプライベートリポジトリーに、またはプライベートリポジトリ〜からプッシュ/プルできます。
1.4.1.1. Podman を使用したレジストリー認証 リンクのコピーリンクがクリップボードにコピーされました!
一部のコンテナーイメージレジストリーではアクセス認証が必要です。Podman は、コンテナーおよびコンテナーイメージを管理し、イメージレジストリーと対話するためのオープンソースツールです。Podman を使用して、認証情報の認証、レジストリーイメージのプル、ローカルファイルシステムへのローカルイメージの保存を行なえます。以下は、Podman でレジストリーを認証する一般的な例です。
手順
- Red Hat Ecosystem Catalog を使用して Red Hat リポジトリーから特定のコンテナーイメージを検索し、必要なイメージを選択します。
- Get this image をクリックして、コンテナーイメージのコマンドを見つけます。
次のコマンドを実行してログインし、ユーザー名とパスワードを入力して認証を受けます。
podman login registry.redhat.io
$ podman login registry.redhat.io Username:<your_registry_account_username> Password:<your_registry_account_password>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行してイメージをダウンロードし、ローカルに保存します。
podman pull registry.redhat.io/<repository_name>
$ podman pull registry.redhat.io/<repository_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5. Red Hat Quay レジストリー リンクのコピーリンクがクリップボードにコピーされました!
エンタープライズ向けの高品質なコンテナーイメージレジストリーを必要とされる場合、Red Hat Quay をホストされたサービスとして、また独自のデータセンターやクラウド環境にインストールするソフトウェアとして使用できます。Red Hat Quay の高度な機能には、geo レプリケーション、イメージのスキャニング、およびイメージのロールバック機能が含まれます。
Quay.io サイトにアクセスし、独自のホストされた Quay レジストリーアカウントをセットアップします。その後、Quay チュートリアルに従って Quay レジストリーにログインし、イメージの管理を開始します。
Red Hat Quay レジストリーへのアクセスは、任意のリモートコンテナーイメージレジストリーと同様に OpenShift Dedicated から実行できます。
1.6. 認証が有効な Red Hat レジストリー リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Ecosystem Catalog のコンテナーイメージのセクションで利用可能なすべてのコンテナーイメージは、イメージレジストリーの registry.redhat.io
でホストされます。
registry.redhat.io
レジストリーでは、イメージおよび OpenShift Dedicated でホストされるコンテンツへのアクセスに認証が必要です。新規レジストリーへの移行後も、既存レジストリーはしばらく利用可能になります。
OpenShift Dedicated はイメージを registry.redhat.io
からプルするため、これを使用できるようにクラスターを設定する必要があります。
新規レジストリーは、以下の方法を使用して標準の OAuth メカニズムを使用します。
- 認証トークン。管理者によって生成されるこれらのトークンは、コンテナーイメージレジストリーに対する認証機能をシステムに付与するサービスアカウントです。サービスアカウントはユーザーアカウントの変更による影響を受けないため、トークンを使用する認証方法の信頼性は高く、復元力もあります。これは、実稼働クラスター用にサポートされている唯一の認証オプションです。
-
Web ユーザー名およびパスワード。これは、
access.redhat.com
などのリソースへのログインに使用する標準的な認証情報のセットです。この認証方法は、OpenShift Dedicated では使用できますが、実稼働デプロイメントではサポートされません。この認証方法は、OpenShift Dedicated 外のスタンドアロンプロジェクトでのみ使用できます。
ユーザー名とパスワード、もしくは認証トークンのどちらかを認証情報として podman login
を使用し、新規レジストリーのコンテンツにアクセスします。
すべてのイメージストリームは、インストールプルシークレットを使用して認証を行う新規レジストリーを参照します。
認証情報は以下のいずれかの場所に配置する必要があります。
-
openshift
namespace。openshift
namespace のイメージストリームがインポートできるように、openshift
namespace に認証情報が存在している必要があります。 - ホスト。Kubernetes でイメージをプルする際にホストの認証情報を使用するため、認証情報はホスト上に配置してください。
第2章 OpenShift Dedicated の Image Registry Operator リンクのコピーリンクがクリップボードにコピーされました!
2.1. OpenShift Dedicated のイメージレジストリー リンクのコピーリンクがクリップボードにコピーされました!
Image Registry Operator は、OpenShift イメージレジストリーの単一インスタンスをインストールし、レジストリーストレージのセットアップを含むすべてのレジストリー設定を管理します。
コントロールプレーンが管理クラスターにデプロイされた後、Operator はクラスターで検出される設定に基づきデフォルトの configs.imageregistry.operator.openshift.io
リソースインスタンスを作成します。
完全な configs.imageregistry.operator.openshift.io
リソースを定義するために利用できる十分な情報がない場合、不完全なリソースが定義され、Operator は不足分を示す情報を使用してリソースのステータスを更新します。
第3章 レジストリーへのアクセス リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Dedicated では、Red Hat Site Reliability Engineering (SRE) がレジストリーを管理します。ただし、レジストリー Pod のステータスを確認したり、レジストリーログを表示したりできます。
3.1. レジストリー Pod のステータスの確認 リンクのコピーリンクがクリップボードにコピーされました!
dedicated-admin
ロールを持つ管理者は、openshift-image-registry
プロジェクトで実行しているイメージレジストリー Pod をリスト表示し、そのステータスを確認できます。
前提条件
-
dedicated-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
openshift-image-registry
プロジェクトの Pod をリスト表示し、それらのステータスを表示します。oc get pods -n openshift-image-registry
$ oc get pods -n openshift-image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. レジストリーログの表示 リンクのコピーリンクがクリップボードにコピーされました!
oc logs
コマンドを使用してレジストリーのログを表示することができます。
手順
デプロイメントで
oc logs
コマンドを使用して、コンテナーイメージレジストリーのログを表示します。oc logs deployments/image-registry -n openshift-image-registry
$ oc logs deployments/image-registry -n openshift-image-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
2015-05-01T19:48:36.300593110Z time="2015-05-01T19:48:36Z" level=info msg="version=v2.0.0+unknown" 2015-05-01T19:48:36.303294724Z time="2015-05-01T19:48:36Z" level=info msg="redis not configured" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002 2015-05-01T19:48:36.303422845Z time="2015-05-01T19:48:36Z" level=info msg="using inmemory layerinfo cache" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002 2015-05-01T19:48:36.303433991Z time="2015-05-01T19:48:36Z" level=info msg="Using OpenShift Auth handler" 2015-05-01T19:48:36.303439084Z time="2015-05-01T19:48:36Z" level=info msg="listening on :5000" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002
2015-05-01T19:48:36.300593110Z time="2015-05-01T19:48:36Z" level=info msg="version=v2.0.0+unknown" 2015-05-01T19:48:36.303294724Z time="2015-05-01T19:48:36Z" level=info msg="redis not configured" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002 2015-05-01T19:48:36.303422845Z time="2015-05-01T19:48:36Z" level=info msg="using inmemory layerinfo cache" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002 2015-05-01T19:48:36.303433991Z time="2015-05-01T19:48:36Z" level=info msg="Using OpenShift Auth handler" 2015-05-01T19:48:36.303439084Z time="2015-05-01T19:48:36Z" level=info msg="listening on :5000" instance.id=9ed6c43d-23ee-453f-9a4b-031fea646002
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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.