アーティファクト キャッシュ - 概要

アーティファクト キャッシュ機能を使用すると、ユーザーはコンテナー イメージをプライベート コンテナー レジストリにキャッシュできます。 アーティファクト キャッシュは、BasicStandardPremiumサービス レベルで使用できます。

この記事は、6 部構成のチュートリアル シリーズのパート 1 です。 チュートリアルの内容:

  1. アーティファクト キャッシュ
  2. アーティファクト キャッシュを有効にする - Azure portal
  3. 認証付きアーティファクト キャッシュを有効にする - Azure portal
  4. アーティファクト キャッシュを有効にする - Azure CLI
  5. 認証付きアーティファクト キャッシュを有効にする - Azure CLI
  6. アーティファクト キャッシュのトラブルシューティング ガイド

アーティファクト キャッシュ

アーティファクト キャッシュを使用すると、パブリック リポジトリとプライベート リポジトリからコンテナー イメージをキャッシュすることができます。

アーティファクト キャッシュを実装することには、次のような利点があります。

"より信頼性の高いなプル操作:" ACR 内のコンテナー イメージをキャッシュすることで、コンテナー イメージのプルを高速化できます。 Azure ネットワークは Microsoft が管理しているため、顧客に geo レプリケーションと可用性ゾーンのサポートを提供することで、プル操作の速度が向上します。

"プライベート ネットワーク": キャッシュされたレジストリは、プライベート ネットワークで使用できます。 そのため、ユーザーはコンプライアンス標準を満たすようにファイアウォールを構成できます。

"アップストリームのコンテンツが確実に配信される": すべてのレジストリ (特に Docker Hub などのパブリック レジストリ) には、すべてのユーザーにサービスを提供できるようにするために匿名プルの制限があります。 アーティファクト キャッシュを使用すると、ユーザーはアップストリーム レジストリではなくローカル ACR からイメージをプルできます。 アーティファクト キャッシュにより、アップストリームからのコンテンツ配信が保証され、ユーザーはプル制限を適用されることなく、キャッシュからコンテナー イメージをプルする利点を得られます。

用語

  • キャッシュ規則 - キャッシュ規則は、サポートされているリポジトリからキャッシュに成果物をプルするために作成できる規則です。

    • キャッシュ規則には、次の 4 つの部分が含まれています。

      1. 規則名 - キャッシュ規則の名前。 たとえば、「 Hello-World-Cache 」のように入力します。

      2. ソース - ソース レジストリの名前。

      3. リポジトリ パス - キャッシュする成果物を検索および取得するリポジトリのソース パス。 たとえば、「 docker.io/library/hello-world 」のように入力します。

      4. 新しい ACR リポジトリ名前空間 - 成果物を格納するための新しいリポジトリ パスの名前。 たとえば、「 hello-world 」のように入力します。 このリポジトリは、ACR インスタンス内に既に存在していることはできません。

  • 資格情報

    • 資格情報は、ソース レジストリのユーザー名とパスワードのセットです。 パブリック リポジトリまたはプライベート リポジトリで認証するには、資格情報が必要です。 資格情報には 4 つの部分が含まれています

      1. 資格情報 - 資格情報の名前。

      2. ソース レジストリ ログイン サーバー - ソース レジストリのログイン サーバー。

      3. ソース認証 - 資格情報を格納するキー コンテナーの場所。

      4. ユーザー名とパスワードのシークレット - ユーザー名とパスワードを含むシークレット。

制限事項

  • キャッシュは、使用可能なコンテナー イメージで少なくとも 1 つのイメージ プルが完了した後にのみ発生します。 新しいイメージが使用可能になるたびに、新しいイメージ プルが完了する必要があります。 アーティファクト キャッシュでは、新しいタグが使用可能な場合でも、新しいタグのイメージが自動的にプルされることはありません。 これはロードマップに含まれていますが、このリリースではサポートされていません。

  • アーティファクト キャッシュでは、1000 個のキャッシュ ルールのみがサポートされます。

アップストリームのサポート

現在、アーティファクト キャッシュでは、次のアップストリーム レジストリがサポートされています。

アップストリーム レジストリ サポート 可用性
Docker Hub 認証されたプルと認証されていないプルの両方がサポートされます。 Azure CLI、Azure portal
Microsoft アーティファクト レジストリ 認証されていないプルのみがサポートされます。 Azure CLI、Azure portal
ECR Public 認証されていないプルのみがサポートされます。 Azure CLI、Azure portal
GitHub Container Registry 認証されたプルと認証されていないプルの両方がサポートされます。 Azure CLI、Azure portal
NVIDIA 認証されたプルと認証されていないプルの両方がサポートされます。 Azure CLI
Quay 認証されたプルと認証されていないプルの両方がサポートされます。 Azure CLI、Azure portal
registry.k8s.io 認証されたプルと認証されていないプルの両方がサポートされます。 Azure CLI
Google Container Registry 認証されたプルと認証されていないプルの両方がサポートされます。 Azure CLI

ワイルドカード

ワイルドカードでは、アスタリスク (*) を使用し、コンテナー イメージ レジストリ内の複数のパスを照合します。 現在、アーティファクト キャッシュでは、次のワイルドカードがサポートされています。

Note

キャッシュ ルールは、ターゲット リポジトリからソース リポジトリにマップされます。

レジストリ レベルのワイルドカード

レジストリ レベルのワイルドカードを使用すると、アップストリーム レジストリからすべてのリポジトリをキャッシュできます。

キャッシュ ルール マッピング
contoso.azurecr.io/* => mcr.microsoft.com/* ACR の下にあるすべてのイメージを MCR にマッピング。 contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1
contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2

リポジトリ レベルのワイルドカード

リポジトリ レベルのワイルドカードを使用すると、アップストリーム レジストリ マッピングからリポジトリ プレフィックスにすべてのリポジトリをキャッシュできます。

キャッシュ ルール マッピング
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* ACR 下の特定のリポジトリをそれに対応する MCR のリポジトリにマッピングします。 contoso.azurecr.io/dotnet/sdk => mcr.microsoft.com/dotnet/sdk
contoso.azurecr.io/dotnet/runtime => mcr.microsoft.com/dotnet/runtime
contoso.azurecr.io/library/dotnet/* => mcr.microsoft.com/dotnet/*
contoso.azurecr.io/library/python/* => docker.io/library/python/*
ACR 下の特定のリポジトリを、さまざまなアップストリーム レジストリからリポジトリにマッピングします。 contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1
contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3

ワイルドカード ベースのキャッシュ ルールの制限事項

ワイルドカード キャッシュ ルールでは、アスタリスク (*) を使用し、コンテナー イメージ レジストリ内の複数のパスを照合します。 これらの規則は、他のワイルドカード キャッシュ ルールと重複できません。 つまり、特定のレジストリ パスにワイルドカード キャッシュ ルールがある場合、それと重複する別のワイルドカード ルールを追加することはできません。

重複するルールの例をいくつか次に示します。

例 1:

既存のキャッシュ ルール: contoso.azurecr.io/* => mcr.microsoft.com/*
追加される新しいキャッシュ: contoso.azurecr.io/library/* => docker.io/library/*

ターゲット リポジトリ パス contoso.azurecr.io/library/* が既存のワイルドカード ルール contoso.azurecr.io/* と重複するため、新しいキャッシュ ルールの追加はブロックされます。

例 2:

既存のキャッシュ ルール: contoso.azurecr.io/library/* =>mcr.microsoft.com/library/*
追加される新しいキャッシュ: contoso.azurecr.io/library/dotnet/* =>docker.io/library/dotnet/*

ターゲット リポジトリ パス contoso.azurecr.io/library/dotnet/* が既存のワイルドカード ルール contoso.azurecr.io/library/* と重複するため、新しいキャッシュ ルールの追加はブロックされます。

静的/固定キャッシュ ルールの制限事項

静的または固定キャッシュ ルールはもっと具体的なものであり、ワイルドカードは使用しません。 ワイルドカードベースのキャッシュ ルールと重複してもかまいません。 キャッシュ ルールで固定のリポジトリ パスが指定される場合、ワイルドカードベースのキャッシュ ルールとの重複が許可されます。

例 1:

既存のキャッシュ ルール: contoso.azurecr.io/* =>mcr.microsoft.com/*
追加される新しいキャッシュ: contoso.azurecr.io/library/dotnet =>docker.io/library/dotnet

contoso.azurecr.io/library/dotnet は静的パスであり、ワイルドカード キャッシュ ルール contoso.azurecr.io/* と重複しても良いため、新しいキャッシュ ルールの追加は許可されます。

次のステップ