このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? このページの下部までスクロールし、[GitHub でこのページの編集] を選択します。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。
セルフマネージド Ubuntu Linux ノードを作成する
注記
マネージド型ノードグループでは、ユースケースにいくつかの利点がある場合があります。詳細については、「マネージドノードグループを使用してノードライフサイクルを簡素化する」を参照してください。
このトピックでは、Ubuntu on Amazon Elastic Kubernetes Service (EKS)
ノードがクラスターに参加したら、それらのノードにコンテナ化したアプリケーションをデプロイできるようになります。詳細については、「Ubuntu on AWSeksctl
ドキュメントの「Custom AMI support
重要
Amazon EKS ノードは標準の Amazon EC2 インスタンスであり、通常の Amazon EC2 インスタンス価格に基づいて請求されます。詳細については、「Amazon EC2 料金
」を参照してください。 -
AWS Outposts 上の Amazon EKS 拡張クラスターで Ubuntu ノードを起動できますが、AWS Outposts 上のローカルクラスターでは起動できません。詳細については、「AWS Outposts を使用して Amazon EKS をオンプレミスにデプロイする」を参照してください。
-
x86
または Arm プロセッサを使用して Amazon EC2 インスタンスにデプロイできます。ただし、Inferentia チップがあるインスタンスは、最初に Neuron SDKをインストールする必要がある場合があります。
eksctl
を使用して Ubuntu for EKS または Ubuntu Pro for EKS ノードを起動する
この手順には、eksctl
バージョン 0.191.0
以降が必要です。お使いのバージョンは、以下のコマンドを使用して確認できます。
eksctl version
eksctl
のインストールまたはアップグレードの手順については、eksctl
ドキュメントの「インストール
注記
この手順は、eksctl
で作成されたクラスターに対してのみ機能します。
-
次のコンテンツをデバイスにコピーします。
my-cluster
を自分のクラスター名に置き換えます。この名前には、英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字はアルファベット文字である必要があります。また、100 文字より長くすることはできません。ng-ubuntu
をノードグループの名前に置き換えます。ノードグループ名は 63 文字以下である必要があります。先頭は文字または数字でなければなりませんが、残りの文字にはハイフンおよびアンダースコアを含めることもできます。Arm インスタンスにデプロイするには、m5.large
を Arm インスタンスタイプに置き換えます。my-ec2-keypair-name
を、起動後に、SSH を使用してノードに接続するときに使用できる Amazon EC2 SSH キーペアの名前に置き換えます。Amazon EC2 キーペアをまだ持っていない場合は、AWS Management Console で作成できます。詳細については、「Amazon EC2 ユーザーガイド」の「Amazon EC2 キーペア」を参照してください。残りすべての
を独自の値に置き換えてください。置き換えが完了したら、変更したコマンドを実行してexample values
ubuntu.yaml
ファイルを作成します。重要
ノードグループを AWS Outposts、AWS Wavelength、または AWS Local Zones サブネットにデプロイする場合、クラスターの作成時に AWS Outposts、AWS Wavelength、または AWS Local Zone のサブネットを渡さないでください。次の例では、サブネットを指定する必要があります。詳細については、
eksctl
ドキュメントの「設定ファイルからノードグループを作成する」と「Config ファイルのスキーマ 」を参照してください。
をクラスターのある AWS リージョン に置き換えます。region-code
cat >ubuntu.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name:
my-cluster
region:region-code
version:'1.31'
iam: withOIDC: true nodeGroups: - name:ng-ubuntu
instanceType:m5.large
desiredCapacity:3
amiFamily:Ubuntu22.04
ami: auto-ssm iam: attachPolicyARNs: - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy ssh: allow: true publicKeyName:my-ec2-keypair-name
EOFUbuntu Pro ノードグループを作成するには、
amiFamily
値をUbuntuPro2204
に変更します。 -
次のコマンドでノードをデプロイします。
eksctl create nodegroup --config-file=ubuntu.yaml
出力例は次のとおりです。
ノードの作成中に、複数の行が出力されます。出力の最後の行は、次のサンプル行が表示されます。
[✔] created 1 nodegroup(s) in cluster "
my-cluster
" -
(オプション) サンプルアプリケーションをデプロイして Ubuntu ノードをテストします。
次の条件が true の場合、IMDS への Pod アクセスをブロックすることをお勧めします。
すべての Kubernetes サービスアカウントに IAM ロールを割り当てて、Pods が必要最小限のアクセス許可のみを持つように計画しています。
クラスター内の Pods が、現在の AWS リージョン の取得といったその他の理由で Amazon EC2 インスタンスメタデータサービス (IMDS) へのアクセスを必要としていません。
詳細については、「ワーカーノードに割り当てられたインスタンスプロファイルへのアクセスを制限する
」を参照してください。