기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
오토 스케일링
Auto Scaling 활성화
클러스터 오토스케일러
eksctl create cluster --asg-access
이 플래그는 k8s.io/cluster-autoscaler/enabled
및 k8s.io/cluster-autoscaler/<clusterName>
태그도 설정하므로 노드 그룹 검색이 작동해야 합니다.
클러스터가 실행되면 Cluster Autoscaler
또한 관리형 또는 비관리형 노드 그룹 정의(들)에 다음을 추가하여 Cluster Autoscaler가 노드 그룹을 조정하는 데 필요한 태그를 추가해야 합니다.
nodeGroups: - name: ng1-public iam: withAddonPolicies: autoScaler: true
0에서 확장
노드 그룹을 0에서 확장할 수 있고 노드 그룹에 레이블 및/또는 테인트가 정의되어 있는 경우 이를 Auto Scaling 그룹(ASGs.
이를 수행하는 한 가지 방법은 노드 그룹 정의의 tags
필드에 ASG 태그를 설정하는 것입니다. 예를 들어 다음과 같은 레이블과 테인트가 있는 노드 그룹을 지정합니다.
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: key: feaster value: "true" effect: NoSchedule
다음 ASG 태그를 추가해야 합니다.
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: feaster: "true:NoSchedule" tags: k8s.io/cluster-autoscaler/node-template/label/my-cool-label: pizza k8s.io/cluster-autoscaler/node-template/taint/feaster: "true:NoSchedule"
관리형 노드 그룹과 비관리형 노드 그룹 모두에서를 propagateASGTags
로 설정하여 이를 자동으로 수행할 수 true
있습니다. 그러면 레이블과 테인트가 Auto Scaling 그룹에 태그로 추가됩니다.
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: feaster: "true:NoSchedule" propagateASGTags: true
영역 인식 Auto Scaling
워크로드가 영역별 워크로드인 경우 각 영역에 대해 별도의 노드 그룹을 생성해야 합니다. 이는가 그룹의 모든 노드가 정확히 동일하다고 cluster-autoscaler
가정하기 때문입니다. 따라서 예를 들어 영역별 PVC가 필요한 포드(예: EBS 볼륨)에 의해 스케일 업 이벤트가 트리거되는 경우 새 노드가 잘못된 AZ에 예약되어 포드가 시작되지 않을 수 있습니다.
환경이 다음 기준을 충족하는 경우 각 AZ에 대해 별도의 노드 그룹이 필요하지 않습니다.
-
영역별 스토리지 요구 사항은 없습니다.
-
호스트 이외의 토폴로지가 있는 podAffinity는 필요하지 않습니다.
-
영역 레이블에 필요한 nodeAffinity가 없습니다.
-
영역 레이블에 nodeSelector가 없습니다.
위의 요구 사항(및 기타 요구 사항)을 모두 충족하는 경우 여러 AZs에 걸쳐 있는 단일 노드 그룹으로 안전해야 합니다. 그렇지 않으면 별도의 단일 AZ 노드 그룹을 생성해야 합니다.
이전:
nodeGroups: - name: ng1-public instanceType: m5.xlarge # availabilityZones: ["eu-west-2a", "eu-west-2b"]
이후:
nodeGroups: - name: ng1-public-2a instanceType: m5.xlarge availabilityZones: ["eu-west-2a"] - name: ng1-public-2b instanceType: m5.xlarge availabilityZones: ["eu-west-2b"]