Ongoing service disruptions
For the most recent update on ongoing service disruptions affecting the AWS Middle East (UAE) Region (ME-CENTRAL-1), refer to the AWS Health Dashboard. For information on AWS Service migration, see How do I migrate my services to another region?
eksctl を使用して Amazon EKS ノードのノードグループを複数作成する方法を教えてください。
eksctl を使用して Amazon Elastic Kubernetes Service (Amazon EKS) ノードのノードグループを複数作成したいと考えています。
解決策
ノードグループは eksctl とデフォルトパラメータで作成します。または、カスタムパラメータと複数ノードグループの設定ファイルで作成します。
注: eksctl の最新バージョンをインストールするには、「Eksctl のインストールオプション」を参照してください。
eksctl がローカルマシンに設定され、インストールされていることを確認するには、任意のターミナルまたはコマンドプロンプトを開き、次のコマンドを実行します。
eksctl version
続いて、使用するパラメータのタイプに基づき、次の解決方法のいずれかを選択します。
ノードグループをデフォルトパラメータで作成する
-
追加のノードグループをデフォルトパラメータで作成するには、次のコマンドを実行します。
eksctl create nodegroup --cluster=CLUSTER_NAME --name=NODEGROUP_NAME --region REGION_NAME注: CLUSTER_NAME は実際のクラスター名に、NODEGROUP_NAME はノードグループ名に、REGION_NAME は AWS リージョンに置き換えてください。
デフォルトパラメータは次のようになります。
Instance type = m5.largeAMI : latest AWS EKS AMI Nodes-desired capacity = 2 Nodes-min capacity =2 Nodes-max capacity=2注: デフォルトでは、コントロールプレーンの Kubernetes のバージョンが新しいノードグループで継承されます。Kubernetes の別のバージョン (version=1.27 など) を指定することもできます。Kubernetes の最新バージョンを使用するには、–version=latest コマンドを実行てください。
-
新しいノードグループがクラスターにアタッチされていることを確認し、ノードがクラスターに参加したことを確認するため、次のコマンドを実行します。
kubectl get nodes eksctl get nodegroups --cluster CLUSTER_NAME --region REGION_NAME注: CLUSTER_NAME は実際のクラスター名に、REGION_NAME は AWS リージョン名に置き換えてください。
-
出力結果で、ノードグループのステータスが ACTIVE であること、ノードのステータスが READY であることを確認します。
ノードグループのステータスの例:eksctl get nodegroups --cluster yourClusterName --region yourRegionName CLUSTER NODEGROUP STATUS CREATED MIN SIZE MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID ASG NAME TYPE clusterName example-workers ACTIVE 2023-10-28T14:30:00Z 2 2 2 m5.large AL2_x86_64 eks-example-workers-11223344 managedノードステータスの例:
kubectl get nodes NAME STATUS ROLES AGE VERSION ip-192-168-100-101.us-west-2.compute.internal Ready <none> 4h v1.27.1-eks-1 ip-192-168-100-102.us-west-2.compute.internal Ready <none> 4h v1.27.1-eks-1
ノードグループをカスタムパラメータで作成する
-
新しいノードグループのパラメータを設定ファイルで定義します。例:
kind: ClusterConfig apiVersion: eksctl.io/v1alpha5 metadata: name: CLUSTER_NAME region: REGION_NAME nodeGroups: - name: NODEGROUP_NAME availabilityZones: ["AVAILABILITY_ZONE"] desiredCapacity: 3 instanceType: m5.large iam: instanceProfileARN: "arn:aws:iam::444455556666:instance-profile/eks-nodes-base-role" #Attaching IAM role instanceRoleARN: "arn:aws:iam::444455556666:role/eks-nodes-base-role" privateNetworking: true securityGroups: withShared: true withLocal: true attachIDs: ['SECURITY_GROUP_ID'] ssh: publicKeyName: 'KEY-PAIR-NAME' 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'注: CLUSTER_NAME は実際のクラスター名に、REGION_NAME は AWS リージョンに、NODEGROUP_NAME はノードグループ名に置き換えてください。SECURITY_GROUP_ID はセキュリティグループ ID に、KEY_PAIR_NAME はキーペア名に、AVAILABILITY_ZONE はアベイラビリティーゾーンに置き換えてください。
サポートされているパラメータとノードグループタイプの詳細については、「ノードグループ」を参照してください。
-
追加のノードグループを設定ファイルで作成するため、次のコマンドを実行します。
eksctl create nodegroup --config-file=CONFIG_FILE**注:**CONFIG\ _FILE をご使用のコンフィギュレーションファイル名に置き換えてください。
-
(オプション) 手順2のコマンドで、AWS CloudFormation スタックをデプロイして EKS ノードグループのリソースを作成します。スタックの状態を確認するには、CloudFormation コンソールにアクセスして、AWS リージョンがクラスターのリージョンと同じであることを確認します。
スタックが CREATE_COMPLETE 状態になれば、eksctl コマンドは正常終了です。 -
新しいノードグループがクラスターにアタッチされていることを確認し、ノードがクラスターに参加したことを確認するため、次のコマンドを実行します。
kubectl get nodes eksctl get nodegroups --cluster CLUSTER_NAME --region REGION_NAME注: CLUSTER_NAME は実際のクラスター名に、REGION_NAME は AWS リージョン名に置き換えてください。
出力結果で、ノードグループのステータスが ACTIVE であること、ノードのステータスが READY であることを確認します。
ノードグループのステータスの例:
eksctl get nodegroups --cluster yourClusterName --region yourRegionName CLUSTER NODEGROUP STATUS CREATED MIN SIZE MAX SIZE DESIRED CAPACITY INSTANCE TYPE IMAGE ID ASG NAME TYPE clusterName example-workers ACTIVE 2023-10-28T14:30:00Z 2 2 3 m5.large AL2_x86_64 eks-example-workers-11223344 managedノードステータスの例:
kubectl get nodes NAME STATUS ROLES AGE VERSION ip-192-168-100-101.us-west-2.compute.internal Ready <none> 4h v1.27.1-eks-1 ip-192-168-100-102.us-west-2.compute.internal Ready <none> 4h v1.27.1-eks-1 ip-192-168-100-103.us-west-2.compute.internal Ready <none> 4h v1.27.1-eks-1
- トピック
- Containers
- 言語
- 日本語
