Freigeben über


Verbessern der Pullleistung von Containerimages in Azure Kubernetes Service

Dieser Artikel enthält Methoden zur Verbesserung der Leistung des Pull-Images für Containerimages in Azure Kubernetes Service (AKS).

Serialisierte und parallele Bildziehen

Es gibt zwei Arten von Containerimage-Pulls: serialisierte und parallele Image-Pulls.

In AKS-Versionen vor 1.31 aktiviert AKS standardmäßig serialisierte Bildziehvorgänge. Ab AKS Version 1.31 Preview ruft AKS standardmäßig Containerimages parallel ab. Serialisierte Image-Pulls sollten in der Regel weniger leistungsfähig sein als parallele Image-Pulls, insbesondere wenn der Dienst versucht, große oder zahlreiche Containerimages abzurufen.

Es kann jedoch weiterhin zu einer geringeren Leistung kommen, indem Sie parallele Bildzieher im Vergleich zu seriellen Bildziehen verwenden. Wenn Sie versuchen, große oder zahlreiche Bilder parallel zu ziehen, können Sie den Datenträger drosseln. Dies gilt insbesondere, wenn Sie nicht optimierte Datenträger- und VM-Ressourcen verwenden. In dieser Situation stellen Sie möglicherweise fest, dass die Zeit zum Ziehen der ersten Bilder in einer seriellen Einrichtung schneller ist, aber die Zeit zum Abrufen aller Bilder ist in einem parallelen Setup schneller. Je nach Ihren Workloadanforderungen sollten Sie die folgenden Schritte zum Skalieren der Datenträger- und VM-Ressourcen oder das Umschalten des Image-Pulltyps in Betracht ziehen.

Verbessern der Bildziehleistung in AKS-Versionen vor 1.31

Aktualisieren Sie auf AKS 1.31, um von serialisierten Bildziehvorgängen zu parallelen Bild-Pulls zu wechseln. Parallele Bild-Pulls verbessern die Bildziehleistung im Allgemeinen.

Verbessern der Bildziehleistung in AKS 1.31 und höheren Versionen

Wenn Sie feststellen, dass parallele Bild-Pulls die Latenz von Vorgängen im Vergleich zu serialisierten Bild pulls erhöhen, probieren Sie eine oder mehrere unten aufgeführte Methoden aus, um die Leistung zu verbessern:

Verwendung ephemerer OS-Festplatten

Wechseln Sie von verwalteten Betriebssystemdatenträgern zu kurzlebigen Betriebssystemdatenträgern, um Engpässe beim Datenträgerdurchsatz in Image-Pulls zu reduzieren. Ephemerale Betriebssystemdatenträger bieten eine dynamische Menge verfügbarer IOPS, sodass sie basierend auf Ihren Workloadanforderungen skaliert werden können.

Heraufsetzen der Größe des Betriebssystem-Datenträgers

Erhöhen Sie die Größe Ihres Betriebssystemdatenträgers, um einen Durchsatzengpässe beim Ziehen des Images zu reduzieren. Größere verwaltete Betriebssystemdatenträger erhöhen die verfügbare Datenträgerbandbreite.

Verwenden neuerer VM-SKUs

Wechseln Sie zu neueren virtuellen Maschinen der Hardwaregeneration (VM), lagerhaltungseinheiten (SKUs), z. B. der V4- und V5-Serie. Dies kann CPU-Engpässe beim Abrufen von Bildern reduzieren. Neuere VM-SKUs bieten eine leistungsfähigere Erfahrung über Speicher- und Netzwerkdurchsatz hinweg.

Vergrößern der Größe der VM-SKU

Erhöhen Sie die verfügbaren CPU-Kerne auf Ihrer VM-SKU, um einen CPU-Engpass beim Abrufen von Images zu reduzieren. Durch das Zuordnen weiterer Kerne wird verhindert, dass die Drosselung auf dem virtuellen Computer gedrosselt wird.

Umschalten des Bildziehtyps

Verwenden Sie die folgenden AFEC-Kennzeichnungsanweisungen, um parallele Bilder ein- oder auszuschalten.

Wenn Sie das az feature list --namespace Microsoft.ContainerServiceFeature ausführen, sollte das folgende Feature angezeigt werden:

{ "id": "/subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/providers/Microsoft.Features/providers/microsoft.ContainerService/features/DisableParallelImagePulls", "name": "microsoft.ContainerService/DisableParallelImagePulls", "properties": { "state": "NotRegistered" }, "type": "Microsoft.Features/providers/features" }

Sie können das Feature in Ihrem Azure-Abonnement mit dem folgenden Befehl registrieren:

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

Verhaltenserwartungen, wenn das Feature registriert ist:

  • Standardmäßig führt das Upgrade eines Knotenpools oder Clusters von einer früheren Version als 1.31 auf Kubernetes 1.31, und das Upgrade in Kubernetes 1.31 oder höher führt zu parallelem Pulling.
  • Knotenpools oder Cluster, die bereits Kubernetes 1.31 ausführen, aber vor der Abonnementregistrierung erstellt wurden, verwenden zunächst paralleles Image-Pulling. Jedes nachfolgende Upgrade des Knotenimages oder das Kubernetes-Versionsupgrade führt jedoch dazu, dass der Knotenpool oder der Cluster serielles Image pulling verwendet.
  • Für alle neuen Cluster oder Knotenpools, die vor 1.31-Versionen erstellt oder auf Kubernetes aktualisiert wurden, hat die Registrierung für dieses Feature keine Auswirkungen. Dies liegt daran, dass paralleles Abrufen von Bildern nur für Versionen 1.31 und höher gilt.
  • Wenn Sie in vorhandenen Kubernetes 1.31-Knotenpools oder -clustern (die vor der Abonnementregistrierung erstellt wurden) leer PUT sind, wird das parallele Ziehen von Bildern nicht sofort auf das serielle Pulling umgestellt. Um die Änderung auszulösen, muss sich der Knoten einer Neuimage unterziehen. Ein Erneutes Image tritt nur während eines Kubernetes- oder Knotenimageupgrades auf. Der PUT-Vorgang aktualisiert jedoch das Flag in der Datenbank, und die Änderung wird während des nächsten Upgrades wirksam.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.