eksctl을 사용하여 Amazon EKS 노드에 대해 여러 노드 그룹을 생성하려면 어떻게 해야 합니까?

3분 분량
0

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을 사용하여 두 노드 그룹을 볼 수 있음을 알 수 있습니다.


AWS 공식
AWS 공식업데이트됨 2년 전
댓글 없음

관련 콘텐츠