レジストリー

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 イメージレジストリーの共通用語集

この用語集では、レジストリーコンテンツで使用される一般的な用語を定義しています。

コンテナー
ソフトウェアとそのすべての依存関係を設定する軽量で実行可能なイメージ。コンテナーはオペレーティングシステムを仮想化するため、データセンター、パブリッククラウドまたはプライベートクラウド、ローカルホストでコンテナーを実行できます。
Image Registry Operator
Image Registry Operator は openshift-image-registry namespace で実行され、その場所のレジストリーインスタンスを管理します。
イメージリポジトリー
イメージリポジトリーは、関連するコンテナーイメージおよびイメージを特定するタグのコレクションです。
ミラーレジストリー
ミラーレジストリーは、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 により提供されるレジストリーです。
レジストリー認証
プライベートイメージリポジトリーとの間でイメージをプッシュおよびプルするには、レジストリーで認証情報を使用してユーザーを認証する必要があります。
ルート
サービスを公開して、OpenShift Dedicated インスタンス外のユーザーおよびアプリケーションから Pod へのネットワークアクセスを許可します。
スケールダウン
レプリカの数を減らすことを意味します。
スケールアップ
レプリカの数を増やすことを意味します。
サービス
サービスは、一連の Pod で実行中のアプリケーションを公開します。

1.2. 統合 OpenShift イメージレジストリー

OpenShift Dedicated は、クラスター上の標準ワークロードとして実行されるコンテナーイメージレジストリーでビルドを提供します。このレジストリーはインフラストラクチャー Operator によって設定され、管理されます。また、追加設定なしで使用できる、ワークロードを実行するイメージの管理を目的とするソリューションを提供し、既存のクラスターインフラストラクチャーの上部で実行されます。このレジストリーは、他のクラスターワークロードのようにスケールアップまたはスケールダウンでき、特定のインフラストラクチャーのプロビジョニングを必要としません。さらに、クラスターのユーザー認証および認可システムに統合されるため、イメージを作成および取得するためのアクセスは、イメージリソースでユーザーのパーミッションを定義することで制御できます。

通常、レジストリーはクラスター上にビルドされたイメージの公開ターゲットとして、またクラスター上で実行されるワークロードのイメージのソースとして使用されます。新規イメージがレジストリーにプッシュされると、その旨がクラスターに通知されます。他のコンポーネントは、更新されたイメージに対して応答したり、それを使用したりできます。

イメージデータは 2 つの場所に保存されます。実際のイメージデータは、クラウドストレージまたはファイルシステムボリュームなどの設定可能なストレージの場所に格納されます。標準のクラスター API によって公開され、アクセス制御の実行に使用されるイメージメタデータは、標準的な API リソース、特にイメージおよびイメージストリームとして保存されます。

1.3. サードパーティーレジストリー

OpenShift Dedicated は、サードパーティーレジストリーからのイメージを使用してコンテナーを作成できます。しかし、サードパーティーレジストリーが統合 OpenShift イメージレジストリーと同じイメージ通知をサポートする可能性はほとんどありません。このため、OpenShift Dedicated はイメージストリームの作成時にリモートレジストリーからタグを取得します。取得されたタグを更新するには、oc import-image <stream> を実行します。新規イメージが検出されると、記述したビルドとデプロイメントの応答が生じます。

1.3.1. 認証

OpenShift Dedicated はユーザーが指定する認証情報を使用してプライベートイメージリポジトリーにアクセスするためにレジストリーと通信できます。これにより、OpenShift Dedicated はイメージをプライベートリポジトリーに、またはプライベートリポジトリ〜からプッシュ/プルできます。

1.3.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>
  4. 以下のコマンドを実行してイメージをダウンロードし、ローカルに保存します。

    $ podman pull registry.redhat.io/<repository_name>

1.4. Red Hat Quay レジストリー

エンタープライズ向けの高品質なコンテナーイメージレジストリーが必要な場合、Red Hat Quay をホストされたサービスとして、また独自のデータセンターやクラウド環境にインストールするソフトウェアとして使用できます。Red Hat Quay の高度な機能には、geo レプリケーション、イメージのスキャニング、およびイメージのロールバック機能が含まれます。

Quay.io サイトにアクセスし、独自のホストされた Quay レジストリーアカウントをセットアップします。その後、Quay チュートリアルに従って Quay レジストリーにログインし、イメージの管理を開始します。

Red Hat Quay レジストリーへのアクセスは、任意のリモートコンテナーイメージレジストリーと同様に OpenShift Dedicated から実行できます。

1.5. 認証が有効な 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 は不足分を示す情報を使用してリソースのステータスを更新します。

Image Registry Operator は openshift-image-registry namespace で実行され、その場所のレジストリーインスタンスも管理します。レジストリーのすべての設定およびワークロードリソースはその namespace に置かれます。

第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

    出力例

    NAME READY STATUS RESTARTS AGE
    cluster-image-registry-operator-764bd7f846-qqtpb 1/1 Running 0 78m
    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

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

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

手順

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

    $ oc logs deployments/image-registry -n openshift-image-registry

    出力例

    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

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat 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 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.