View a markdown version of this page

Supporto AMI personalizzato - Guida per l'utente di Eksctl

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Supporto AMI personalizzato

Impostazione dell'ID AMI del nodo

Il --node-ami flag abilita una serie di casi d'uso avanzati, ad esempio l'utilizzo di un'AMI personalizzata o l'interrogazione di AWS in tempo reale per determinare quale AMI utilizzare. Il flag può essere utilizzato sia per immagini non GPU che per immagini GPU.

Il flag può utilizzare esplicitamente l'ID dell'immagine AMI. Può anche utilizzare le seguenti parole chiave «speciali»:

Parola chiave Description

auto

Indica che l'AMI da utilizzare per i nodi deve essere trovata interrogando AWS EC2. Si riferisce al risolutore automatico.

ssm automatico

Indica che l'AMI da utilizzare per i nodi deve essere trovata interrogando AWS SSM Parameter Store.

Nota

Al momento, i nodegroup gestiti da EKS supportano solo le seguenti famiglie AMI quando si lavora con AMI personalizzate:AmazonLinux2023,,, e AmazonLinux2 Bottlerocket Ubuntu2004 UbuntuPro2004 Ubuntu2204 Ubuntu2404

Quando si imposta --node-ami una stringa ID, presuppone eksctl che sia stata richiesta un'AMI personalizzata. Per i nodi AmazonLinux 2 e Ubuntu, gestiti da EKS e autogestiti, ciò significa che overrideBootstrapCommand è obbligatorio. Per il AmazonLinux 2023, puoi omettere overrideBootstrapCommand quando usi un'AMI personalizzata, perché eksctl genera automaticamente il minimo richiesto. NodeConfig Per ulteriori informazioni sul bootstrap dei nodi, vedere Node bootstrapping on. https://github.com/eksctl-io/eksctl/blob/main/pkg/nodebootstrap/README.md GitHub

Esempi di flag CLI:

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

Esempio di file di configurazione:

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>

La --node-ami bandiera può essere utilizzata anche coneksctl create nodegroup.

Impostazione del nodo AMI Family

--node-ami-familyPuò assumere le seguenti parole chiave:

Parola chiave Description

AmazonLinux2

Indica che deve essere utilizzata l'immagine EKS AMI basata su Amazon Linux 2 (impostazione predefinita).

AmazonLinux2023

Indica che deve essere utilizzata l'immagine EKS AMI basata su Amazon Linux 2023.

Ubuntu 2004

Indica che deve essere utilizzata l'immagine EKS AMI basata su Ubuntu 20.04 LTS (Focal) (supportata per EKS 1.29).

UbuntuPro2004

Indica che deve essere utilizzata l'immagine EKS AMI basata su Ubuntu Pro 20.04 LTS (Focal) (disponibile per EKS >= 1.27, 1.29).

Ubuntu 22.04

Indica che deve essere utilizzata l'immagine EKS AMI basata su Ubuntu 22.04 LTS (Jammy) (disponibile per EKS >= 1.29).

UbuntuPro2204

Indica che deve essere utilizzata l'immagine EKS AMI basata su Ubuntu Pro 22.04 LTS (Jammy) (disponibile per EKS >= 1.29).

Ubuntu 2404

Indica che deve essere utilizzata l'immagine EKS AMI basata su Ubuntu 24.04 LTS (Noble) (disponibile per EKS >= 1.31).

UbuntuPro2404

Indica che deve essere utilizzata l'immagine EKS AMI basata su Ubuntu Pro 24.04 LTS (Noble) (disponibile per EKS >= 1.31).

Bottlerocket

Indica che deve essere utilizzata l'immagine EKS AMI basata su Bottlerocket.

WindowsServer2019FullContainer

Indica che deve essere utilizzata l'immagine EKS AMI basata su Windows Server 2019 Full Container.

WindowsServer2019CoreContainer

Indica che deve essere utilizzata l'immagine EKS AMI basata su Windows Server 2019 Core Container.

WindowsServer2022FullContainer

Indica che deve essere utilizzata l'immagine EKS AMI basata su Windows Server 2022 Full Container.

WindowsServer2022CoreContainer

Indica che deve essere utilizzata l'immagine EKS AMI basata su Windows Server 2022 Core Container.

Esempio di flag CLI:

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

Esempio di file di configurazione:

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

La --node-ami-family bandiera può essere utilizzata anche coneksctl create nodegroup. eksctlrichiede che AMI Family sia impostata in modo esplicito tramite file di configurazione o tramite flag --node-ami-family CLI, ogni volta che si lavora con un'AMI personalizzata.

Nota

Al momento, i nodegroup gestiti da EKS supportano solo le seguenti famiglie AMI quando si lavora con AMI personalizzate:AmazonLinux2023,,, e AmazonLinux2 Bottlerocket Ubuntu2004 UbuntuPro2004 Ubuntu2204 Ubuntu2404

Supporto AMI personalizzato per Windows

Solo i nodegroup di Windows autogestiti possono specificare un'AMI personalizzata. amiFamilydeve essere impostato su una famiglia di AMI Windows valida.

Le seguenti PowerShell variabili saranno disponibili per lo script bootstrap:

$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

Esempio di file di configurazione:

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

Supporto AMI personalizzato Bottlerocket

Per i nodi Bottlerocket, non è supportato. overrideBootstrapCommand Invece, per designare il proprio contenitore bootstrap, è necessario utilizzare il bottlerocket campo come parte del file di configurazione. E.g.

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