カスタム AMI サポート - Eksctl ユーザーガイド

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

カスタム AMI サポート

ノード AMI ID の設定

--node-ami フラグを使用すると、カスタム AMI の使用や、使用する AMI のリアルタイムクエリなど、さまざまな高度なユースケースが可能になります。フラグは、非 GPU イメージと GPU イメージの両方に使用できます。

フラグは、明示的に使用するイメージの AMI イメージ ID を取得できます。また、次の「特別な」キーワードを使用することもできます。

キーワード 説明

自動

ノードに使用する AMI が AWS EC2 をクエリして検索されることを示します。これは自動リゾルバーに関連しています。

auto-ssm

ノードに使用する AMI が AWS SSM パラメータストアにクエリを実行して検索されることを示します。

注記

--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 (Focal) に基づく 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 nodegroupeksctl では、カスタム AMI を使用するたびに、設定ファイルまたは --node-ami-family CLI フラグを使用して AMI ファミリーを明示的に設定する必要があります。

注記

現時点では、カスタム AMI を使用する場合、EKS AmazonLinux2マネージド型ノードグループは 、AmazonLinux2023Ubuntu1804Ubuntu2004 の AMIs ファミリーのみをサポートします。 Ubuntu2204

Windows カスタム AMI のサポート

カスタム AMI を指定できるのはセルフマネージド型の Windows ノードグループのみです。 は有効な 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>