Azure Container Registry におけるアーティファクト ストリーミング (プレビュー)

アーティファクト ストリーミングは、Azure Container Registry の機能です。1 つのレジストリ内にコンテナー イメージを保存し、複数のリージョンにある Azure Kubernetes Service (AKS) クラスターでコンテナー イメージを管理およびストリーミングできます。 この機能は、AKS を使用する Azure のお客様のコンテナー化されたワークロードを高速化するように設計されています。 アーティファクト ストリーミングにより、時間がかかるノードのプルを待つことなく、ワークロードを簡単にスケーリングできるようになります。

ユース ケース

アーティファクト ストリーミングを使用するシナリオをいくつか次に示します。

コンテナー化されたアプリケーションを複数のリージョンにデプロイする: アーティファクト ストリーミングを使用すると、コンテナー イメージを 1 つのレジストリ内に保存し、複数のリージョンにある AKS クラスターでコンテナー イメージを管理およびストリーミングできます。 アーティファクト ストリーミングは、時間とリソースを消費することなく、コンテナー アプリケーションを複数のリージョンにデプロイします。

イメージのプルの待ち時間を短縮する: アーティファクト ストリーミングでは、イメージのサイズに応じてポッドの準備時間を 15% 以上短縮でき、30 GB 未満のイメージに最適です。 この機能により、イメージのプルの待ち時間が短縮され、コンテナーの起動が速くなります。これは、ソフトウェア開発者やシステム アーキテクトにとって有益です。

コンテナー化されたアプリケーションの効果的なスケーリング: アーティファクト ストリーミングは、コンテナー化されたアプリケーションを大規模に設計、ビルド、デプロイする機会を提供します。

アーティファクト ストリーミングの側面

次にアーティファクト ストリーミングの側面を簡単に示します。

  • 新規および既存のレジストリをお持ちのお客様は、特定のリポジトリまたはタグに対してアーティファクト ストリーミングを開始できます。

  • お客様は、アーティファクト ストリーミングを開始することで、元のアーティファクトとストリーミング アーティファクトの両方を ACR に保存できます。

  • お客様は、リポジトリまたはアーティファクトのアーティファクト ストリーミングをオフにした後でも、元のアーティファクトとストリーミング アーティファクトにアクセスできます。

  • アーティファクト ストリーミングと論理的な削除を有効にしているお客様は、リポジトリまたはアーティファクトを削除すると、元のバージョンとアーティファクト ストリーミング バージョンの両方が削除されます。 ただし、論理的な削除ポータルで利用できるのは元のバージョンのみです。

可用性と料金の情報

アーティファクト ストリーミングは、Premiumサービス レベル (SKU とも呼ばれます) でのみ使用できます。 アーティファクト ストリーミングでは、レジストリ ストレージの全体的な消費量が増加する可能性があります。 消費量が、含まれている 500 GiB の Premium SKU のしきい値を超えた場合、お客様には、価格のページに記載されているように追加のストレージ料金が適用されます。

プレビューの制限事項

アーティファクト ストリーミングは現在プレビューの段階です。 次の制限事項が適用されます。

  • プレビュー リリースでは、Linux AMD64 アーキテクチャを使用したイメージのみサポートされています。
  • プレビュー リリースでは、Windows ベースのコンテナー イメージと ARM64 イメージはサポートされていません。
  • プレビュー リリースでは、マルチアーキテクチャ イメージを部分的にサポートしています (AMD64 アーキテクチャだけがサポートされています)。
  • AKS で Ubuntu ベースのノード プールを作成するには、Ubuntu バージョン 20.04 以上を選択します。
  • Kubernetes の場合は、Kubernetes バージョン 1.26 以上または Kubernetes バージョン > 1.25 を使用してください。
  • プレビュー リリースでは、Premium SKU レジストリのみストリーミング アーティファクトの生成をサポートしています。 Premium 以外の SKU レジストリでは、プレビュー リリース中はこの機能が提供されません。
  • CMK (カスタマー マネージド キー) レジストリはプレビュー リリースではサポートされていません。
  • Kubernetes regcred は現時点でサポートされていません。

前提条件

  • この記事のサンプル コマンドは、Azure Cloud Shell または Azure CLI のローカル インストールを使用して実行できます。 これをローカル環境で使う場合は、バージョン 2.54.0 以降が必要です。 az --version を実行してバージョンを確認します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。

  • Azure portal にサインインします。

アーティファクト ストリーミングの開始

Azure Container Registry (ACR) 内のコンテナー イメージ用のストリーミング アーティファクトをプッシュ、インポート、生成するための一連の Azure CLI コマンドと Azure portal を使って、アーティファクト ストリーミングを始めます。 これらの指示では、PremiumSKU ACR の作成、イメージのインポート、ストリーミング アーティファクトの生成、アーティファクト ストリーミング操作の管理のためのプロセスの概要を示します。 必要に応じて、プレースホルダーを実際の値に置き換えてください。

イメージをプッシュおよびインポートして、ストリーミング アーティファクトを生成する - Azure CLI

アーティファクト ストリーミングは、Premium コンテナー レジストリ サービス レベルで利用できます。 アーティファクト ストリーミングを開始するには、Azure CLI (バージョン 2.54.0 以降) を使ってレジストリを更新します。 インストールまたはアップグレードする必要には、「Azure CLI のインストール」をご覧ください。

次の一般的な手順のようにして、アーティファクト ストリーミングを開始します。

Note

Premium コンテナー レジストリが既にある場合は、このステップをスキップできます。 Basic または Standard SKU をお使いのユーザーの場合、次のコマンドは失敗します。 このコードは Azure CLI で記述されており、対話モードで実行できます。 コマンドを実行する前にプレースホルダーを実際の値に置き換える必要があることに注意してください。

  1. Premium SKU を使用して、次の方法で新しい Azure コンテナー レジストリ (ACR) を作成します。

    たとえば、az group create コマンドを実行して、米国西部リージョンに my-streaming-test という名前の Azure リソース グループを作成し、az acr create コマンドを実行して、そのリソース グループに mystreamingtest という名前の Premium Azure コンテナー レジストリを作成します。

    az group create -n my-streaming-test -l westus
    az acr create -n mystreamingtest -g my-streaming-test -l westus --sku premium
    
  2. 次の方法でイメージをレジストリにプッシュまたはインポートします。

    たとえば、[az configure] コマンドを実行してデフォルトの ACR を構成し、az acr import コマンドを実行して、Docker Hub から mystreamingtest ACR に Jupyter Notebook イメージをインポートします。

    az configure --defaults acr="mystreamingtest"
    az acr import -source docker.io/jupyter/all-spark-notebook:latest -t jupyter/all-spark-notebook:latest
    
  3. イメージからアーティファクト ストリーミングを作成する

    指定したイメージからストリーミング アーティファクトの作成を開始します。

    たとえば、az acr artifact-streaming create コマンドを実行して、mystreamingtest ACR 内の jupyter/all-spark-notebook:latest イメージからストリーミング アーティファクトを作成します。

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    

Note

操作 ID は、後で操作の状態を確認するために、プロセス中に生成されます。

  1. 生成されたアーティファクト ストリーミングを Azure CLI で確認します。

    たとえば、az acr manifest list-referrers コマンドを実行して、mystreamingtest ACR 内の jupyter/all-spark-notebook:latest イメージのストリーミング アーティファクトを一覧表示します。

    az acr manifest list-referrers -n jupyter/all-spark-notebook:latest
    
  2. アーティファクト ストリーミングの作成をキャンセルする (必要な場合)

    変換がまだ完了していない場合に、ストリーミング アーティファクトの作成をキャンセルします。 それにより操作が終了します。

    たとえば、az acr artifact-streaming operation cancel コマンドを実行して、mystreamingtest ACR 内の jupyter/all-spark-notebook:latest イメージの変換操作をキャンセルします。

    az acr artifact-streaming operation cancel --repository jupyter/all-spark-notebook --id c015067a-7463-4a5a-9168-3b17dbe42ca3
    
  3. リポジトリで自動変換を開始する

    新しくプッシュまたはインポートされたイメージについて、リポジトリでの自動変換を開始します。 開始すると、そのリポジトリに新しいイメージがプッシュされると、ストリーミング アーティファクトの生成がトリガーされます。

    Note

    自動変換は、既存のイメージには適用されません。 既存のイメージは手動で変換できます。

    たとえば、az acr artifact-streaming update コマンドを実行して、mystreamingtest ACR 内の jupyter/all-spark-notebook リポジトリの自動変換を開始します。

    az acr artifact-streaming update --repository jupyter/all-spark-notebook --enable-streaming true
    
  4. 上記のリポジトリに新しいイメージ jupyter/all-spark-notebook:newtag をプッシュした後、ストリーミング変換の進行状況を確認します。

    たとえば、az acr artifact-streaming operation show コマンドを実行して、mystreamingtest ACR 内の jupyter/all-spark-notebook:newtag イメージの変換操作の状態を確認します。

    az acr artifact-streaming operation show --image jupyter/all-spark-notebook:newtag
    

Note

geo レプリケーションが始まっているかどうかに関係なく、アーティファクト ストリーミングはリージョンをまたいで動作します。 アーティファクト ストリーミングは、プライベート エンドポイントを介して動作し、それにアタッチできます。

イメージをプッシュ/インポートし、ストリーミング アーティファクトを生成する - Azure portal

アーティファクト ストリーミングは、PremiumSKU Azure Container Registry で利用できます。 アーティファクト ストリーミングを開始するには、Azure portal を使用してレジストリを更新します。

Azure portal でアーティファクト ストリーミングを作成する手順に従います。

  1. 自分の Azure Container Registry に移動します。

  2. サイド [メニュー][サービス][リポジトリ] を選択します。

  3. インポートした最新のイメージを選択します。

  4. Azure portal でイメージを変換し、アーティファクト ストリーミングを作成します。

    A screenshot of Azure portal with the create streaming artifact button highlighted.

  5. [参照元] タブのイメージから生成されたストリーミング アーティファクトを確認します。

    A screenshot of Azure portal with the streaming artifact highlighted.

  6. リポジトリからアーティファクト ストリーミングを削除することもできます。

    A screenshot of Azure portal with the delete artifact streaming button highlighted.

  7. ポータルでリポジトリにアクセスして自動変換を有効にすることもできます。 アクティブとは、リポジトリで自動変換が有効になっていることを意味します。 非アクティブとは、リポジトリで自動変換が無効になっていることを意味します。

    A screenshot of Azure portal with the start artifact streaming button highlighted.

Note

リポジトリ内のアーティファクト ストリーミングの状態 (非アクティブまたはアクティブ) によって、新しくプッシュされた互換性のあるイメージが自動的に変換されるかどうかが決まります。 既定では、すべてのリポジトリはアーティファクト ストリーミングで非アクティブな状態になります。 つまり、互換性のある新しいイメージがリポジトリにプッシュされると、アーティファクト ストリーミングはトリガーされず、イメージは自動的に変換されません。 新しくプッシュされたイメージの自動変換を開始する場合は、リポジトリのアーティファクト ストリーミングをアクティブな状態に設定する必要があります。 リポジトリがアクティブな状態になると、リポジトリにプッシュされた新しい互換性のあるコンテナー イメージによってアーティファクト ストリーミングがトリガーされます。 これにより、それらのイメージの自動変換が開始されます。

次のステップ