接続されたレジストリとは?

この記事では、Azure Container Registry接続されたレジストリ機能について学習します。 接続されたレジストリは、コンテナー イメージや他の OCI 成果物をクラウドベースの Azure コンテナー レジストリと同期するオンプレミスまたはリモートのレプリカです。 接続されたレジストリを使用すると、オンプレミスのレジストリ成果物へのアクセスを高速化し、入れ子になった IoT Edge の使用など、高度なシナリオを構築するのに役立ちます。

Note

接続されたレジストリは、Premium コンテナー レジストリ サービス レベルのプレビュー機能であり、制限が適用されます。 レジストリ サービスのレベルと制限については、Azure Container Registry のサービス レベルに関する記事を参照してください。

対応リージョン

  • カナダ中部
  • 東アジア
  • 米国東部
  • 北ヨーロッパ
  • ノルウェー東部
  • 東南アジア
  • 米国中西部
  • 西ヨーロッパ

シナリオ

クラウドベースの Azure コンテナー レジストリは、geo レプリケーション、統合セキュリティ、Azure マネージド ストレージ、Azure 開発およびデプロイ パイプラインとの統合などの機能を提供します。 同時に、顧客はクラウドへの投資をオンプレミスおよび現場のソリューションに拡張しています。

オンプレミスまたはリモート環境で必要なパフォーマンスと信頼性を保って実行するには、コンテナー ワークロードがコンテナー イメージおよび関連する成果物を近くで使用できる必要があります。 接続されたレジストリは、クラウドベースの Azure コンテナー レジストリとコンテンツを定期的に同期する、パフォーマンスの高いオンプレミスのレジストリ ソリューションを提供します。

接続されたレジストリのシナリオには、次のものが含まれます。

  • 接続された工場
  • 小売の場所の販売時点管理
  • 出荷、石油の掘削、採鉱など、時々接続される環境

接続されたレジストリのしくみ

次の図は、接続されたレジストリの一般的なデプロイ モデルを示しています。

Diagram of connected registry overview

展開

それぞれの接続されたレジストリは、クラウドベースの Azure コンテナー レジストリを使用して管理するリソースです。 接続されたレジストリ階層の最上位の親は、Azure クラウド内のプライベート デプロイ内の Azure コンテナー レジストリです。

接続されたレジストリは、オンプレミスのサーバーまたはデバイス上、あるいは Azure IoT Edge などのオンプレミスのコンテナー ワークロードをサポートする環境上に、Azure ツールを使用してインストールします。

接続されたレジストリのアクティブ化の状態は、それがオンプレミスにデプロイされているかどうかを示します。

  • アクティブ - 接続されたレジストリは現在オンプレミスにデプロイされています。 非アクティブ化されるまでは、もう一度デプロイすることはできません。
  • 非アクティブ - 接続されたレジストリはオンプレミスにデプロイされていません。 現時点でデプロイできます。

コンテンツの同期

接続されたレジストリは、コンテナー イメージおよび OCI 成果物を同期するために、クラウド レジストリに定期的にアクセスします。

また、クラウド レジストリからリポジトリのサブセットを同期するように構成したり、特定の間隔でのみ同期するように構成したりして、クラウドとオンプレミス間のトラフィックを減らすこともできます。

モード

接続されたレジストリは、"ReadWrite" または "ReadOnly" という 2 つのモードのいずれかで動作できます

  • ReadWrite モード - 既定のモードでは、クライアントは接続されたレジストリとの間で成果物をプルおよびプッシュする (読み取ったり書き込んだりする) ことができます。 接続されたレジストリにプッシュされた成果物は、クラウド レジストリと同期されます。

    ReadWrite モードは、ローカル開発環境が配置されている場合に便利です。 イメージは、ローカルの接続されたレジストリにプッシュされ、そこからクラウドに同期されます。

  • ReadOnly モード - 接続されたレジストリが ReadOnly モードの場合、クライアントは成果物をプルする (読み取る) ことのみできます。 この構成は、入れ子になった IoT Edge シナリオ、またはクライアントが動作するためにコンテナー イメージをプルする必要があるその他のシナリオで使用されます。

レジストリの階層

それぞれの接続されたレジストリは、親に接続されている必要があります。 最上位の親はクラウド レジストリです。 入れ子になった IoT Edge など、階層状のシナリオでは、接続されたレジストリをどちらのモードでも入れ子にすることができます。 クラウド レジストリに接続されている親は、どちらのモードでも動作できます。

子レジストリは、親の機能と互換性がある必要があります。 したがって、ReadWrite モードと ReadOnly モードの接続されたレジストリはどちらも ReadWrite モードで動作する接続されたレジストリの子になることができますが、ReadOnly モードで動作する接続されたレジストリの子になれるのは ReadOnly モードのレジストリのみです。

クライアント アクセス

オンプレミスのクライアントは、Docker CLI などの標準ツールを使用して、接続されたレジストリからコンテンツをプッシュまたはプルします。 クライアント アクセスを管理するには、それぞれの接続されたレジストリにアクセスするための Azure コンテナー レジストリ トークンを作成します。 プルまたはプッシュ アクセス用のクライアント トークンは、レジストリ内の 1 つ以上のリポジトリに対してスコープを設定できます。

また、それぞれの接続されたレジストリは、その親レジストリと定期的に通信する必要があります。 このため、レジストリにはクラウド レジストリによって同期トークン (sync token) が発行されます。 このトークンは、同期および管理操作用に親レジストリで認証するために使用されます。

詳細については、「接続されたレジストリへのアクセスの管理」を参照してください。

制限事項

  • トークンとスコープ マップの数は、1 つのコンテナー レジストリに対してそれぞれ 20,000 に制限されています。 これにより、クラウド レジストリの接続されたレジストリの数が間接的に制限されます。すべての接続されたレジストリには同期およびクライアント トークンが必要だからです。
  • スコープ マップ内のリポジトリ アクセス許可の数は 500 に制限されています。
  • 接続されたレジストリのクライアントの数は現在、20 に制限されています。
  • リポジトリ、マニフェスト、またはタグ メタデータによるイメージ ロックは、接続されたレジストリでは現在サポートされていません。
  • ReadOnly モードを使用する接続されたレジストリでは、リポジトリの削除はサポートされていません。
  • 接続されたレジストリのリソース ログは、現在サポートされていません。
  • 接続されたレジストリは、レジストリのホーム リージョン データ エンドポイントと結合されます。 geo レプリケーションの自動移行はサポートされていません。
  • 接続されたレジストリを削除するには、オンプレミスのコンテナーを手動で削除し、クラウド内のそれぞれのスコープ マップまたはトークンを削除する必要があります。
  • 接続されたレジストリの同期に関する制限事項は次のとおりです。
    • 継続的同期の場合:
      • minMessageTtl は 1 日
      • maxMessageTtl は 90 日
    • 時々接続されるシナリオで同期ウィンドウを指定する場合:
      • minSyncWindow は 1 時間
      • maxSyncWindow は 7 日

次のステップ

この概要では、接続されたレジストリといくつかの基本的な概念について学習しました。 次のいずれかの記事に進み、接続されたレジストリを利用できる特定のシナリオについて学習してください。