Benutzerdefinierte AMI-Unterstützung - Eksctl-Benutzerhandbuch

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.

Benutzerdefinierte AMI-Unterstützung

Einstellung der AMI-ID des Knotens

Das --node-ami Flag ermöglicht eine Reihe fortgeschrittener Anwendungsfälle, z. B. die Verwendung eines benutzerdefinierten AMI oder die Abfrage von AWS in Echtzeit, um zu bestimmen, welches AMI verwendet werden soll. Das Flag kann sowohl für Nicht-GPU- als auch für GPU-Images verwendet werden.

Das Flag kann die AMI-Image-ID für ein Bild verwenden, um es explizit zu verwenden. Es kann auch die folgenden „speziellen“ Schlüsselwörter enthalten:

Stichwort Beschreibung

auto

Zeigt an, dass das für die Knoten zu verwendende AMI durch eine Abfrage von AWS EC2 gefunden werden soll. Dies bezieht sich auf den Autoresolver.

Auto-SSM

Zeigt an, dass das für die Knoten zu verwendende AMI durch eine Abfrage des AWS SSM Parameter Store gefunden werden soll.

Anmerkung

Bei der Einstellung --node-ami auf eine ID-Zeichenfolge eksctl wird davon ausgegangen, dass ein benutzerdefiniertes AMI angefordert wurde. Für AmazonLinux 2- und Ubuntu-Knoten, die sowohl von EKS verwaltet als auch von EKS selbst verwaltet werden, bedeutet dies, dass dies erforderlich overrideBootstrapCommand ist. Für AmazonLinux 2023 wird es nicht unterstützt, da es das /etc/eks/bootstrap.sh Skript nicht mehr für das Node-Bootstrapping verwendet und stattdessen einen Nodeadm-Initialisierungsprozess verwendet (weitere Informationen finden Sie in der Dokumentation zum Node-Bootstrapping). overrideBootstrapCommand

Beispiele für CLI-Flaggen:

eksctl create cluster --node-ami=auto # with a custom ami id eksctl create cluster --node-ami=ami-custom1234

Beispiel für eine Konfigurationsdatei:

nodeGroups: - name: ng1 instanceType: p2.xlarge amiFamily: AmazonLinux2 ami: auto - name: ng2 instanceType: m5.large amiFamily: AmazonLinux2 ami: ami-custom1234 managedNodeGroups: - name: m-ng-2 amiFamily: AmazonLinux2 ami: ami-custom1234 instanceType: m5.large overrideBootstrapCommand: | #!/bin/bash /etc/eks/bootstrap.sh <cluster-name>

Die --node-ami Flagge kann auch mit verwendet werdeneksctl create nodegroup.

Einstellung der Knoten-AMI-Familie

Sie --node-ami-family kann die folgenden Schlüsselwörter annehmen:

Stichwort Beschreibung

AmazonLinux2

Zeigt an, dass das auf Amazon Linux 2 basierende EKS-AMI-Image verwendet werden sollte (Standard).

AmazonLinux2023

Zeigt an, dass das auf Amazon Linux 2023 basierende EKS AMI-Image verwendet werden sollte.

Ubuntu 2004

Zeigt an, dass das auf Ubuntu 20.04 LTS (Focal) basierende EKS AMI-Image verwendet werden sollte (unterstützt für EKS 1.29).

UbuntuPro2004

Zeigt an, dass das auf Ubuntu Pro 20.04 LTS (Focal) basierende EKS AMI-Image verwendet werden sollte (verfügbar für EKS >= 1.27, 1.29).

Ubuntu 2204

Zeigt an, dass das auf Ubuntu 22.04 LTS (Jammy) basierende EKS AMI-Image verwendet werden sollte (verfügbar für EKS >= 1.29).

UbuntuPro2204

Zeigt an, dass das auf Ubuntu Pro 22.04 LTS (Jammy) basierende EKS AMI-Image verwendet werden sollte (verfügbar für EKS >= 1.29).

Ubuntu 2404

Zeigt an, dass das auf Ubuntu 24.04 LTS (Noble) basierende EKS AMI-Image verwendet werden sollte (verfügbar für EKS >= 1.31).

UbuntuPro2404

Zeigt an, dass das auf Ubuntu Pro 24.04 LTS (Noble) basierende EKS AMI-Image verwendet werden sollte (verfügbar für EKS >= 1.31).

Bottlerocket

Zeigt an, dass das auf Bottlerocket basierende EKS-AMI-Image verwendet werden sollte.

WindowsServer2019 FullContainer

Zeigt an, dass das EKS AMI-Image, das auf Windows Server 2019 Full Container basiert, verwendet werden sollte.

WindowsServer2019 CoreContainer

Zeigt an, dass das auf Windows Server 2019 Core Container basierende EKS-AMI-Image verwendet werden sollte.

WindowsServer2022 FullContainer

Zeigt an, dass das EKS AMI-Image, das auf Windows Server 2022 Full Container basiert, verwendet werden sollte.

WindowsServer2022 CoreContainer

Zeigt an, dass das auf Windows Server 2022 Core Container basierende EKS-AMI-Image verwendet werden sollte.

Beispiel für eine CLI-Flagge:

eksctl create cluster --node-ami-family=AmazonLinux2

Beispiel für eine Konfigurationsdatei:

nodeGroups: - name: ng1 instanceType: m5.large amiFamily: AmazonLinux2 managedNodeGroups: - name: m-ng-2 instanceType: m5.large amiFamily: Ubuntu2204

Die --node-ami-family Flagge kann auch mit verwendet werdeneksctl create nodegroup. eksctlerfordert, dass die AMI-Familie explizit über die Konfigurationsdatei oder über das --node-ami-family CLI-Flag festgelegt wird, wenn mit einem benutzerdefinierten AMI gearbeitet wird.

Anmerkung

Derzeit unterstützen von EKS verwaltete Knotengruppen nur die folgenden AMI-Familien, wenn sie mit benutzerdefinierten arbeiten AMIs:AmazonLinux2023,AmazonLinux2, und Ubuntu1804 Ubuntu2004 Ubuntu2204

Unterstützung für benutzerdefinierte Windows-AMIs

Nur selbstverwaltete Windows-Knotengruppen können ein benutzerdefiniertes AMI angeben. amiFamilysollte auf eine gültige Windows AMI-Familie eingestellt sein.

Die folgenden PowerShell Variablen werden für das Bootstrap-Skript verfügbar sein:

$EKSBootstrapScriptFile
$EKSClusterName
$APIServerEndpoint
$Base64ClusterCA
$ServiceCIDR
$KubeletExtraArgs
$KubeletExtraArgsMap: A hashtable containing arguments for the kubelet, e.g., @{ 'node-labels' = ''; 'register-with-taints' = ''; 'max-pods' = '10'}
$DNSClusterIP
$ContainerRuntime

Beispiel für eine Konfigurationsdatei:

nodeGroups: - name: custom-windows amiFamily: WindowsServer2022FullContainer ami: ami-01579b74557facaf7 overrideBootstrapCommand: | & $EKSBootstrapScriptFile -EKSClusterName "$EKSClusterName" -APIServerEndpoint "$APIServerEndpoint" -Base64ClusterCA "$Base64ClusterCA" -ContainerRuntime "containerd" -KubeletExtraArgs "$KubeletExtraArgs" 3>&1 4>&1 5>&1 6>&1

Benutzerdefinierte AMI-Unterstützung für Bottlerocket

Für Bottlerocket-Knoten wird das nicht unterstützt. overrideBootstrapCommand Um einen eigenen Bootstrap-Container zu definieren, sollte man das bottlerocket Feld stattdessen als Teil der Konfigurationsdatei verwenden. z. B.

nodeGroups: - name: bottlerocket-ng ami: ami-custom1234 amiFamily: Bottlerocket bottlerocket: enableAdminContainer: true settings: bootstrap-containers: bootstrap: source: <MY-CONTAINER-URI>