Amazon EKS hat die Windows AMI-Verwaltung optimiert - Amazon EKS

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon EKS hat die Windows AMI-Verwaltung optimiert

Windows Amazon EKS Optimized AMIs basiert auf Windows Server 2019 und Windows Server 2022. Sie sind so konfiguriert, dass sie als Basis-Image für Amazon-EKS-Knoten dienen. Standardmäßig AMIs enthalten sie die folgenden Komponenten:

Sie können die Amazon Machine Image (AMI) -ID für Amazon EKS programmgesteuert abrufen, AMIs indem Sie die AWS Systems Manager Parameter Store Store-API abfragen. Mit diesem Parameter müssen Sie nicht manuell nach Amazon EKS-optimiertem AMI suchen IDs. Weitere Informationen zur Systems Manager Parameter Store-API finden Sie unter GetParameter. Ihr Benutzerkonto muss über die ssm: GetParameter IAM-Berechtigung verfügen, um die für Amazon EKS optimierten AMI-Metadaten abzurufen.

Im folgenden Beispiel wird die AMI-ID für das neueste Amazon EKS-optimierte AMI für Windows Server 2019 LTSC Core abgerufen. Die im AMI-Namen aufgeführte Versionsnummer bezieht sich auf den entsprechenden Kubernetes-Build, für den es vorbereitet ist.

aws ssm get-parameter --name /aws/service/ami-windows-latest/Windows_Server-2019-English-Core-EKS_Optimized-1.21/image_id --region us-east-1 --query "Parameter.Value" --output text

Beispielausgabe:

ami-09770b3eec4552d4e

Verwaltung Ihres eigenen für Amazon EKS optimierten Windows-AMI

Ein wichtiger Schritt in Richtung Produktionsumgebungen ist die Beibehaltung derselben für Amazon EKS optimierten Windows AMI- und Kubelet-Version im gesamten Amazon EKS-Cluster.

Die Verwendung derselben Version im gesamten Amazon EKS-Cluster reduziert die Zeit bei der Fehlerbehebung und erhöht die Cluster-Konsistenz. Amazon EC2 Image Builder hilft bei der Erstellung und Verwaltung von benutzerdefinierten, für Amazon EKS optimierten Windows AMIs , die in einem Amazon EKS-Cluster verwendet werden können.

Verwenden Sie Amazon EC2 Image Builder, um zwischen Windows Server-Versionen, AWS Windows Server AMI-Veröffentlichungsdaten und and/or Betriebssystem-Build-Versionen zu wählen. Im Schritt Komponenten erstellen können Sie zwischen vorhandenen EKS-optimierten Windows-Artefakten und den Kubelet-Versionen wählen. Weitere Informationen finden Sie unter: .html https://docs.aws.amazon.com/eks/ latest/userguide/eks custom-ami-windows

Komponenten erstellen

HINWEIS: Bevor Sie ein Basis-Image auswählen, finden Sie im Abschnitt Windows Server-Version und -Lizenz wichtige Informationen zu Release-Channel-Updates.

Konfiguration eines schnelleren Starts für benutzerdefinierte EKS-Optimierungen AMIs

Bei Verwendung eines benutzerdefinierten, für Windows Amazon EKS optimierten AMI können Windows-Worker-Knoten bis zu 65% schneller gestartet werden, wenn die Schnellstartfunktion aktiviert wird. Diese Funktion verwaltet eine Reihe von vorab bereitgestellten Snapshots, für die die Schritte Sysprep Specialized, Windows Out of Box Experience (OOBE) und erforderliche Neustarts bereits abgeschlossen sind. Diese Snapshots werden dann bei nachfolgenden Starts verwendet, wodurch die Zeit für das Skalieren oder Ersetzen von Knoten reduziert wird. Fast Launch kann nur für AMIs Sie selbst über die EC2 Konsole oder in der AWS-CLI aktiviert werden, und die Anzahl der verwalteten Snapshots ist konfigurierbar.

HINWEIS: Fast Launch ist nicht mit dem von Amazon bereitgestellten EKS-optimierten Standard-AMI kompatibel. Erstellen Sie wie oben beschrieben ein benutzerdefiniertes AMI, bevor Sie versuchen, es zu aktivieren.

Weitere Informationen finden Sie unter AWS Windows AMIs — Konfigurieren Sie Ihr AMI für einen schnelleren Start

Zwischenspeichern von Windows-Basislayern auf benutzerdefinierten AMIs

Windows-Container-Images sind größer als ihre Linux-Gegenstücke. Wenn Sie eine containerisierte .NET Framework-basierte Anwendung ausführen, liegt die durchschnittliche Imagegröße bei etwa 8,24 GB. Während der Pod-Planung muss das Container-Image vollständig abgerufen und auf die Festplatte extrahiert werden, bevor der Pod den Status Running erreicht.

Während dieses Vorgangs ruft die Container-Laufzeit (containerd) das gesamte Container-Image auf der Festplatte ab und extrahiert es. Der Pull-Vorgang ist ein paralleler Prozess, was bedeutet, dass die Container-Laufzeit die Container-Image-Ebenen parallel abruft. Im Gegensatz dazu erfolgt der Extraktionsvorgang in einem sequentiellen Prozess und ist I/O intensiv. Aus diesem Grund kann es mehr als 8 Minuten dauern, bis das Container-Image vollständig extrahiert ist und von der Container-Laufzeit (containerd) verwendet werden kann. Daher kann die Startzeit des Pods mehrere Minuten dauern.

Wie im Thema Patchen von Windows Server und Containern erwähnt, besteht die Möglichkeit, ein benutzerdefiniertes AMI mit EKS zu erstellen. Während der AMI-Vorbereitung können Sie eine zusätzliche EC2 Image Builder-Komponente hinzufügen, um alle erforderlichen Windows-Container-Images lokal abzurufen und dann das AMI zu generieren. Durch diese Strategie wird die Zeit, in der ein Pod den Status Running erreicht, drastisch reduziert.

Erstellen Sie in Amazon EC2 Image Builder eine Komponente, um die erforderlichen Bilder herunterzuladen, und hängen Sie sie an das Image-Rezept an. Im folgenden Beispiel wird ein bestimmtes Bild aus einem ECR-Repository abgerufen.

name: ContainerdPull
description: This component pulls the necessary containers images for a cache strategy.
schemaVersion: 1.0

phases:
  - name: build
    steps:
      - name: containerdpull
        action: ExecutePowerShell
        inputs:
          commands:
            - Set-ExecutionPolicy Unrestricted -Force
            - (Get-ECRLoginCommand).Password | docker login --username AWS --password-stdin 111000111000.dkr.ecr.us-east-1.amazonaws.com
            - ctr image pull mcr.microsoft.com/dotnet/framework/aspnet:latest
            - ctr image pull 111000111000.dkr.ecr.us-east-1.amazonaws.com/myappcontainerimage:latest

Um sicherzustellen, dass die folgende Komponente wie erwartet funktioniert, überprüfen Sie, ob die von EC2 Image Builder (EC2InstanceProfileForImageBuilder) verwendete IAM-Rolle über die angehängten Richtlinien verfügt:

Berechtigungen, Richtlinien

Blog-Beitrag

Im folgenden Blogbeitrag erfahren Sie Schritt für Schritt, wie Sie die Caching-Strategie für benutzerdefinierte Amazon EKS-Windows AMIs implementieren:

Verkürzung der Startzeiten von Windows-Containern mit EC2 Image Builder und Image-Cache-Strategie