レジストリー


OpenShift Dedicated 4

OpenShift Dedicated はイメージをソースコードからビルドし、デプロイし、ライフサイクルを管理できます。

Red Hat OpenShift Documentation Team

概要

OpenShift Dedicated は、イメージをローカルで管理するために 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 フィールドが含まれることを確認します。
spec:
  schedule: 0 0 * * * 
1

  suspend: false 
2

  keepTagRevisions: 3 
3

  keepYoungerThanDuration: 60m 
4

  keepYoungerThan: 3600000000000 
5

  resources: {} 
6

  affinity: {} 
7

  nodeSelector: {} 
8

  tolerations: [] 
9

  successfulJobsHistoryLimit: 3 
10

  failedJobsHistoryLimit: 3 
11

status:
  observedGeneration: 2 
12

  conditions: 
13

  - type: Available
    status: "True"
    lastTransitionTime: 2019-10-09T03:13:45
    reason: Ready
    message: "Periodic image pruner has been created."
  - type: Scheduled
    status: "True"
    lastTransitionTime: 2019-10-09T03:13:45
    reason: Scheduled
    message: "Image pruner job has been scheduled."
  - type: Failed
    staus: "False"
    lastTransitionTime: 2019-10-09T03:13:45
    reason: Succeeded
    message: "Most recent image pruning job succeeded."
Copy to Clipboard Toggle word wrap
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 でレジストリーを認証する一般的な例です。

手順

  1. Red Hat Ecosystem Catalog を使用して Red Hat リポジトリーから特定のコンテナーイメージを検索し、必要なイメージを選択します。
  2. Get this image をクリックして、コンテナーイメージのコマンドを見つけます。
  3. 次のコマンドを実行してログインし、ユーザー名とパスワードを入力して認証を受けます。

    $ podman login registry.redhat.io
     Username:<your_registry_account_username>
     Password:<your_registry_account_password>
    Copy to Clipboard Toggle word wrap
  4. 以下のコマンドを実行してイメージをダウンロードし、ローカルに保存します。

    $ podman pull registry.redhat.io/<repository_name>
    Copy to Clipboard Toggle word wrap

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 namespaceopenshift 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
    Copy to Clipboard Toggle word wrap

    出力例

    NAME READY STATUS RESTARTS AGE
    image-registry-79fb4469f6-llrln 1/1 Running 0 77m
    node-ca-hjksc 1/1 Running 0 73m
    node-ca-tftj6 1/1 Running 0 77m
    node-ca-wb6ht 1/1 Running 0 77m
    node-ca-zvt9q 1/1 Running 0 74m
    Copy to Clipboard Toggle word wrap

3.2. レジストリーログの表示

oc logs コマンドを使用してレジストリーのログを表示することができます。

手順

  • デプロイメントで oc logs コマンドを使用して、コンテナーイメージレジストリーのログを表示します。

    $ oc logs deployments/image-registry -n openshift-image-registry
    Copy to Clipboard Toggle word wrap

    出力例

    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 Toggle word wrap

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.

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat