Artefaktcache – Übersicht

Das Feature „Artefaktcache“ ermöglicht Benutzer*innen das Zwischenspeichern von Containerimages in einer privaten Containerregistrierung. Artefaktcache ist in den DienstebenenBasic, Standard und Premium verfügbar.

Dieser Artikel ist der erste Teil einer sechsteiligen Tutorialserie. In diesem Tutorial wird Folgendes behandelt:

  1. Artefactcache
  2. Aktivieren des Artefaktcaches: Azure-Portal
  3. Aktivieren des Artefaktcaches mit Authentifizierung: Azure-Portal
  4. Aktivieren des Artefaktcaches – Azure CLI
  5. Aktivieren des Artefaktcaches mit Authentifizierung – Azure CLI
  6. Leitfaden zur Problembehandlung für Artefaktcache

Artefaktcache

Artefaktcache ermöglicht es Ihnen, Containerimages aus öffentlichen und privaten Repositorys zwischenzuspeichern.

Die Implementierung des Artefaktcaches bietet die folgenden Vorteile:

Zuverlässigere Pullvorgänge: Schnellere Pulls von Containerimages sind möglich, indem die Containerimages in Azure Container Registry (ACR) zwischengespeichert werden. Da Microsoft das Azure-Netzwerk verwaltet, sind Pullvorgänge schneller, indem den Kunden Unterstützung für Georeplikation und Verfügbarkeitszonen bereitgestellt wird.

Private Netzwerke: Zwischengespeicherte Registrierungen sind in privaten Netzwerken verfügbar. Daher können Firewalls so konfiguriert werden, dass sie die Konformitätsstandards erfüllen.

Sicherstellen, dass Upstreaminhalte bereitgestellt werden: Alle Registrierungen, insbesondere öffentliche Registrierungen wie Docker Hub und andere, verfügen über anonyme Pullgrenzwerte, um sicherzustellen, dass sie allen Benutzer*innen Dienste bereitstellen können. Artefaktcache ermöglicht Benutzer*innen das Pullen von Images aus der lokalen ACR-Instanz anstatt aus der Upstreamregistrierung. Artefaktcache stellt sicher, dass die Inhaltsübermittlung über den Upstream erfolgt, und Benutzer*innen können die Containerimages aus dem Cache pullen, ohne dass dies auf die Pullgrenzwerte angerechnet wird.

Begriff

  • Cacheregel: Eine Cacheregel ist eine Regel, die Sie erstellen können, um Artefakte aus einem unterstützten Repository in Ihren Cache zu pullen.

    • Eine Cacheregel enthält vier Teile:

      1. Regelname: Der Name Ihrer Cacheregel. Beispiel: Hello-World-Cache.

      2. Quelle: Der Name der Quellregistrierung.

      3. Repositorypfad: Der Quellpfad des Repositorys zum Suchen und Abrufen von Artefakten, die Sie zwischenspeichern möchten. Beispiel: docker.io/library/hello-world.

      4. Neuer ACR-Repositorynamespace: Der Name des neuen Repositorypfads zum Speichern von Artefakten. Beispiel: hello-world. Das Repository darf nicht in der ACR-Instanz vorhanden sein.

  • Anmeldeinformationen

    • Anmeldeinformationen sind eine Kombination aus Benutzername und Kennwort für die Quellregistrierung. Sie benötigen Anmeldeinformationen, um sich bei einem öffentlichen oder privaten Repository zu authentifizieren. Anmeldeinformationen enthalten vier Teile

      1. Anmeldeinformationen: Der Name Ihrer Anmeldeinformationen.

      2. Anmeldeserver für die Quellregistrierung: Der Anmeldeserver Ihrer Quellregistrierung.

      3. Quellauthentifizierung: Die Schlüsseltresorspeicherorte zum Speichern von Anmeldeinformationen.

      4. Benutzernamen- und Kennwortgeheimnisse: Die Geheimnisse, die den Benutzernamen und das Kennwort enthalten.

Begrenzungen

  • Eine Zwischenspeicherung (Cache) erfolgt erst, nachdem mindestens ein Image Pull für das verfügbare Containerimage abgeschlossen wurde. Für jedes neue verfügbare Image muss ein neuer Image Pull abgeschlossen werden. Artefaktcache ruft nicht automatisch neue Tags von Images ab, wenn ein neues Tag verfügbar ist. Dies ist auf der Roadmap enthalten, wird aber in diesem Release nicht unterstützt.

  • Artefaktcache unterstützt nur 1.000 Cacheregeln.

Upstream-Support

Artefaktcache unterstützt derzeit die folgenden Upstream-Registrierungen:

Upstream-Registrierungen Support Verfügbarkeit
Docker Hub Unterstützt sowohl authentifizierte Pullvorgänge als auch nicht authentifizierte Pullvorgänge. Azure CLI/Azure-Portal
Microsoft-Artefaktregistrierung Unterstützt nur nicht authentifizierte Pullvorgänge. Azure CLI/Azure-Portal
ECR Public Unterstützt nur nicht authentifizierte Pullvorgänge. Azure CLI/Azure-Portal
GitHub Container Registry Unterstützt sowohl authentifizierte Pullvorgänge als auch nicht authentifizierte Pullvorgänge. Azure CLI/Azure-Portal
Nvidia Unterstützt sowohl authentifizierte Pullvorgänge als auch nicht authentifizierte Pullvorgänge. Azure CLI
Quay Unterstützt sowohl authentifizierte Pullvorgänge als auch nicht authentifizierte Pullvorgänge. Azure CLI/Azure-Portal
registry.k8s.io Unterstützt sowohl authentifizierte Pullvorgänge als auch nicht authentifizierte Pullvorgänge. Azure CLI
Google Container Registry Unterstützt sowohl authentifizierte Pullvorgänge als auch nicht authentifizierte Pullvorgänge. Azure CLI

Platzhalter

Platzhalter verwenden Sternchen (*) zum Abgleichen mehrerer Pfade innerhalb der Containerimageregistrierung. Artefaktcache unterstützt derzeit die folgenden Platzhalter:

Hinweis

Die Cacheregeln werden aus dem Zielrepository => Quellrepository zugeordnet.

Platzhalter auf Registrierungsebene

Mit dem Platzhalter auf Registrierungsebene können Sie alle Repositorys aus einer Upstreamregistrierung zwischenspeichern.

Cacheregel Zuordnung Beispiel
contoso.azurecr.io/* => mcr.microsoft.com/* Zuordnung für alle Images unter ACR zu MCR. contoso.azurecr.io/myapp/image1 => mcr.microsoft.com/myapp/image1
contoso.azurecr.io/myapp/image2 => mcr.microsoft.com/myapp/image2

Platzhalter auf Repositoryebene

Mit dem Platzhalter auf Repositoryebene können Sie alle Repositorys aus einer Upstreamregistrierungszuordnung zum Repositorypräfix zwischenspeichern.

Cacheregel Zuordnung Beispiel
contoso.azurecr.io/dotnet/* => mcr.microsoft.com/dotnet/* Zuordnen bestimmter Repositorys unter ACR zu entsprechenden Repositorys in 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/*
Zuordnen bestimmter Repositorys unter ACR zu Repositorys aus verschiedenen Upstreamregistrierungen. contoso.azurecr.io/library/dotnet/app1 => mcr.microsoft.com/dotnet/app1
contoso.azurecr.io/library/python/app3 => docker.io/library/python/app3

Einschränkungen für platzhalterbasierte Cacheregeln

Platzhaltercacheregeln verwenden Sternchen (*) zum Abgleichen mehrerer Pfade innerhalb der Containerimageregistrierung. Diese Regeln können sich nicht mit anderen Platzhaltercacheregeln überschneiden. Anders ausgedrückt: Wenn Sie über eine Platzhaltercacheregel für einen bestimmten Registrierungspfad verfügen, können Sie keine weitere Platzhalterregel hinzufügen, die sich mit dieser überschneidet.

Hier sind einige Beispiele für sich überschneidende Regeln:

Beispiel 1:

Vorhandene Cacheregel: contoso.azurecr.io/* => mcr.microsoft.com/*
Neuer Cache, der hinzugefügt wird: contoso.azurecr.io/library/* => docker.io/library/*

Das Hinzufügen der neuen Cacheregel wird blockiert, da sich der Zielrepositorypfad contoso.azurecr.io/library/* mit der vorhandenen Platzhalterregel überschneidet contoso.azurecr.io/*.

Beispiel 2:

Vorhandene Cacheregel: contoso.azurecr.io/library/* =>mcr.microsoft.com/library/*
Neuer Cache, der hinzugefügt wird: contoso.azurecr.io/library/dotnet/* =>docker.io/library/dotnet/*

Das Hinzufügen der neuen Cacheregel wird blockiert, da sich der Zielrepositorypfad contoso.azurecr.io/library/dotnet/* mit der vorhandenen Platzhalterregel überschneidet contoso.azurecr.io/library/*.

Einschränkungen für statische/feste Cacheregeln

Statische oder feste Cacheregeln sind spezieller und verwenden keine Platzhalter. Sie können sich mit platzhalterbasierten Cacheregeln überschneiden. Wenn eine Cacheregel einen festen Repositorypfad angibt, ist es zulässig, dass diese sich mit einer platzhalterbasierten Cacheregel überschneidet.

Beispiel 1:

Vorhandene Cacheregel: contoso.azurecr.io/* =>mcr.microsoft.com/*
Neuer Cache, der hinzugefügt wird: contoso.azurecr.io/library/dotnet =>docker.io/library/dotnet

Das Hinzufügen der neuen Cacheregel ist zulässig, da es sich um contoso.azurecr.io/library/dotnet einen statischen Pfad handelt und das Überschneiden mit der Plathaltercacheregel zulässig ist contoso.azurecr.io/*.

Nächste Schritte