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:
- Artefactcache
- Aktivieren des Artefaktcaches: Azure-Portal
- Aktivieren des Artefaktcaches mit Authentifizierung: Azure-Portal
- Aktivieren des Artefaktcaches – Azure CLI
- Aktivieren des Artefaktcaches mit Authentifizierung – Azure CLI
- 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:
Regelname: Der Name Ihrer Cacheregel. Beispiel:
Hello-World-Cache
.Quelle: Der Name der Quellregistrierung.
Repositorypfad: Der Quellpfad des Repositorys zum Suchen und Abrufen von Artefakten, die Sie zwischenspeichern möchten. Beispiel:
docker.io/library/hello-world
.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
Anmeldeinformationen: Der Name Ihrer Anmeldeinformationen.
Anmeldeserver für die Quellregistrierung: Der Anmeldeserver Ihrer Quellregistrierung.
Quellauthentifizierung: Die Schlüsseltresorspeicherorte zum Speichern von Anmeldeinformationen.
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
- Um Artefaktcache über das Azure-Portal zu aktivieren, fahren Sie mit dem nächsten Artikel Aktivieren des Artefaktcaches fort.