Cookie の設定を選択する

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

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

セルフマネージド Bottlerocket ノードを作成する

フォーカスモード
セルフマネージド Bottlerocket ノードを作成する - アマゾン EKS

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

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

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

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

注記

マネージド型ノードグループでは、ユースケースにいくつかの利点がある場合があります。詳細については、「マネージドノードグループを使用してノードライフサイクルを簡素化する」を参照してください。

このトピックでは、Amazon EKS クラスターに登録している Bottlerocket ノードの Auto Scaling グループを起動する方法について説明します。Bottlerocket は、仮想マシンやベアメタルホスト上でコンテナの実行に使用できる、AWS による Linux ベースのオープンソースオペレーティングシステムです。ノードがクラスターに参加したら、それらのノードに Kubernetes アプリケーションをデプロイ可能になります。Bottlerocket の詳細については、「GitHub」の「Amazon EKS での Bottlerocket AMI の使用」および「eksctl ドキュメント」の「カスタム AMI のサポート」を参照してください。

インプレースアップグレードについて詳しくは、GitHub の「Bottlerocket Update Operator」を参照してください。

重要
  • Amazon EKS ノードは標準の Amazon EC2 インスタンスであり、通常の Amazon EC2 インスタンス価格に基づいて請求されます。詳細については、「Amazon EC2 料金」を参照してください。

  • AWS Outposts 上の Amazon EKS 拡張クラスターで Bottlerocket ノードを起動できますが、AWS Outposts 上のローカルクラスターでは起動できません。詳細については、「AWS Outposts を使用して Amazon EKS をオンプレミスにデプロイする」を参照してください。

  • x86 または Arm プロセッサを使用して Amazon EC2 インスタンスにデプロイできます。ただし、Inferentia チップがあるインスタンスにはデプロイできません。

  • Bottlerocket は AWS CloudFormation と互換性があります。ただし、Amazon EKS のBottlerocket ノードをデプロイするためにコピーできる公式の CloudFormation テンプレートはありません。

  • Bottlerocket のイメージには、SSH サーバーやシェルは付属していません。SSH で管理者コンテナを有効にし、ユーザーデータとともにブートストラップの設定ステップを渡すために、帯域外のアクセス方式を使用できます。詳細については、「GitHub」の「bottlerocket README.md」のセクションを参照してください。

この手順には、eksctl バージョン 0.199.0 以降が必要です。お使いのバージョンは、以下のコマンドを使用して確認できます。

eksctl version

eksctl のインストールまたはアップグレードの手順については、 eksctl ドキュメントの「インストール」を参照してください。注意: この手順は、eksctl で作成されたクラスターでのみ機能します。

+ 次のコンテンツをデバイスにコピーします。my-cluster の部分は、自分のクラスター名に置き換えます。この名前には、英数字 (大文字と小文字が区別されます) とハイフンのみを使用できます。先頭の文字は英数字である必要があります。また、100 文字より長くすることはできません。名前は、クラスターを作成する AWS リージョンおよび AWS アカウント内で一意である必要があります。ng-bottlerocket をノードグループの名前に置き換えます。ノードグループ名は 63 文字以下である必要があります。先頭は文字または数字でなければなりませんが、残りの文字にはハイフンおよびアンダースコアを含めることもできます。Arm インスタンスにデプロイするには、m5.large を Arm インスタンスタイプに置き換えます。my-ec2-keypair-name を、起動後に、SSH を使用してノードに接続するときに使用できる Amazon EC2 SSH キーペアの名前に置き換えます。Amazon EC2 キーペアをまだ持っていない場合は、AWS Management Console で作成できます。詳細については、「Amazon EC2 ユーザーガイド」の「Amazon EC2 キーペア」を参照してください。残りのサンプル値はすべて独自の値に置き換えます。置き換えが完了したら、変更したコマンドを実行して bottlerocket.yaml ファイルを作成します。

+ Arm Amazon EC2 インスタンスタイプを指定する場合は、デプロイする前に「Amazon EKS 最適化 Arm Amazon Linux AMI」の考慮事項を確認してください。カスタム AMI を使用したデプロイの手順については、「GitHub」の「Bottlerocket の構築」と、「eksctl ドキュメント」の「カスタム AMI のサポート」を参照してください。マネージド型ノードグループをデプロイするには、起動テンプレートを使用してカスタム AMI をデプロイします。詳細については、「起動テンプレートを使用してマネージドノードをカスタマイズする」を参照してください。

+ 重要: ノードグループを AWS Outposts、AWS Wavelength、または AWS Local Zone サブネットにデプロイする場合、クラスターの作成時に AWS Outposts、AWS Wavelength、または AWS Local Zone サブネットは渡さないでください。次の例では、サブネットを指定する必要があります。詳細については、eksctl ドキュメントの「設定ファイルからノードグループを作成する」と「Config ファイルのスキーマ」を参照してください。region-code を、クラスターのある AWS リージョンに置き換えます。

+

cat >bottlerocket.yaml <<EOF --- apiVersion: eksctl.io/v1alpha5 kind: ClusterConfig metadata: name: my-cluster region: region-code version: '1.30' iam: withOIDC: true nodeGroups: - name: ng-bottlerocket instanceType: m5.large desiredCapacity: 3 amiFamily: Bottlerocket 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 EOF
  1. 次のコマンドでノードをデプロイします。

    eksctl create nodegroup --config-file=bottlerocket.yaml

    出力例は次のとおりです。

    ノードの作成中に、複数の行が出力されます。出力の最後の行は、次のサンプル行が表示されます。

    [✔] created 1 nodegroup(s) in cluster "my-cluster"
  2. (オプション) Amazon EBS CSI プラグインを使用して、Bottlerocket ノード上に Kubernetes の永続ボリュームを作成します。デフォルトの Amazon EBS ドライバーは、Bottlerocket に含まれていないファイルシステムツールに依存します。ドライバーを使用してストレージクラスを作成する方法の詳細については、「Amazon EBS を利用して Kubernetes ボリュームを保存する」を参照してください。

  3. (オプション) kube-proxy では、デフォルトで、最初に Bottlerocket がブート時に設定するものとは異なるデフォルト値に nf_conntrack_max カーネルパラメータが設定されています。Bottlerocket’s default setting, edit the `kube-proxy の設定を維持するには、次のコマンドを使用します。

    kubectl edit -n kube-system daemonset kube-proxy

    次の例にある kube-proxy 引数に、--conntrack-max-per-core--conntrack-min を追加します。0 の設定は、変更がないことを意味します。

    containers: - command: - kube-proxy - --v=2 - --config=/var/lib/kube-proxy-config/config - --conntrack-max-per-core=0 - --conntrack-min=0
  4. (オプション) サンプルアプリケーションをデプロイして Bottlerocket ノードをテストします。

  5. 次の条件が true の場合、IMDS への Pod アクセスをブロックすることをお勧めします。

    • すべての Kubernetes サービスアカウントに IAM ロールを割り当てて、Pods が必要最小限のアクセス許可のみを持つように計画しています。

    • クラスター内の Pods が、現在の AWS リージョンの取得といったその他の理由で Amazon EC2 インスタンスメタデータサービス (IMDS) へのアクセスを必要としていません。

    詳細については、「ワーカーノードに割り当てられたインスタンスプロファイルへのアクセスを制限する」を参照してください。

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