スキップしてコンテンツを表示

EKSのAL2023(Amazon Linux 2023)を使用したノードでPod数の上限緩和を行う方法

0

EKSのノードに起動テンプレートでAL2023を使用した場合ノードで、Pod数の上限緩和を行う手順を教えてください。 起動テンプレートのUserDataセクションに以下のサンプルを参考にエンコードした文字列を指定して起動テンプレートを作成しました。 (サンプル値は正しい値に変更しました。)

MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY=="

--==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii"

#!/bin/bash set -ex /etc/eks/bootstrap.sh {クラスタ名} --b64-cluster-ca {証明書データ} --apiserver-endpoint {APIサーバーエンドポイント} --dns-cluster-ip {サービスCIDR.10} --kubelet-extra-args '--max-pods={最大Pod数の値}' --use-max-pods false

--==MYBOUNDARY==--

その後、作成した起動テンプレートとバージョンを指定してノードグループを作成しましたが、EC2は起動しましたが、ノードグループの作成はエラーとなってしまいました。 原因を切り分けるために、EC2にsshログインし以下のログを確認しました。 sh-5.2$ sudo cat /var/log/cloud-init-output.log Cloud-init v. 22.2.2 running 'init' at Mon, 14 Jul 2025 06:59:39 +0000. Up 8.24 seconds. : (省略) !!!!!!!!!! !!!!!!!!!! ERROR: bootstrap.sh has been removed from AL2023-based EKS AMIs. !!!!!!!!!! !!!!!!!!!! EKS nodes are now initialized by nodeadm. !!!!!!!!!! !!!!!!!!!! To migrate your user data, see: !!!!!!!!!! !!!!!!!!!! https://awslabs.github.io/amazon-eks-ami/nodeadm/ !!!!!!!!!!

2025-07-14 06:59:42,190 - cc_scripts_user.py[WARNING]: Failed to run module scripts-user (scripts in /var/lib/cloud/instance/scripts) 2025-07-14 06:59:42,191 - util.py[WARNING]: Running module scripts-user (<module 'cloudinit.config.cc_scripts_user' from '/usr/lib/python3.9/site-packages/cloudinit/config/cc_scripts_user.py'>) failed Cloud-init v. 22.2.2 finished at Mon, 14 Jul 2025 06:59:42 +0000. Datasource DataSourceEc2. Up 11.25 seconds sh-5

AL2023でUserDataの正しい指定方法をおしえてください。

質問済み 7ヶ月前202ビュー
1回答
0

Amazon Linux 2023 (AL2023) では、EKS ノードの初期化方法が変更され、以前の Amazon Linux 2 (AL2) で使用していた bootstrap.sh スクリプトが削除されました。代わりに AL2023 では nodeadm を使用してノードを初期化します。

AL2023 で Pod 数の上限を緩和するには、以下のような形式で UserData を指定する必要があります:

MIME-Version: 1.0
Content-Type: application/node.eks.aws

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
cluster:
name: {クラスタ名}
apiServerEndpoint: {APIサーバーエンドポイント}
certificateAuthority: {証明書データ}
cidr: {サービスCIDR}
kubelet:
config:
maxPods: 110

または、複数のコンテンツタイプを含める場合は、以下のようなマルチパート形式も使用できます:

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="BOUNDARY"

--BOUNDARY
Content-Type: application/node.eks.aws

---
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
cluster:
name: {クラスタ名}
apiServerEndpoint: {APIサーバーエンドポイント}
certificateAuthority: {証明書データ}
cidr: {サービスCIDR}
kubelet:
config:
maxPods: 110

--BOUNDARY
Content-Type: text/x-shellscript;

#!/bin/bash
set -o xtrace
# ここに追加のシェルスクリプトを記述できます

--BOUNDARY--

UserData を起動テンプレートに入力する際は、余分なスペースやインデントがないように注意してください。スペースの問題があると nodeadm の起動に失敗し、ノードがクラスターに参加できなくなります。

この設定により、AL2023 を使用した EKS ノードで Pod 数の上限を 110 などの希望する値に設定できます。
Sources
How to increase max pods number in Amazon Linux 2023 instances? | AWS re:Post
Use custom data with AL2023 in Amazon EKS | AWS re:Post

回答済み 7ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

関連するコンテンツ