Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

AWS アウトポスト で アマゾンリナックス ノードを作成する

フォーカスモード
AWS アウトポスト で アマゾンリナックス ノードを作成する - アマゾン EKS

このページの改善にご協力ください

本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。

このページの改善にご協力ください

本ユーザーガイドの改善にご協力いただけませんか? すべてのページの右側のペインにある GitHub リンクで、このページの編集を選択してください。皆さまにご協力いただくことで、あらゆる人々に使いやすいユーザーガイドになります。

このトピックはアマゾン EKS クラスターに登録されている アウトポスト 上の アマゾンリナックス ノードの 自動スケーリング グループを起動する方法を説明します。クラスターはAWS クラウド または アウトポスト に置くことができます。

  • 既存の アウトポスト。詳細については「AWS アウトポスト とは」を参照してください。

  • 既存の アマゾン EKS クラスター。AWS クラウド にクラスターをデプロイするには「アマゾン EKS クラスターを作成します。」を参照してください。アウトポスト にクラスターをデプロイするには「高可用性を実現するために AWS Outposts でローカル Amazon EKS クラスターを作成する」を参照してください。

  • AWS クラウド のクラスターにノードを作成しており、AWS アウトポスト、AWS 波長、または AWS ローカルゾーン が有効になっている AWS リージョンにサブネットがあるとします。この場合、クラスターを作成したときに、これらのサブネットが渡されていない必要があります。アウトポスト 上のクラスターにノードを作成する場合はクラスターの作成時に アウトポスト サブネットを渡しておく必要があります。

  • (AWS クラウド 上のクラスターに推奨) 必要な IAM ポリシーがアタッチされた独自の IAM ロールで設定された Amazon VPC CNI plugin for Kubernetes アドオン。詳細については「IRSA を使用するように アマゾン VPC CNI プラグインを設定する」を参照してください。ローカルクラスターはサービスアカウントの IAM ロールをサポートしていません。

eksctl または AWS Management Console (AWS クラウドFormation テンプレートを使用) で、セルフマネージド型の アマゾンリナックス ノードグループを作成できます。Terraform を使用することもできます。

このページで説明されている以下のツールを使用して、ローカルクラスターを作成できます:

eksctl

eksctl を使用して自己管理型Linuxノードを起動するには

  1. デバイスまたは AWS クラウドシェル にインストールされている eksctl コマンドラインツールのバージョン 0.199.0 以降をインストールします。eksctl をインストールまたはアップグレードするにはeksctl ドキュメントの「インストール」を参照してください。

  2. クラスターが AWS クラウド にあり、[アマゾンEKS_CNI_Policy] マネージド IAM ポリシーが アマゾン EKS ノードの IAM ロールへアタッチされている場合は代わりに Kubernetes aws-node サービスアカウントに関連付けた IAM ロールに割り当てることをお勧めします。詳細については「IRSA を使用するように アマゾン VPC CNI プラグインを設定する」を参照してください。クラスターが アウトポスト にある場合はポリシーをノードロールにアタッチする必要があります。

  3. 次のコマンドは既存のクラスターにノードグループを作成します。クラスターはeksctl を使用して作成されている必要があります。al-nodes を、ノードグループの名前に置き換えます。ノードグループ名は 63 文字以下である必要があります。先頭は文字または数字でなければなりませんが、残りの文字にはハイフンおよびアンダースコアを含めることもできます。マイクラスター の部分は自分のクラスター名に置き換えます。この名前には英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前はクラスターを作成する AWS リージョンおよび AWS アカウント内で一意である必要があります。クラスターが アウトポスト に存在する場合はid を アウトポスト サブネットの ID に置き換えます。AWS クラウド にクラスターが存在する場合、id をクラスターの作成時に指定しなかったサブネットの ID に置き換えます。インスタンス型 を アウトポスト でサポートされているインスタンスタイプに置き換えます。残りのサンプル値は独自の値に置き換えます。デフォルトではノードはコントロールプレーンと同じ Kubernetes バージョンで作成されます。

    インスタンス型 を アウトポスト で利用可能なインスタンスタイプに置き換えます。

    マイキー を アマゾン EC2 キーペアまたはパブリックキーの名前に置き換えます。このキーは起動後のノードに SSH 接続するために使用されます。アマゾン EC2 キーペアをまだ持っていない場合はAWS Management Console で作成できます。詳細については「アマゾン EC2 ユーザーガイド」の「アマゾン EC2 キーペア」を参照してください。

    次のコマンドを使用して、ノードグループを作成します。

    eksctl create nodegroup --cluster my-cluster --name al-nodes --node-type instance-type \ --nodes 3 --nodes-min 1 --nodes-max 4 --managed=false --node-volume-type gp2 --subnet-ids subnet-id

    クラスターを AWS クラウド 上にデプロイしている場合:

    利用できるすべてのオプションとデフォルトの詳細なリストについてはeksctl ドキュメントの「AWS アウトポスト サポート」を参照してください。

  4. (オプション) サンプルアプリケーション をデプロイして、クラスターと Linux ノードをテストします。

AWS Management Console

ステップ 1: AWS Management Console を使用してセルフマネージド型の Linux ノードを起動する`

  1. AWS クラウドFormation テンプレートの最新バージョンをダウンロードします。

    curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2022-12-23/amazon-eks-nodegroup.yaml
  2. AWS クラウドFormation コンソールを開きます。

  3. [スタックの作成] を選択し、[新しいリソースを使用 (標準)] を選択してください。

  4. [テンプレートの指定] で、[テンプレートファイルのアップロード] を選択し、[ファイルを選択] を選択してください。前のステップでダウンロードした amazon-eks-nodegroup.yaml ファイルを選択し、[次へ] を選択してください。

  5. [スタックの詳細の指定] ページで、必要に応じて次のパラメータを入力し、[次へ] を選択してください:

    • スタック名: AWS クラウドFormation スタックのスタック名を選択してください:例えば、al-nodes という名前にすることができます。この名前には英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前はクラスターを作成する AWS リージョンおよび AWS アカウント内で一意である必要があります。

    • [クラスター名]: クラスターの名前を入力してください:この名前が、クラスター名と一致しない場合、ノードはクラスターに参加できません。

    • [クラスター制御プレーンセキュリティグループ]: VPC の作成時に生成した AWS クラウドフォーメーション 出力の [セキュリティグループ] 値を選択してください:

      次のステップでは該当するグループを取得する 1 つのオペレーションを説明します。

      1. アマゾン EKS コンソールを開きます。

      2. クラスターの名前を選択してください。

      3. [ネットワーキング] タブを選択してください。

      4. [クラスター制御プレーンセキュリティグループ] ドロップダウンリストから選択する場合は[追加のセキュリティグループ] の値をリファレンスとして使用します。

    • [ノードグループ名]: ノードグループの名前を入力してください:この名前はノードに対して作成される自動スケーリングノードグループを識別するために後で使用できます。

    • [ノード自動スケーリンググループ最小サイズ]: ノードの 自動スケーリング グループがスケールインできる最小ノード数を入力してください:

    • ノード自動スケーリンググループ希望容量: スタック作成時にスケーリングする必要のあるノード数を入力してください:

    • [ノード自動拡大縮小グループ最大サイズ]: ノードの 自動スケーリング グループがスケールアウトできる最大ノード数を入力してください:

    • [ノードインスタンス型]: ノードのインスタンスタイプを選択してください:クラスターが AWS クラウド で動作している場合は詳細については「最適な Amazon EC2 ノードインスタンスタイプを選択する」を参照してください。クラスターが アウトポスト で実行されている場合、アウトポスト で使用できるインスタンスタイプのみを選択できます。

    • [ノードイメージIdSSMParam]: 最新の アマゾン EKS 最適化 AMI の アマゾン EC2 システムマネージャー のパラメータが、可変 Kubernetes バージョン用に事前設定されています:アマゾン EKS でサポートされている別の Kubernetes マイナーバージョンを使用するには1.XX を別のサポートされているバージョンに置き換えます。クラスターと同じ Kubernetes バージョンを指定することをお勧めします。

      アマゾン EKS 最適化高速 AMI を使用するにはアマゾンリナックス-2amazon-linux-2-gpu に置き換えます。アマゾン EKS 最適化 Arm AMI を使用するにはアマゾンリナックス-2amazon-linux-2-arm64 に置き換えます。

      注記

      アマゾン EKS ノード AMI は アマゾンリナックス をベースとしています。アマゾンリナックス のセキュリティまたはプライバシーに関するイベントを、アマゾンリナックス セキュリティセンターで追跡できます。そのためには目的のバージョンのタブを選択してください。該当する RSS フィードをサブスクライブすることもできます。セキュリティおよびプライバシーイベントには問題の概要、影響を受けるパッケージ、および問題を修正するためにインスタンスを更新する方法などがあります。

    • ノードイメージId: (オプション (アマゾン EKS 最適化 AMI の代わりに 独自のカスタム AMI を使用している場合はAWS リージョンのノード AMI ID を入力してください:ここで値を指定すると、[ノードイメージIdSSMParam] フィールドの値はすべて上書きされます。

    • [ノードボリュームサイズ]: ノードのルートボリュームのサイズを GiB 単位で指定します:

    • [ノードボリューム型]: ノードのルートボリュームタイプを指定します:

    • [キー名]: 起動後に、SSH を使用してノードに接続するときに使用できる アマゾン EC2 SSH キーペアの名前を入力してください:アマゾン EC2 キーペアをまだ持っていない場合はAWS Management Console で作成できます。詳細については「アマゾン EC2 ユーザーガイド」の「アマゾン EC2 キーペア」を参照してください。

      注記

      ここでキーペアを指定しないと、AWS クラウドFormation スタックの作成は失敗します。

    • [ブートストラップ引数]: ノードに渡すことができるオプションの引数がいくつかあります:詳細については「GitHub」の「ブートストラップスクリプトの使用状況」を参照してください。AWS アウトポスト の アマゾン EKS ローカルクラスター (Kubernetes コントロールプレーンインスタンスが AWS アウトポスト で稼働 と入出力のインターネット接続がないクラスター (プライベートクラスターとも呼ばれる にノードを追加する場合は次のブートストラップ引数を (1 行で 指定する必要があります。

      --b64-cluster-ca ${CLUSTER_CA} --apiserver-endpoint https://${APISERVER_ENDPOINT} --enable-local-outpost true --cluster-id ${CLUSTER_ID}
    • [無効IMDSv1]: 各ノードはデフォルトでインスタンスメタデータサービスバージョン 1 (IMDSv1 および IMDSv2 をサポートします:IMDSv1 は無効にできます。ノードグループ内の将来のノードおよび Pods が MDSv1 を使用しないようにするには[無効IMDsv1][正] に設定します。IDMS の詳細については「インスタンスメタデータサービスの設定」を参照してください。ノードでのそれへのアクセス制限について詳しくはワーカーノードに割り当てられたインスタンスプロファイルへのアクセスを制限するを参照してください。

    • [VpcId]: 作成した VPC の ID を入力します:VPC を選択する前に、「VPC の要件と考慮事項」を確認してください。

    • [サブネット]: クラスターが アウトポスト にある場合、VPC 内で少なくとも 1 つのプライベートサブネットを選択してください:サブネットを選択する前に、「サブネットの要件と考慮事項」を確認してください。クラスターの [ネットワーキング] タブから、各サブネットリンクを開き、プライベートのサブネットを確認できます。

  6. [スタックオプションの設定] ページで、希望する設定を選択し、[次へ] を選択してください。

  7. [AWS クラウドFormation が IAM リソースを作成する可能性を認識しています] の左にあるチェックボックスを選択して、[スタックの作成] を選択してください。

  8. スタックの作成が完了したら、コンソールで選択し、[出力] を選択してください。

  9. 作成されたノードグループの [ノードインスタンス役割] を記録します。これはアマゾン EKS ノードを設定する際、必要になります。

ステップ 2: ノードを有効にしてクラスターに参加する

  1. aws-auth ConfigMap がすでにあるかどうかを確認します。

    kubectl describe configmap -n kube-system aws-auth
  2. aws-auth ConfigMap が表示されている場合は必要に応じて更新してください。

    1. 編集する ConfigMap を開きます。

      kubectl edit -n kube-system configmap/aws-auth
    2. 必要に応じて新しい mapRoles エントリを追加します。rolearn 値を、前の手順で記録した [ノードインスタンス役割] 値に設定します。

      [...] data: mapRoles: | - rolearn: <ARN of instance role (not instance profile)> username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes [...]
    3. ファイルを保存し、テキストエディタを終了します。

  3. Error from server (NotFound): configmaps "aws-auth" not found」というエラーが表示されたら、ストック ConfigMap を適用してください。

    1. 設定マップをダウンロードします。

      curl -O https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2020-10-29/aws-auth-cm.yaml
    2. aws-auth-cm.yaml ファイルで、rolearn を前の手順で記録した [ノードインスタンス役割] 値に設定します。これを行うにはテキストエディタを使用するか、マイノードインスタンス役割 を置き換えて次のコマンドを実行してください:

      sed -i.bak -e 's|<ARN of instance role (not instance profile)>|my-node-instance-role|' aws-auth-cm.yaml
    3. 設定を適用します。このコマンドが完了するまで数分かかることがあります。

      kubectl apply -f aws-auth-cm.yaml
  4. ノードのステータスを監視し、Ready ステータスになるまで待機します。

    kubectl get nodes --watch

    Ctrl+C を入力して、シェルプロンプトに戻ります。

    注記

    認可またはリソースタイプのエラーが発生した場合はトラブルシューティングトピックの「許可されていないか、アクセスが拒否されました (kubectl)」を参照してください。

    ノードがクラスターに参加できない場合は「アマゾン EKS クラスターとノードに関する問題をトラブルシューティングする」の「ノードをクラスターに結合できません」および「AWS アウトポスト でローカル アマゾン EKS クラスターをトラブルシューティングする」の「ノードをクラスターに結合できない」を参照してください。

  5. アマゾン EBS CSI ドライバーをインストールします。詳細についてはGitHub の Installation を参照してください。[ドライバーのアクセス許可を設定] セクションでは[IAM インスタンスプロファイルの使用] オプションの指示に従うことを確認します。gp2 ストレージクラスを使用する必要があります。gp3 ストレージクラスはサポートされていません。

    クラスターの gp2 ストレージクラスを作成するには以下のステップを実行してください。

    1. 次のコマンドを実行して、gp2-storage-class.yaml ファイルを作成します。

      cat >gp2-storage-class.yaml <<EOF apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: annotations: storageclass.kubernetes.io/is-default-class: "true" name: ebs-sc provisioner: ebs.csi.aws.com volumeBindingMode: WaitForFirstConsumer parameters: type: gp2 encrypted: "true" allowVolumeExpansion: true EOF
    2. マニフェストをクラスターに適用します。

      kubectl apply -f gp2-storage-class.yaml
  6. (GPU ノードのみ GPU インスタンスタイプと アマゾン EKS 最適化アクセラレーション AMI を選択した場合はクラスター上の DaemonSet として Kubernetes 用の NVIDIA デバイスプラグインを適用する必要があります。次のコマンドを実行する前に、vX.X.X を必要となる NVIDIA/k8s-device-plugin バージョンに置き換えます。

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/vX.X.X/deployments/static/nvidia-device-plugin.yml

ステップ 3: その他のアクション

  1. (オプション) サンプルアプリケーション をデプロイして、クラスターと Linux ノードをテストします。

  2. クラスターが アウトポスト にデプロイされている場合はこのステップをスキップしてください。クラスターが AWS クラウド にデプロイされている場合、次の情報はオプションです。[アマゾンEKS_CNI_Policy] マネージド IAM ポリシーが アマゾン EKS ノードの IAM ロール にアタッチされている場合は代わりに Kubernetes aws-node サービスアカウントに関連付けた IAM ロールに割り当てることをお勧めします。詳細については「IRSA を使用するように アマゾン VPC CNI プラグインを設定する」を参照してください。

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.