AWS Builder Center: Learn, Build and Connect with builders in the AWS community
AWS Builder Center is the official home for builders on AWS. Share and read what others are working on, follow people who inspire you, explore training and workshops, and find tools to support what you're building.
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
- 언어
- 한국어

관련 콘텐츠
질문됨 2년 전