起動テンプレートのサポート - Amazon EKS

「翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。」

起動テンプレートのサポート

マネージド型ノードグループは常に Amazon EC2 Auto Scaling グループ起動テンプレートを使用してデプロイされます。マネージド型ノードグループの作成時に使用する独自の起動テンプレートを指定しない場合Amazon EKS、API はアカウントにデフォルト値を持つ起動テンプレートを作成します。独自の起動テンプレートとそのテンプレートからマネージド型ノードグループを作成すると、デフォルトの起動テンプレートで提供されているものよりもマネージド型ノードをデプロイするときに、より高いレベルの柔軟性とカスタマイズが提供されます。最高レベルのカスタマイズを行うには、独自の起動テンプレートとカスタム AMI を使用してマネージド型ノードをデプロイできます。

独自の起動テンプレートを使用してマネージド型ノードグループをデプロイした後、同じ起動テンプレートの別のバージョンで更新できます。ノードグループを起動テンプレートの別のバージョンに更新すると、グループ内のすべてのノードは、指定した起動テンプレートバージョンの新しい設定に合わせてリサイクルされます。カスタム起動テンプレートを使用しない既存のノードグループは、直接更新することはできません。代わりに、カスタム起動テンプレートを使用して新しいノードグループを作成する必要があります。

起動テンプレート設定の基本

Amazon EC2 Auto Scaling 起動テンプレートはAWS マネジメントコンソール、、、AWS CLIまたは AWS SDK を使用して作成できます。詳細については、 ユーザーガイドの Auto Scaling グループの起動テンプレートAmazon EC2の作成」を参照してください。起動テンプレートの一部の設定は、マネージド型ノード設定に使用される設定と似ています。起動テンプレートを使用してノードグループをデプロイまたは更新する場合は、ノードグループ設定または起動テンプレートで一部の設定を指定する必要がありますが、両方を指定することはできません。設定が不要な場所に存在すると、ノードグループの作成や更新などのオペレーションは失敗します。

次の表は、起動テンプレートで禁止されている設定と、マネージド型ノードグループ設定で必要とされる同様の設定 (ある場合) の一覧です。リストされた設定は、 コンソールに表示される設定です。AWS CLI および SDK では、名前は似ていますが、異なる場合があります。

起動テンプレート–の禁止 Amazon EKS ノードグループ設定
IAM [Advanced details (高度な詳細)] のインスタンスプロファイル [Configure Node Group] ページの [Node Group configuration] にある [Node IAM Role]
[ネットワークインターフェイス] のサブネット (ネットワークインターフェイスの追加) [Specify networking] ページの [Node Group network configuration] のサブネット
[Shutdown behavior (シャットダウン動作)] と [Stop - Hibernate behavior (停止 - 詳細の休止動作)]。デフォルトの [Don't include in launch template setting in launch template] を両方の設定で保持します。 同等物はありません。 は Amazon EKS グループではなくインスタンスのライフサイクルを制御Auto Scalingする必要があります。

次の表は、マネージド型ノードグループ設定で禁止される設定と、起動テンプレートで必要とされる同様の設定 (ある場合) の一覧です。リストされた設定は、 コンソールに表示される設定です。AWS CLI と SDK では名前が似ている場合があります。

Amazon EKS ノードグループ設定–の禁止 起動テンプレート

(起動テンプレートでカスタム AMI を指定した場合のみ) [Set compute and scaling configuration (コンピューティングおよびスケーリング設定の設定)] ページの [Node Group compute configuration (ノードグループコンピューティング設定)] の [–Console (コンソール)] に、[Specified in launch template (起動テンプレートで指定)] と指定された AMI ID が表示されます。

起動テンプレートで AMI タイプが指定されていない場合は、ノードグループ設定で AMI を選択できます。

[Launch template contents (テンプレートコンテンツの起動)] の AMI– カスタム AMI を使用している場合は、 を指定する必要があります。「」に記載されている要件を満たしていない AMI を指定するとカスタム AMI の使用、ノードグループのデプロイは失敗します。
[Set compute and scaling configuration (コンピューティングおよびスケーリング設定の設定)] ページの [Node Group compute configuration (ノードグループコンピューティング設定)] のディスクサイズ [Console (–コンソール)] に [Specified in launch template (起動 [ストレージ (ボリューム)] のサイズ (新しいボリュームの追加)。これは起動テンプレートで指定する必要があります。
[Specify Networking (ネットワークの指定)] ページの [Node Group configuration (ノードグループ設定)] の SSH キーペア– コンソールには、起動テンプレートで指定したキーが表示されるか、[Not specified in launch template (起動テンプレートで指定されていません)] と表示されます。 [Key pair (login) (キーペア (ログイン))] のキーペア名
起動テンプレートを使用する場合、リモートアクセスが許可されているソースセキュリティグループを指定することはできません。 [Network settings for the instance (インスタンスの [ネットワーク設定)] の下にあるセキュリティグループまたは [Network interfaces (Add network interface) (ネットワークインターフェイスの追加)] の下にあるセキュリティグループ。両方は使用できません。詳細については、「 」を参照してくださいカスタムセキュリティグループの使用
注記
  • 起動テンプレートを使用してノードグループをデプロイする場合、[Launch template contents (起動テンプレートのテンプレートコンテンツの起動)] で 0 または 1 つの [Instance type (インスタンスタイプ)] を指定する、 コンソールの [Set compute and scaling configuration (コンピューティングとスケーリングの設定の設定の設定の設定の設定の設定の設定)] ページで [0-20] のインスタンスタイプを指定するかAmazon EKS、API を使用する他のツールを使用できます。起動テンプレートでインスタンスタイプを指定し、その起動テンプレートを使用してノードグループをデプロイする場合、コンソールで、または Amazon EKS API を使用する他のツールを使用してインスタンスタイプを指定することはできません。起動テンプレート、コンソール、または Amazon EKS API を使用する他のツールを使用してインスタンスタイプを指定しない場合t3.medium、インスタンスタイプはデフォルトで使用されます。ノードグループで スポット容量タイプを使用している場合は、 コンソールを使用して複数のインスタンスタイプを指定することをお勧めします。詳細については、「 」を参照してくださいマネージド型ノードグループのキャパシティータイプ

  • ノードグループにデプロイするコンテナでインスタンスメタデータサービスバージョン 2 を使用している場合は、起動テンプレート必ず [Metadata response hop limit (メタデータレスポンスホップ制限2)] を に設定してください。詳細については、 ユーザーガイドの「インスタンスメタデータとユーザーデータAmazon EC2」を参照してください。カスタム起動テンプレートを使用せずにマネージド型ノードグループをデプロイすると、この値はデフォルトの起動テンプレートのノードグループに自動的に設定されます。

Amazon EC2 インスタンスのタグ付け

起動テンプレートの TagSpecification パラメータを使用して、ノードグループ内のAmazon EC2インスタンスに適用するタグを指定できます。CreateNodegroup または UpdateNodegroupVersion APIs を呼び出す IAM エンティティには、 ec2:RunInstances および に対するアクセス許可が必要でec2:CreateTags、タグを起動テンプレートに追加する必要があります。

カスタムセキュリティグループの使用

起動テンプレートを使用して、ノードグループのAmazon EC2インスタンスに適用するカスタムhttps://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-security-groups.htmlセキュリティグループを指定できます。これは、インスタンスレベルのセキュリティグループのパラメータまたはネットワークインターフェイス設定パラメータの一部として指定できます。ただし、インスタンスレベルとネットワークインターフェイスの両方のセキュリティグループを指定する起動テンプレートを作成することはできません。マネージド型ノードグループでカスタムセキュリティグループを使用することに適用される以下の条件を検討してください。

  • Amazon EKS は、1 つのネットワークインターフェイス仕様で起動テンプレートのみを許可します。

  • デフォルトでは、ノードとコントロールプレーン間の通信を容易にするために、 はAmazon EKSクラスターセキュリティグループをノードグループ内のインスタンスに適用します。前述のいずれかのオプションを使用して起動テンプレートでカスタムセキュリティグループを指定した場合、 Amazon EKS はクラスターセキュリティグループを追加しません。したがって、セキュリティグループのインバウンドルールとアウトバウンドルールで、クラスターのエンドポイントとの通信が有効になっていることを確認する必要があります。セキュリティグループのルールが正しくないと、ワーカーノードはクラスターに参加できません。適用する必要があるセキュリティグループのルールについては、「」Amazon EKS セキュリティグループの考慮事項を参照してください。

  • ノードグループ内のインスタンスへの SSH アクセスが必要な場合は、そのアクセスを許可するセキュリティグループを必ず含めてください。

Amazon EC2 ユーザーデータ

インスタンスのAmazon EC2起動時に を使用して、起動テンプレートにcloud-initユーザーデータを指定できます。詳細については、「cloud-init ドキュメント」を参照してください。ユーザーデータは、一般的な設定オペレーションを実行するために使用できます。これには、次のオペレーションが含まれます。

Amazon EC2 マネージド型ノードグループで使用される起動テンプレートのユーザーデータは、MIME マルチパートアーカイブ形式である必要があります。これは、ユーザーデータが、ノードがクラスターに参加するために必要なAmazon EKSユーザーデータとマージされるためです。を開始または変更するコマンドをユーザーデータに指定しないでください。これはkubelet、 によってマージされたユーザーデータの一部として実行されますAmazon EKS。ノードでのラベルの設定など、特定のkubeletパラメータは、マネージド型ノードグループ API を使用して直接設定できます。

注記

手動で開始したり、カスタム設定パラメータを渡したりするなど、高度なkubeletカスタマイズが必要な場合は、「」を参照してくださいカスタム AMI の使用。 Amazon EKS は、カスタム AMI ID が起動テンプレートで指定されている場合、ユーザーデータをマージしません。

複数のユーザーデータブロックと単一の MIME マルチパートファイルを組み合わせることができます。たとえば、Docker デーモンを設定するクラウドブートフックとカスタムパッケージをインストールするユーザーデータシェルスクリプトを組み合わせることができます。MIME マルチパートファイルには次のコンポーネントが含まれます。

  • コンテンツタイプとパート境界宣言 – Content-Type: multipart/mixed; boundary="==BOUNDARY=="

  • MIME バージョン宣言 – MIME-Version: 1.0

  • 次のコンポーネントを含む 1 つ以上のユーザーデータブロック:

    • ユーザーデータブロックの開始を示す開始境界 – --==BOUNDARY==

    • ブロックのコンテンツの種類の宣言: Content-Type: text/cloud-config; charset="us-ascii"。コンテンツタイプの詳細については、cloud-init のドキュメントを参照してください。

    • ユーザーデータの内容 (シェルコマンドまたはcloud-initディレクティブのリストなど)。

    • MIME マルチパートファイルの終わりを示す、終了境界: --==BOUNDARY==--

    以下は、MIME マルチパートファイルの例です。これを使用して、独自のファイルを作成できます。

    MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="==MYBOUNDARY==" --==MYBOUNDARY== Content-Type: text/x-shellscript; charset="us-ascii" #!/bin/bash echo "Running custom user data script" --==MYBOUNDARY==--\

カスタム AMI の使用

組織が特定のセキュリティ、コンプライアンス、または内部ポリシーの要件のためにカスタム AMI を実行する必要がある場合、起動テンプレートを使用して、このような AMIsをマネージド型ノードグループにデプロイできます。詳細については、の「Amazon マシンイメージ (AMI)」を参照してくださいLinux インスタンス用 Amazon EC2 ユーザーガイド。Amazon EKS AMI ビルド仕様には、 に基づいてカスタム Amazon EKS AMI を構築するためのリソースと設定スクリプトが含まれていますAmazon Linux 2。詳細についてはGitHub のAmazon EKS「AMI ビルド仕様」を参照してください。他のオペレーティングシステムでインストールされているカスタム AMIsを構築するにはGitHub の「カスタム AMIs Amazon EKS のサンプル」を参照してください。

注記

カスタム AMI を使用する場合、 Amazon EKS はユーザーデータをマージしません。むしろ、ノードがクラスターに参加するのに必要なブートストラップコマンドを提供するのはお客様の責任です。ノードがクラスターに参加できない場合、 Amazon EKS CreateNodegroup および UpdateNodegroupVersion アクションも失敗します。

マネージド型ノードグループでカスタム AMI を使用するには、起動テンプレートの imageId フィールドで AMI ID を指定します。ノードグループを新しいバージョンのカスタム AMI に更新するには、更新された AMI ID で新しいバージョンの起動テンプレートを作成し、新しい起動テンプレートのバージョンでノードグループを更新します。

マネージド型ノードグループでカスタム AMIsを使用する場合の制限

  • カスタム AMIs とAmazon EKS最適化された AMIs の使用を切り替えるには、新しいノードグループを作成する必要があります。

  • カスタム AMI を使用している場合、次のフィールドを API で設定することはできません。

    • amiType

    • releaseVersion

    • version

  • マネージド型ノードグループで Windows を使用できないため、カスタム AMI を Windows にすることはできません。