Verringern der Image-Pullzeit mit Artifact Streaming auf Azure Kubernetes Service (AKS) (Vorschau)

Rechenarbeitslasten mit hoher Leistung beziehen sich häufig auf große Images, was zu langen Image-Pullzeiten führen kann und Ihre Workloadbereitstellungen verlangsamen kann. Das Artefaktstreaming auf AKS ermöglicht ihnen das Streamen von Containerimages aus Azure Container Registry (ACR) auf AKS. AKS ruft nur die erforderlichen Ebenen für den anfänglichen Podstart ab, wodurch die Zeit reduziert wird, die zum Abrufen von Images und zum Bereitstellen Ihrer Workloads benötigt wird.

Artefaktstreaming kann die Zeit für die Pod-Bereitschaft je nach Größe des Image um mehr als 15 % reduzieren und eignet sich am besten für Images <30 GB. Basierend auf unserem Test haben wir eine Reduzierung der Pod-Startzeiten für Bilder <10 GB von Minuten auf Sekunden beobachtet. Wenn Sie über einen Pod verfügen, der Zugriff auf eine große Datei (>30 GB) benötigt, sollten Sie ihn als Volume mounten, anstatt ihn als Ebene zu erstellen. Denn wenn Ihr Pod diese Datei zum Starten benötigt, überlastet es den Knoten. Artefaktstreaming ist nicht ideal für das Lesen von umfangreichen Images aus dem Dateisystem, wenn Sie diese beim Start benötigen. Mit Artefaktstreaming wird der Start eines Pods gleichzeitig erfolgen, während ohne Artefaktstreaming die Pods seriell starten.

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

Wichtig

AKS-Previewfunktionen stehen gemäß dem Self-Service- und Aktivierungsprinzip zur Verfügung. Vorschauversionen werden „wie besehen“ und „wie verfügbar“ bereitgestellt und sind von den Vereinbarungen zum Service Level und der eingeschränkten Garantie ausgeschlossen. AKS-Vorschauversionen werden teilweise vom Kundensupport auf Grundlage der bestmöglichen Leistung abgedeckt. Daher sind diese Funktionen nicht für die Verwendung in der Produktion vorgesehen. Weitere Informationen finden Sie in den folgenden Supportartikeln:

Voraussetzungen

Hinweis

Artefaktstreaming wird nur für Ubuntu 22.04-, Ubuntu 20.04- und Azure Linux-Knotenpools unterstützt. Windows-Knotenpools werden nicht unterstützt.

Installieren Sie die aks-preview-Erweiterung für die Befehlszeilenschnittstelle

  1. Installieren Sie die CLI-Erweiterung aks-preview mit dem Befehl az extension add.

    az extension add --name aks-preview
    
  2. Aktualisieren Sie die Erweiterung mit dem Befehl az extension update, um sicherzustellen, dass Sie die neueste Version installiert haben.

    az extension update --name aks-preview
    

Registrieren Sie der Feature-Flag ArtifactStreamingPreview für Ihr Abonnement

  • Registrieren Sie die Feature-Flag ArtifactStreamingPreview in Ihrem Abonnement mithilfe des az feature register-Befehls.

    az feature register --namespace Microsoft.ContainerService --name ArtifactStreamingPreview
    

Aktivieren des Artefaktstreamings auf ACR

Die Aktivierung auf ACR ist eine Voraussetzung für Artefaktstreaming auf AKS. Weitere Informationen finden Sie unter Artefaktstreaming 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 mithilfe des az acr create-Befehls mit dem --sku Premium-Flag eine neue Premium-SKU-Azure-Containerregistrierung.

    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:latest -t jupyter/all-spark-notebook:latest
    
  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 Artefaktstreaming mithilfe des az acr manifest list-referrers-Befehls.

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

Aktivieren des Artefaktstreamings auf AKS

Aktivieren des Artefaktstreamings in einem neuen Knotenpool

  • Erstellen Sie einen neuen Knotenpool mit aktiviertem Artefaktstreaming mithilfe des Befehls az aks nodepool add mit dem --enable-artifact-streaming-Flag.

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

Aktivieren des Artefaktstreamings in einem bereits vorhandenen Knotenpool

  • Aktualisieren Sie einen vorhandenen Knotenpool für die Aktivierung von Artefaktstreaming mithilfe des Befehls az aks nodepool update mit der Option --enable-artifact-streaming.

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

Überprüfen, ob Artefaktstreaming aktiviert ist

Nachdem Sie nun das Artefaktstreaming auf einem Premium-ACR aktiviert und diesen mit einem AKS-Knotenpool mit aktiviertem Artefaktstreaming verbunden haben, werden alle neuen Podbereitstellungen auf diesem Cluster mit einem Image-Pull vom ACR mit aktiviertem Artefaktstreaming eine Verkürzung der Image-Pullzeiten feststellen.

  • Überprüfen Sie mithilfe des Befehls az aks nodepool show, ob ihr Knotenpool Artefaktstreaming aktiviert hat.

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

    Überprüfen Sie in der Ausgabe, ob das Feld Enabled auf true festgelegt ist.

Nächste Schritte

In diesem Artikel wird beschrieben, wie Sie das Artefaktstreaming in Ihren AKS-Knotenpools aktivieren, um Artefakte von ACR zu streamen und die Image-Pullzeit 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.