View a markdown version of this page

Unterstützung für benutzerdefinierte AMI - 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.

Unterstützung für benutzerdefinierte AMI

Einstellung der Knoten-AMI-ID

Das --node-ami Flag ermöglicht eine Reihe fortgeschrittener Anwendungsfälle, z. B. die Verwendung eines benutzerdefinierten AMI oder das Abfragen von AWS in Echtzeit, um zu ermitteln, 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 verwenden:

Stichwort Description

auto

Gibt an, dass das AMI, das für die Knoten verwendet werden soll, durch eine Abfrage von AWS EC2 gefunden werden sollte. Dies bezieht sich auf den Auto-Resolver.

auto-ssm

Gibt an, dass das AMI, das für die Knoten verwendet werden soll, durch eine Abfrage des AWS SSM Parameter Store gefunden werden sollte.

Anmerkung

Derzeit unterstützen EKS-verwaltete Knotengruppen nur die folgenden AMI-Familien, wenn mit benutzerdefinierten AMIs gearbeitet wird:AmazonLinux2023,AmazonLinux2, und Bottlerocket Ubuntu2004 UbuntuPro2004 Ubuntu2204 Ubuntu2404

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 selbstverwaltet werden, bedeutet dies, dass dies erforderlich overrideBootstrapCommand ist. Für AmazonLinux 2023 können Sie dies overrideBootstrapCommand bei der Verwendung eines benutzerdefinierten AMI weglassen, da eksctl automatisch das erforderliche Minimum generiert. NodeConfig Weitere Informationen zum Node-Bootstrapping finden Sie unter Node-Bootstrapping on. https://github.com/eksctl-io/eksctl/blob/main/pkg/nodebootstrap/README.md GitHub

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 des Knotens AMI-Familie

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

Stichwort Description

AmazonLinux2

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

AmazonLinux2023

Gibt 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

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

UbuntuPro2204

Gibt 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

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

UbuntuPro2404

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

Flaschenrakete

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

WindowsServer2019FullContainer

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

WindowsServer2019CoreContainer

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

WindowsServer2022FullContainer

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

WindowsServer2022CoreContainer

Gibt an, dass das EKS-AMI-Image verwendet werden sollte, das auf dem Windows Server 2022 Core Container basiert.

Beispiel für ein CLI-Flag:

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 per Konfigurationsdatei oder per --node-ami-family CLI-Flag gesetzt wird, wenn mit einem benutzerdefinierten AMI gearbeitet wird.

Anmerkung

Derzeit unterstützen EKS-verwaltete Knotengruppen nur die folgenden AMI-Familien, wenn mit benutzerdefinierten AMIs gearbeitet wird: AmazonLinux2023AmazonLinux2, BottlerocketUbuntu2004, und UbuntuPro2004 Ubuntu2204 Ubuntu2404

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 festgelegt werden.

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

Unterstützung für benutzerdefinierte AMI von Bottlerocket

Für Bottlerocket-Knoten wird das nicht unterstützt. overrideBootstrapCommand Stattdessen sollte das bottlerocket Feld als Teil der Konfigurationsdatei verwendet werden, um einen eigenen Bootstrap-Container zu benennen. E.g.

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