このページの改善にご協力ください
本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある 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
バージョン 0.199.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 キーペア」を参照してください。残りのサンプル値
はすべて独自の値に置き換えます。置き換えが完了したら、変更したコマンドを実行して ubuntu.yaml
ファイルを作成します。
+ 重要: ノードグループを AWS Outposts、AWS Wavelength、または AWS Local Zone サブネットにデプロイする場合、クラスターの作成時に AWS Outposts、AWS Wavelength、または AWS Local Zone サブネットは渡さないでください。次の例では、サブネットを指定する必要があります。詳細については、eksctl
ドキュメントの「設定ファイルからノードグループを作成するregion-code
を、クラスターのある AWS リージョンに置き換えます。
+
cat >ubuntu.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: '1.30' iam: withOIDC: true nodeGroups: - name: ng-ubuntu instanceType: m5.large desiredCapacity: 3 amiFamily: Ubuntu2204 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 EOF
+ Ubuntu 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) へのアクセスを必要としていません。
詳細については、「ワーカーノードに割り当てられたインスタンスプロファイルへのアクセスを制限する
」を参照してください。 -