自己管理Windowsノードの起動 - Amazon EKS

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

自己管理Windowsノードの起動

このトピックは、 Auto Scaling Windowsノードのグループ( Amazon EKS クラスタ。ノードがクラスターに参加したら、それらのノードに Kubernetes アプリケーションをデプロイ可能になります。

重要

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

クラスタのWindowsサポートを有効にする必要があります。Windowsノード グループを起動する前に、重要な考慮事項を確認することをお勧めします。詳細については、Windows サポートの有効化 を参照してください。

目的のノード作成方法に対応する以下のタブを選択します。

eksctl

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

この手順は、 eksctlおよび eksctl バージョンは以上です 0.26.0。 次のコマンドを使用して、バージョンを確認できます。

eksctl version

eksctl のインストールまたはアップグレードの詳細については、eksctl のインストールまたはアップグレード を参照してください。

注記

この手順は、eksctl で作成されたクラスターに対してのみ機能します。

  1. この手順は、 という名前の既存のクラスタがあることを前提としています。 my-clusterus-west-2 地域。別の既存のクラスタの場合は、値を変更します。まだ Amazon EKS クラスタと Amazon Linux 2 Windowsノード グループを追加するには、 eksctl の開始方法 ガイドをガイドします。このガイドでは、 Amazon EKS クラスタと Amazon Linux およびWindowsノード。

    次のコマンドを使用して、ノードグループを作成します。交換する example values 自分の価値観に基づいて行動します

    eksctl create nodegroup \ --region us-west-2 \ --cluster my-cluster \ --name ng-windows \ --node-type t2.large \ --nodes 3 \ --nodes-min 1 \ --nodes-max 4 \ --node-ami-family WindowsServer2019FullContainer
    注記
    • ノードがクラスタに参加できない場合は、を参照してください。 ノードがクラスタに参加できません トラブルシューティングガイドを参照してください。

    • 使用可能なオプションの詳細については、 eksctl 次のコマンドを入力します。

      eksctl command -help

    出力

    ノードが作成されると、いくつかの出力行が表示されます。出力の最後の行の1つは、次の例の行です。

    [✔] created 1 nodegroup(s) in cluster "my-cluster"
  2. (オプション) サンプル・アプリケーション クラスタとWindowsノードをテストします。

AWS マネジメントコンソール

を使用して自己管理のWindowsノードを起動するには AWS マネジメントコンソール

これらの手順には、以下の前提条件があります。

  1. クラスタのステータスが次のように表示されるまで待ちます。 ACTIVE。 クラスタがアクティブになる前にノードを起動すると、ノードはクラスタへの登録に失敗し、再起動する必要があります。

  2. https://console.aws.amazon.com/cloudformation で AWS CloudFormation コンソールを開きます。

  3. [スタックの作成] を選択します。

  4. [Specify template (テンプレートの指定)] で、 [Amazon S3 URL] を選択し、次の URL をコピーして、[Amazon S3 URL] に貼り付けて、[Next (次へ) ] を 2 回選択します。

    https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-08-12/amazon-eks-windows-nodegroup.yaml
  5. Quick create stack ページで、必要に応じて以下のパラメータを入力します。

    • スタックの名前 のスタック名を選択 AWS CloudFormation スタック。たとえば、 cluster-name-ノード.

    • クラスタ名: 作成時に使用した名前を入力します。 Amazon EKS クラスタ。

      重要

      この名前はで使用する名前と完全に一致する必要があります ステップ 1. 作成 Amazon EKS クラスタそうでない場合、ノードはクラスタに参加できません。

    • ClusterControlPlaneSecurityGroup クラスターコントロールPlaneSecurityGroup: _を選択 セキュリティグループ 値 AWS CloudFormation 生成する出力 Amazon EKS クラスター VPC を作成する.

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

    • ノード自動スケーリンググループ最小サイズ: ノード自動スケーリンググループがスケールインできるノードの最小数を入力します。

    • NodeAutoScalingGroupDesiredCapacity(ノード自動スケーリンググループ希望容量): スタックの作成時に拡張するノード数を入力します。

    • ノード自動スケーリンググループ最大サイズ: ノード自動スケーリンググループがスケールアウトできるノードの最大数を入力します。

    • ノードインスタンスタイプ: ノードのインスタンス タイプを選択します。

      注記

      最新バージョンの Amazon VPC CNI Plugin for Kubernetes でサポートされているインスタンスタイプをこちらに示します。サポートされている最新のインスタンスタイプを利用するには、CNI のバージョンを更新する必要があります。詳細については、Amazon VPC CNI Plugin for Kubernetes のアップグレード を参照してください。

    • ノードイメージIdSSMParam: に事前入力済み Amazon EC2 Systems Manager 現在の推奨パラメータ Amazon EKS 最適化されたWindows Core AMI ID。フルバージョンのWindowsを使用する場合は、Core 付き Full.

    • ノード画像ID: (オプション)( Amazon EKS 最適化したAMI)、地域のノードAMI IDを入力します。ここで値を指定すると、 NodeImageIdSSMParam フィールドの値はすべて上書きされます。

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

    • KeyName _の名前を入力 Amazon EC2 SSH を使用してノードに接続できる SSH キーペア。Amazon EC2 キーペアをまだ持っていない場合は、AWS マネジメントコンソール で作成できます。詳細については、以下を参照してください。 Amazon EC2 キーペアWindows インスタンスの Amazon EC2 ユーザーガイド.

      注記

      ここでキーペアを与えないと、AWS CloudFormation スタックの作成は失敗します。

    • ブートストラップ引数: ノード ブートストラップ スクリプトに渡す任意の引数を指定します (例: extra kubelet を使用した引数 -KubeletExtraArgs.

    • IMDSv1 を無効にする: 各ノードは、デフォルトでインスタンスメタデータサービスバージョン1(IMDSv1)とIMDSv2をサポートしていますが、IMDSv1を無効にすることができます。選択 ノードグループ内のノード、またはノードグループ内のノードでIMDSv1を使用するようにスケジュールされているポッドが不要である場合。IMDSの詳細については、以下を参照してください。 インスタンスメタデータサービスを構成する.

    • VpcId(VpcId): で作成したVPCのIDを選択します Amazon EKS クラスター VPC を作成する.

    • ノードセキュリティグループ: Linux ノード グループ用に作成されたセキュリティ グループを選択します。 Amazon EKS クラスター VPC を作成する. Linux ノードに複数のセキュリティグループが接続されている場合 (たとえば、Linux ノードグループが eksctl)、すべてここで指定します。

    • サブネット。で作成したサブネットを選択します。 Amazon EKS クラスター VPC を作成する. で説明されている手順を使用してVPCを作成した場合 Amazon EKS クラスター用の VPC の作成次に、起動するノードのVPC内のプライベート サブネットのみを指定します。

      重要

      いずれかのサブネットがパブリックサブネットである場合は、パブリック IP アドレスの自動割り当て設定を有効にする必要があります。この設定がパブリックサブネットに対して有効になっていない場合、そのパブリックサブネットにデプロイするノードにはパブリック IP アドレスが割り当てられず、クラスターやその他の AWS のサービスと通信できなくなります。Amazon EKS AWS CloudFormationVPC テンプレートのいずれかを使用して 03/26/2020 以前に、または eksctl を使用してサブネットがデプロイされた場合、パブリックサブネットではパブリック IP アドレスの自動割り当てが無効になります。サブネットのパブリック IP アドレス割り当てを有効にする方法については、「サブネットのパブリック IPv4 アドレス属性の変更」を参照してください。ノードがプライベートサブネットにデプロイされている場合、NAT ゲートウェイを介してクラスターや他の AWS のサービスと通信できます。

  6. スタックが IAM リソースを作成する可能性があることを確認し、[スタックの作成] を選択します。

  7. スタックの作成が完了したら、コンソールで選択し、[出力] を選択します。

  8. 作成されたノードグループの [NodeInstanceRole] を記録します。これは、 Amazon EKS Windowsノード。

ノードがクラスタに参加できるようにするには

  1. AWS IAM オーセンティケーター設定マップをダウンロード、編集、適用します。

    1. 次のコマンドを使用して設定マップをダウンロードします。

      curl -o aws-auth-cm-windows.yaml https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-08-12/aws-auth-cm-windows.yaml
    2. 任意のテキストエディタでファイルを開きます。交換する <ARN of instance role (not instance profile) of **Linux** node> および <ARN of instance role (not instance profile) of **Windows** node> スニペットと ノードインスタンスロール LinuxノードとWindowsノードに記録した値に値を入力し、ファイルを保存します。

      重要

      このファイルの他の行は変更しないでください。

      apiVersion: v1 kind: ConfigMap metadata: name: aws-auth namespace: kube-system data: mapRoles: | - rolearn: <ARN of instance role (not instance profile) of **Linux** node> username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes - rolearn: <ARN of instance role (not instance profile) of **Windows** node> username: system:node:{{EC2PrivateDNSName}} groups: - system:bootstrappers - system:nodes - eks:kube-proxy-windows
    3. 設定を適用します。このコマンドが完了するまで数分かかることがあります。

      kubectl apply -f aws-auth-cm-windows.yaml
      注記

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

      ノードがクラスターに参加できない場合は、トラブルシューティングガイドの「ノードがクラスタに参加できません」を参照してください。

  2. ノードのステータスを監視し、Ready ステータスになるまで待機します。

    kubectl get nodes --watch
  3. (オプション) サンプル・アプリケーション クラスタとWindowsノードをテストします。