eksctl を使用して Amazon EKS ワーカーノードの複数のノードグループを作成する方法を教えてください。

最終更新日: 2020 年 8 月 20 日

eksctl を使用して Amazon Elastic Kubernetes Service (Amazon EKS) ワーカーノードの複数のノードグループを作成したいと考えています。

簡単な説明

eksctl をデフォルトのパラメータとともに使用するか、複数のノードグループの設定ファイルを使用してカスタムパラメータとともに使用して、ワーカーノードグループを作成できます。

解決方法

デフォルトのパラメータを使用してワーカーノードグループを作成する

1.    eksctl をインストールします。

2.    eksctl が適切なアクセス許可で設定され、ターミナルにインストールされていることを確認するには、次のコマンドを実行します。

$ eksctl version

3.    デフォルトのパラメータを使用して追加のワーカーノードグループを作成するには、次のコマンドを実行します。

$ eksctl create nodegroup --cluster=yourClusterName --name=yourNodeGroupName --region yourRegionName

デフォルトのパラメータは次のとおりです。

Instance type = m5.large
AMI : lastest AWS EKS AMI
Nodes-desired capacity = 2
Nodes-min capacity =2 
Nodes-max capacity=2

注意: デフォルトでは、新しいノードグループはコントロールプレーンからインストールされた Kubernetes のバージョンを継承します (–version=auto) が、異なるバージョンの Kubernetes を指定することもできます (例: version=1.13)。最新バージョンの Kubernetes を使用するには、-version=latest コマンドを実行します。

4.    AWS CloudFormation コンソールを開き、作成したノードグループに関連付けられたスタックを選択します。次に、[Events] (イベント) タブを選択して、スタックがデプロイされていることを示す AWS CloudFormation イベントを探します。

5.    新しいワーカーノードグループがクラスターにアタッチされていることを確認し、ノードグループ設定が適用されていることを確認するには、次のコマンドを実行します。

$ Kubectl get nodes
$ eksctl get nodegroups --cluster yourClusterName

カスタムパラメータを使用してワーカーノードグループを作成する

1.    設定ファイルで新しいワーカーノードグループのパラメータを定義します。以下はその例です。

kind: ClusterConfig
apiVersion: eksctl.io/v1alpha5
metadata:
    name: yourClusterName
    region: yourRegionName
nodeGroups:
  - name: ng1-Workers
    availabilityZones: ["az-name"]
    desiredCapacity: 3
    instanceType: m5.large
    iam:
      instanceProfileARN: "arn:aws:iam::11111:instance-profile/eks-nodes-base-role" #Attaching IAM role
      instanceRoleARN: "arn:aws:iam::1111:role/eks-nodes-base-role"
    privateNetworking: true
    securityGroups:
      withShared: true
      withLocal: true
      attachIDs: ['sg-11111', 'sg-11112']
    ssh:
      publicKeyName: 'my-instance-key'
    kubeletExtraConfig:
        kubeReserved:
            cpu: "300m"
            memory: "300Mi"
            ephemeral-storage: "1Gi"
        kubeReservedCgroup: "/kube-reserved"
        systemReserved:
            cpu: "300m"
            memory: "300Mi"
            ephemeral-storage: "1Gi"
    tags:
      'environment': 'development'
  - name: ng-2-builders #example of a nodegroup that uses 50% spot instances and 50% on demand instances:
    minSize: 2
    maxSize: 5
    instancesDistribution:
      maxPrice: 0.017
      instanceTypes: ["t3.small", "t3.medium"] # At least two instance types should be specified
      onDemandBaseCapacity: 0
      onDemandPercentageAboveBaseCapacity: 50
      spotInstancePools: 2
    tags:
      'environment': 'production'

2.    設定ファイルを使用して追加のワーカーノードグループを作成するには、次のコマンドを実行します。

$ eksctl create nodegroup --config-file= yourConfigFileName

3.    AWS CloudFormation コンソールを開き、作成したノードグループに関連付けられたスタックを選択します。次に、[Events] (イベント) タブを選択して、スタックがデプロイされていることを示す AWS CloudFormation イベントを探します。

4.    新しいワーカーノードグループがクラスターにアタッチされていることを確認し、ノードグループ設定が適用されていることを確認するには、次のコマンドを実行します。

$ kubectl get nodes
$ eksctl get nodegroups --cluster yourClusterName

ワーカーノードがクラスターに参加していることを確認できます。eksctl では、2 つのノードグループが表示されます。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術的なサポートが必要ですか?