Verringern Sie die Zeit für die Bereitstellung mit Artefaktstreaming auf Azure Kubernetes Service (AKS) mit Azure Container Registry (ACR)

Große Container-Images können die Dauer zum Herunterladen des Images erhöhen und die Bereitstellung von Workloads verzögern. Mit Artefaktstreaming können Sie Containerimages von Azure Container Registry (ACR) auf Azure Kubernetes Service (AKS) streamen. AKS lädt beim anfänglichen Start des Pods nur die erforderlichen Layer, wodurch sich die Bereitstellungszeit für Ihre Workloads verkürzt.

In diesem Artikel wird beschrieben, wie Sie das Feature "Artefaktstreaming" in Ihren AKS-Knotenpools aktivieren und deaktivieren, um Artefakte von ACR zu streamen.

Voraussetzungen

Einschränkungen

  • Nur Bilder mit linux AMD64-Architektur werden unterstützt.
  • Windows-basierten Containerimages und ARM64-Images werden nicht unterstützt.
  • Nur die AMD64-Architektur wird für Multiarchitekturimages unterstützt.
  • Ubuntu-basierte Knotenpools in AKS müssen Ubuntu Version 20.04 oder höher verwenden.
  • Nur Premium-SKU-ACR-Registrierungen werden unterstützt.
  • CMK (Customer-Managed Keys)-Registrierungen werden nicht unterstützt.
  • Kubernetes regcred, wie z. B. imagePullSecrets, wird nicht unterstützt. Das Pullen von Images aus ACR mithilfe von Nicht-Entra-Anmeldeinformationen für bereichszugeordnete Token oder Anmeldeinformationen für den ACR-Administratorbenutzer erfolgt standardmäßig ohne Artifact Streaming, auch wenn der Knotenpool und das Image für Streaming aktiviert sind.
  • Artefaktstreaming unterstützt nur Bild-Pulls nach Tag. Artefaktstreaming funktioniert, indem Image-Abrufe anhand von Tags in eine Streaming-Variante des Images aufgelöst werden. Wenn Images per Digest abgerufen werden, können Sie Artifact Streaming nicht verwenden.

Aktivieren des Artefaktstreamings auf ACR

  1. Erstellen Sie eine Azure-Ressourcengruppe, um Ihre ACR-Instanz mithilfe des az group create-Befehls zu speichern.

    az group create --name myStreamingTest --location westus
    
  2. Erstellen Sie einen neuen Premium-SKU-ACR mit dem az acr create Befehl mit der --sku Premium Kennzeichnung.

    az acr create --resource-group myStreamingTest --name mystreamingtest --sku Premium
    
  3. Konfigurieren Sie mithilfe des Befehls az configure die ACR-Standardinstanz für Ihr Abonnement.

    az configure --defaults acr="mystreamingtest"
    
  4. Übertragen oder importieren Sie mithilfe des Befehls az acr import ein Image in die Registrierung.

    az acr import --source docker.io/jupyter/all-spark-notebook --repository jupyter/all-spark-notebook
    
  5. Erstellen Sie mithilfe des Befehls az acr artifact-streaming create ein Streamingartefakt aus dem Image.

    az acr artifact-streaming create --image jupyter/all-spark-notebook:latest
    
  6. Überprüfen Sie das generierte Artifakt-Streaming mithilfe des az acr manifest list-referrers-Befehls.

    az acr manifest list-referrers --name jupyter/all-spark-notebook:latest
    

Artefaktstreaming auf AKS aktivieren

Sie können Artefaktstreaming für neue oder vorhandene Knotenpools in Ihrem AKS-Cluster mit ACR-Integration aktivieren.

Hinweis

Wenn Sie keinen Premium-ACR in Ihren AKS-Cluster integriert haben, können Sie "Artifact Streaming" auf AKS nicht verwenden.

Aktivieren von Artefakt-Streaming auf einem neuen Knotenpool

Erstellen Sie einen neuen AKS-Knotenpool mit aktiviertem Artefaktstreaming mithilfe des az aks nodepool add Befehls mit der --enable-artifact-streaming Kennzeichnung.

az aks nodepool add \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myNodePool \
    --enable-artifact-streaming

Aktivieren des Artefaktstreamings in einem bereits vorhandenen Knotenpool

Aktivieren Sie Artifact Streaming in einem vorhandenen AKS-Knotenpool mithilfe des Befehls az aks nodepool update mit dem Flag --enable-artifact-streaming.

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myNodePool \
    --enable-artifact-streaming

Artefakt-Streaming in einem vorhandenen Knotenpool deaktivieren

Deaktivieren Sie das Artefaktstreaming für einen vorhandenen AKS-Knotenpool mit dem Befehl az aks nodepool update und dem Flag --disable-artifact-streaming.

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myNodePool \
    --disable-artifact-streaming

Überprüfen des Status der Artefaktstreaming-Aktivierung

Überprüfen Sie, ob Artifact Streaming in einem AKS-Knotenpool aktiviert ist, indem Sie den Befehl az aks nodepool show mit dem auf artifactStreamingProfile gesetzten Flag --query verwenden.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name myNodePool \
    --query artifactStreamingProfile

Überprüfen Sie in der Ausgabe das Enabled Feld. true bedeutet, dass Artefaktstreaming aktiviert ist und false bedeutet, dass Artefaktstreaming deaktiviert ist.

In diesem Artikel wird beschrieben, wie Sie Artefaktstreaming in Ihren AKS-Knotenpools aktivieren und deaktivieren, um Artefakte von ACR zu streamen und Bereitstellungszeiten zu reduzieren. Weitere Informationen zum Arbeiten mit Containerimages in AKS finden Sie unter Bewährte Methoden für die Verwaltung und Sicherheit von Containerimages in AKS.