사용자 지정 AMI 지원 - Eksctl 사용 설명서

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

사용자 지정 AMI 지원

노드 AMI ID 설정

--node-ami 플래그를 사용하면 사용자 지정 AMI를 사용하거나 AWS를 실시간으로 쿼리하여 사용할 AMI를 결정하는 등 다양한 고급 사용 사례를 사용할 수 있습니다. 플래그는 GPU가 아닌 이미지와 GPU 이미지 모두에 사용할 수 있습니다.

플래그는 명시적으로 사용할 이미지의 AMI 이미지 ID를 가져올 수 있습니다. 또한 다음과 같은 '특수' 키워드를 사용할 수 있습니다.

키워드 설명

auto

AWS EC2를 쿼리하여 노드에 사용할 AMI를 찾아야 함을 나타냅니다. 이는 자동 해석기와 관련이 있습니다.

auto-ssm

AWS SSM 파라미터 스토어를 쿼리하여 노드에 사용할 AMI를 찾아야 함을 나타냅니다.

참고

--node-ami를 ID 문자열로 설정할 때 eksctl는 사용자 지정 AMI가 요청되었다고 가정합니다. EKS 관리형 노드와 자체 관리형 노드인 AmazonLinux2 및 Ubuntu 노드의 경우 overrideBootstrapCommand가 필요합니다. AmazonLinux2023의 경우 노드 부트스트래핑에 대한 /etc/eks/bootstrap.sh 스크립트 사용을 중지하므로 nodeadm 초기화 프로세스(자세한 내용은 노드 부트스트래핑 문서 참조)overrideBootstrapCommand에 유리하게 지원되지 않습니다.

CLI 플래그 예제:

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

Config 파일 예제:

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>

--node-ami 플래그는 에서도 사용할 수 있습니다eksctl create nodegroup.

노드 AMI 패밀리 설정

는 다음 키워드를 사용할 --node-ami-family 수 있습니다.

키워드 설명

AmazonLinux2

Amazon Linux 2 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(기본값).

AmazonLinux2023

Amazon Linux 2023 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.

Ubuntu2004

Ubuntu 20.04 LTS(포컬) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS """ 1.29 지원).

UbuntuPro2004

Ubuntu Pro 20.04 LTS(Focal) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS >= 1.27, "" 1.29에 사용 가능).

Ubuntu2204

Ubuntu 22.04 LTS(Jammy) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS >= 1.29에 사용 가능).

UbuntuPro2204

Ubuntu Pro 22.04 LTS(Jammy) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS >= 1.29에 사용 가능).

Ubuntu2404

Ubuntu 24.04 LTS(Noble) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS >= 1.31에 사용 가능).

UbuntuPro2404

Ubuntu Pro 24.04 LTS(Noble) 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다(EKS >= 1.31에 사용 가능).

Bottlerocket

Bottlerocket 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.

WindowsServer2019FullContainer

Windows Server 2019 Full Container 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.

WindowsServer2019CoreContainer

Windows Server 2019 Core Container 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.

WindowsServer2022FullContainer

Windows Server 2022 Full Container 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.

WindowsServer2022CoreContainer

Windows Server 2022 Core Container 기반 EKS AMI 이미지를 사용해야 함을 나타냅니다.

CLI 플래그 예제:

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

Config 파일 예제:

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

--node-ami-family 플래그는 에서도 사용할 수 있습니다eksctl create nodegroup. eksctl에서는 사용자 지정 AMI로 작업할 때마다 구성 파일 또는 --node-ami-family CLI 플래그를 통해 AMI 패밀리를 명시적으로 설정해야 합니다.

참고

현재 EKS 관리형 노드 그룹은 사용자 지정 AMI로 작업할 때 , AmazonLinux2023, AmazonLinux2 Ubuntu1804 Ubuntu2004 및 AMIs 패밀리만 지원합니다. Ubuntu2204

Windows 사용자 지정 AMI 지원

자체 관리형 Windows 노드 그룹만 사용자 지정 AMI를 지정할 수 있습니다.는 유효한 Windows AMI 패밀리로 설정해야 amiFamily 합니다.

부트스트랩 스크립트에 사용할 수 있는 PowerShell 변수는 다음과 같습니다.

$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

Config 파일 예제:

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

Bottlerocket 사용자 지정 AMI 지원

Bottlerocket 노드의 경우 overrideBootstrapCommand는 지원되지 않습니다. 대신 자체 부트스트랩 컨테이너를 지정하려면 bottlerocket 필드를 구성 파일의 일부로 사용해야 합니다. 예:

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