본 글은 AWS 공식 문서를 참고하여 작성 되었습니다.
노드 그룹을 생성하는 명령어는 eksctl create nodegroup
입니다.
아래 명령을 실행해 노드 그룹 생성 명령과 관련된 옵션들을 확인할 수 있습니다.
eksctl create nodegroup --help
예를 들어, 아래와 같이 명령해서 노드를 생성해보겠습니다.
eksctl create nodegroup \
--cluster my-cluster \
--name test-nodes \
--node-type t3.medium \
--nodes 3 \
--nodes-min 1 \
--nodes-max 4 \
--ssh-access \
--ssh-public-key hyeob-test-keypair
아래와 같은 결과값들이 출력됩니다.
2022-05-06 18:36:49 [ℹ] eksctl version 0.95.0
2022-05-06 18:36:49 [ℹ] using region ap-northeast-2
2022-05-06 18:36:49 [ℹ] will use version 1.21 for new nodegroup(s) based on control plane version
2022-05-06 18:36:50 [ℹ] nodegroup "test-nodes" will use "" [AmazonLinux2/1.21]
2022-05-06 18:36:50 [ℹ] using EC2 key pair %!q(*string=<nil>)
2022-05-06 18:36:51 [ℹ] 1 nodegroup (test-nodes) was included (based on the include/exclude rules)
2022-05-06 18:36:51 [ℹ] will create a CloudFormation stack for each of 1 managed nodegroups in cluster "my-cluster"
2022-05-06 18:36:51 [ℹ]
2 sequential tasks: { fix cluster compatibility, 1 task: { 1 task: { create managed nodegroup "test-nodes" } }
}
2022-05-06 18:36:51 [ℹ] checking cluster stack for missing resources
2022-05-06 18:36:51 [ℹ] cluster stack has all required resources
2022-05-06 18:36:51 [ℹ] building managed nodegroup stack "eksctl-my-cluster-nodegroup-test-nodes"
2022-05-06 18:36:51 [ℹ] deploying stack "eksctl-my-cluster-nodegroup-test-nodes"
2022-05-06 18:36:52 [ℹ] waiting for CloudFormation stack "eksctl-my-cluster-nodegroup-test-nodes"
2022-05-06 18:37:22 [ℹ] waiting for CloudFormation stack "eksctl-my-cluster-nodegroup-test-nodes"
2022-05-06 18:38:03 [ℹ] waiting for CloudFormation stack "eksctl-my-cluster-nodegroup-test-nodes"
2022-05-06 18:39:20 [ℹ] waiting for CloudFormation stack "eksctl-my-cluster-nodegroup-test-nodes"
2022-05-06 18:40:21 [ℹ] waiting for CloudFormation stack "eksctl-my-cluster-nodegroup-test-nodes"
2022-05-06 18:40:56 [ℹ] waiting for CloudFormation stack "eksctl-my-cluster-nodegroup-test-nodes"
2022-05-06 18:40:56 [ℹ] no tasks
2022-05-06 18:40:56 [✔] created 0 nodegroup(s) in cluster "my-cluster"
2022-05-06 18:40:56 [ℹ] nodegroup "test-nodes" has 3 node(s)
2022-05-06 18:40:56 [ℹ] node "ip-192-168-27-134.ap-northeast-2.compute.internal" is ready
2022-05-06 18:40:56 [ℹ] node "ip-192-168-56-14.ap-northeast-2.compute.internal" is ready
2022-05-06 18:40:56 [ℹ] node "ip-192-168-80-29.ap-northeast-2.compute.internal" is ready
2022-05-06 18:40:56 [ℹ] waiting for at least 1 node(s) to become ready in "test-nodes"
2022-05-06 18:40:56 [ℹ] nodegroup "test-nodes" has 3 node(s)
2022-05-06 18:40:56 [ℹ] node "ip-192-168-27-134.ap-northeast-2.compute.internal" is ready
2022-05-06 18:40:56 [ℹ] node "ip-192-168-56-14.ap-northeast-2.compute.internal" is ready
2022-05-06 18:40:56 [ℹ] node "ip-192-168-80-29.ap-northeast-2.compute.internal" is ready
2022-05-06 18:40:56 [✔] created 1 managed nodegroup(s) in cluster "my-cluster"
2022-05-06 18:40:56 [ℹ] checking security group configuration for all nodegroups
2022-05-06 18:40:56 [ℹ] all nodegroups have up-to-date cloudformation templates
참고:
위 명령을 실행하기 전에키 페어
를 생성하고 키 페어 이름을--ssh-public-key
옵션에 넣습니다.
아래와 같이 노드가 3개 생성된 것을 확인할 수 있습니다.
클러스터를 생성한 IAM 엔티티(사용자 또는 역할)
는 kubectl을 사용하여 Kubernetes API 서버를 호출할 수 있는 유일한 IAM 엔티티
입니다. 다른 사용자가 클러스터에 액세스할 수 있도록 하려면 클러스터 액세스에 대한 권한을 부여해주어야 합니다.포드에 필요한 최소 권한만 부여
하고, 클러스터의 포드가 현재 AWS 리전 검색과 같은 다른 이유로 Amazon EC2 인스턴스 메타데이터 서비스(IMDS
)에 액세스할 필요가 없는 경우 IMDS
에 대한 포드의 액세스를 차단
합니다.Restrict access to the instance profile assigned to the worker node
부분을 참고하세요.관리형 노드를 생성할 수 없습니다
. 대신 자체 관리형 노드
를 생성할 수 있습니다.Amazon EC2 가격을 기준
으로 요금이 청구됩니다.