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 Service Level Agreements und der Herstellergarantie 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
- Sie benötigen einen vorhandenen AKS-Cluster mit ACR-Integration. Wenn Sie noch keinen besitzen, können Sie mithilfe Authentifizieren mit ACR von AKS einen erstellen.
- Aktivieren des Artefaktstreamings auf ACR.
- Dieses Feature erfordert die Kubernetes-Version 1.25 oder höher. Informationen zum Überprüfen Ihrer AKS-Clusterversion finden Sie unter Überprüfen auf verfügbare AKS-Clusterupgrades.
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
Installieren Sie die CLI-Erweiterung
aks-preview
mit dem Befehlaz extension add
.az extension add --name aks-preview
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 desaz 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.
Erstellen Sie eine Azure-Ressourcengruppe, um Ihre ACR-Instanz mithilfe des
az group create
-Befehls zu speichern.az group create --name myStreamingTest --location westus
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
Konfigurieren Sie mithilfe des Befehls
az configure
die ACR-Standardinstanz für Ihr Abonnement.az configure --defaults acr="mystreamingtest"
Ü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 --repository jupyter/all-spark-notebook:latest
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
Überprüfen Sie das generierte Artefaktstreaming mithilfe des
az acr manifest list-referrers
-Befehls.az acr manifest list-referrers --name 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
auftrue
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.
Azure Kubernetes Service