Freigeben über


Hier erfahren Sie, wie die CLI-Erweiterung für Azure Operator Service Manager (AOSM) Containerimages in ACR-Quellinstanzen basierend auf der Konfiguration von Helm-Charts erkennt.

In diesem Dokument wird erläutert, wie die Azure CLI-AOSM-Erweiterung Images in Helm-Charts erkennt, aus einer Containerregistrierung pullt und in einen AOSM-Artefaktspeicher hochlädt. Die Azure CLI-AOSM-Erweiterung unterstützt sowohl Azure Container Registry (ACR) als auch alle Containerregistrierungen, die die Docker-API unterstützen.

Imageermittlung

Die Eingabedatei der Azure CLI-AOSM-Erweiterung für die Version der Netzwerkfunktionsdefinition (Network Function Definition Version, NFDV), die von az aosm nfd generate-config --definition-type cnf generiert wird, enthält einen Parameter, der die Quellregistrierungen (und optional Namespaces) angibt, die von der AOSM-Befehlszeilenschnittstelle während des Onboardings von Containerimages abgefragt werden.

  // List of registries from which to pull the image(s).
  // For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
  // For non Azure Container Registries, ensure you have run a docker login command before running build.
  "image_sources": [],

"image_sources" ist ein Array von Zeichenfolgen. Jede Zeichenfolge ist ein Verweis auf eine Containerregistrierung und optional ein Namespace in dieser Registrierung.

Die Azure CLI-AOSM-Erweiterung führt folgende Aktionen aus:

  • Parsen der von helm template generierten Kubernetes-Definitionsdateien, um die Containerimageverweise zu ermitteln
  • Suchen nach Containerimageverweisen in den Registrierungen und Namespaces, die im Array „image_sources“ enthalten sind
  • Kopieren der Images aus den Quellregistrierungen in den AOSM-Artefaktspeicher

Wichtig

Die AOSM-CLI erfordert, dass die Images in Ihrer Quellregistrierung mit der Namespacestruktur übereinstimmen, die auch in Ihrem Helm-Chart festgelegt ist. So muss beispielsweise ein Image, das in einem Helm-Chart als core/contoso-a:1.0.0 enthalten ist, in der Quellregistrierung an einem Pfad verfügbar sein, der mit core/contoso-a:1.0.0 endet. Alle zusätzlichen Präfixe müssen im Parameter "image_sources" in der Datei cnf-input.jsonc enthalten sein, die vom Befehl az aosm nfd generate-config --definition-type cnf generiert wird.

Arbeitsbeispiel

In diesem Beispiel wird eine fiktive containerisierte Netzwerkfunktion (CNF) beschrieben. Diese CNF basiert auf drei Images, die die zentrale CNF-Funktion und ein Testimage bereitstellen, das zum Ausführen von Testabfragen für die CNF bereitgestellt werden kann. Die Quellregistrierung für die Images ist eine ACR-Instanz namens myregistry. In diesem Beispiel führen sie das Onboarding für alle vier Images durch.

Das Feld „image_sources“ in der NFDV-Eingabedatei wird wie folgt festgelegt:

  // List of registries from which to pull the image(s).
  // For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
  // For non Azure Container Registries, ensure you have run a docker login command before running build.
  "image_sources": ["myregistry.azurecr.io"],

Die Ausgabe von helm template für die Helm-Charts für diese CNF gibt vier Imagezeilen in der Kubernetes-Bereitstellungsdefinition aus:

image: repository/release/contoso-a:1.0.0
image: repository/release/contoso-b:1.0.0
image: repository/release/contoso-c:1.0.0
image: repository/test-release/contoso-test:1.0.0

Die Azure CLI-AOSM-Erweiterung übernimmt die obigen Imagezeilen und entfernt repository. (AOSM überschreibt das Repository mit der neuen Registrierung, die den AOSM-Artefaktspeicher unterstützt.) Anschließend sucht die Azure CLI-AOSM-Erweiterung unter myregistry.azurecr.io/release/contoso-a:1.0.0, myregistry.azurecr.io/release/contoso-b:1.0.0, myregistry.azurecr.io/release/contoso-c:1.0.0 und myregistry.azurecr.io/test-release/contoso-test:1.0.0 nach den Images. Die Images müssen in diesen Pfaden verfügbar sein.

Namespaces

Die Azure CLI-AOSM-Erweiterung unterstützt auch Imagenamespaces in Quellcontainerregistrierungen. Beispielsweise kann das Image contoso-test in test/test-release/contoso-test:1.0.0 in der Quellregistrierung hochgeladen werden. In diesem Fall muss das zusätzliche Präfix test im Parameter "image_sources" in der NFDV-Eingabedatei konfiguriert werden.

  // List of registries from which to pull the image(s).
  // For example ["sourceacr.azurecr.io/test", "myacr2.azurecr.io", "ghcr.io/path"].
  // For non Azure Container Registries, ensure you have run a docker login command before running build.
  "image_sources": ["myregistry.azurecr.io", "myregistry.azurecr.io/test"],

Die Azure CLI-AOSM-Erweiterung sucht unter myregistry.azurecr.io nach den Images. Dort entdeckt sie contoso-a, contoso-b und contoso-c. Anschließend wird in myregistry.azurecr.io/test gesucht. Dort wird contoso-test entdeckt.

Nächste Schritte