コンテナー イメージが大きいと、イメージのプル時間が長くなり、ワークロードのデプロイが遅れる可能性があります。 アーティファクト ストリーミングを使用すると、Azure Container Registry (ACR) からAzure Kubernetes Service (AKS)にコンテナー イメージをストリーミングできます。 AKS では、最初のポッドの起動に必要なレイヤーのみがプルされるため、ワークロードのデプロイにかかる時間が短縮されます。
この記事では、AKS ノード プールでアーティファクト ストリーミング機能を有効または無効にして、ACR から成果物をストリーミングする方法について説明します。
前提条件
- Azure サブスクリプション。 Azure サブスクリプションをお持ちでない場合は、無料のアカウントを作成できます。
- ACR で成果物ストリーミングを有効にする
- Azure CLI バージョン 2.87.0 以降。 バージョンを確認するには
az --versionを実行します。 インストールまたはアップグレードが必要な場合は、Azure CLI のインストールを参照してください。 - この機能には、Kubernetes バージョン 1.25 以降が必要です。 AKS クラスターのバージョンを確認するには、「利用可能な AKS クラスターのアップグレードを確認する」を参照してください。
- ACR 統合を使用する既存の AKS クラスター。 ない場合は、「AKS から ACR の認証を受ける」を使用して作成できます。
- ノード プールの構成を変更するには、Azure Kubernetes Service共同作成者ロールが必要です。
制限事項
- Linux AMD64 アーキテクチャのイメージのみがサポートされています。
- Windows ベースのコンテナー イメージと ARM64 イメージはサポートされていません。
- マルチアーキテクチャ イメージでは、AMD64 アーキテクチャのみがサポートされています。
- AKS の Ubuntu ベースのノード プールでは、Ubuntu バージョン 20.04 以降を使用する必要があります。
- Premium SKU ACR レジストリのみがサポートされています。
- CMK(顧客管理キー)レジストリはサポートされていません。
-
regcredなどの KubernetesimagePullSecretsはサポートされていません。 非 Entra のスコープ マップ トークン資格情報または ACR 管理者ユーザー資格情報を使用して ACR からイメージをプルする場合、ノード プールとイメージでストリーミングが有効になっていても、既定では非 Artifact Streaming プルになります。 - アーティファクト ストリーミングでは、タグによるイメージ プルのみがサポートされます。 Artifact Streaming は、タグ指定のイメージのプルを、そのイメージのストリーミング版に解決することで動作します。 画像プルがダイジェストによって行われる場合、アーティファクト ストリーミングを使用することはできません。
ACR で成果物ストリーミングを有効にする
az group createコマンドを使用して、ACR インスタンスを保持するための Azure リソース グループを作成します。az group create --name myStreamingTest --location westusaz acr createフラグを指定して--sku Premiumコマンドを使用して、新しい Premium SKU ACR を作成します。az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premiumaz configureコマンドを使用して、サブスクリプションの既定の ACR インスタンスを構成します。az configure --defaults acr="mystreamingtest"az acr importコマンドを使用して、イメージをレジストリにプッシュまたはインポートします。az acr import --source docker.io/jupyter/all-spark-notebook --repository jupyter/all-spark-notebookaz acr artifact-streaming createコマンドを使用して、イメージからストリーミング成果物を作成します。az acr artifact-streaming create --image jupyter/all-spark-notebook:latestaz acr manifest list-referrersコマンドを使用して、生成された成果物ストリーミングを確認します。az acr manifest list-referrers --name jupyter/all-spark-notebook:latest
AKS で成果物ストリーミングを有効にする
ACR 統合を使用して、AKS クラスター内の新規または既存のノード プールでアーティファクト ストリーミングを有効にすることができます。
メモ
Premium レベルの ACR が AKS クラスターと統合されていない場合、AKS でアーティファクト ストリーミングを使用することはできません。
新しいノード プールで成果物ストリーミングを有効にする
az aks nodepool add フラグを指定して --enable-artifact-streaming コマンドを使用して、アーティファクト ストリーミングが有効になっている新しい AKS ノード プールを作成します。
az aks nodepool add \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--enable-artifact-streaming
既存のノード プールでアーティファクト ストリーミングを有効にする
az aks nodepool update フラグを指定して --enable-artifact-streaming コマンドを使用して、既存の AKS ノード プールでアーティファクト ストリーミングを有効にします。
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--enable-artifact-streaming
既存のノード プールでアーティファクト ストリーミングを無効にする
az aks nodepool update フラグを指定して --disable-artifact-streaming コマンドを使用して、既存の AKS ノード プールでアーティファクト ストリーミングを無効にします。
az aks nodepool update \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--disable-artifact-streaming
アーティファクト ストリーミング有効化の状態を確認する
az aks nodepool show フラグが --query に設定された artifactStreamingProfile コマンドを使用して、AKS ノード プールでアーティファクト ストリーミングが有効になっているかどうかを確認します。
az aks nodepool show \
--resource-group myResourceGroup \
--cluster-name myAKSCluster \
--name myNodePool \
--query artifactStreamingProfile
出力で、 Enabled フィールドを確認します。
true はアーティファクト ストリーミングが有効であることを意味し、 false はアーティファクト ストリーミングが無効になっていることを意味します。
関連するコンテンツ
この記事では、AKS ノード プールでアーティファクト ストリーミングを有効または無効にして、ACR から成果物をストリーミングし、デプロイ時間を短縮する方法について説明します。 AKS でのコンテナー イメージの操作の詳細については、「AKS でのコンテナー イメージの管理とセキュリティに関するベスト プラクティス」を参照してください。