기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EKS 리소스 조정 실행 블록
EKS 리소스 조정 실행 블록을 사용하면 다중 리전 복구 프로세스의 일부로 EKS 리소스를 조정할 수 있습니다. 실행 블록을 구성할 때 비활성화되는 리전의 용량을 기준으로 확장할 용량의 백분율을 정의합니다.
EKS 액세스 항목 권한 구성
EKS 리소스 조정을 위한 실행 블록을 추가하려면 먼저 리전 스위치에 EKS 클러스터의 Kubernetes 리소스에 대한 작업을 수행하는 데 필요한 권한을 제공해야 합니다. 리전 전환에 대한 액세스를 제공하려면 다음 리전 전환 액세스 정책을 사용하여 리전 전환이 계획 실행에 사용하는 IAM 역할에 대한 EKS 액세스 항목을 생성해야 합니다. arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy
리전 스위치 EKS 액세스 정책
다음 정보는 EKS 액세스 정책에 대한 세부 정보를 제공합니다.
이름: AmazonARCRegionSwitchScalingPolicy
정책 ARN: arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy
Kubernetes API 그룹 | Kubernetes 리소스 | Kubernetes 동사(권한) |
---|---|---|
* |
*/스케일 |
가져오기, 업데이트 |
* |
*/상태 |
get |
Auto Scaling |
horizontalpodautoscaler |
가져오기, 패치 |
리전 스위치에 대한 EKS 액세스 항목 생성
다음 예제에서는 리전 전환이 Kubernetes 리소스에 대해 특정 작업을 수행할 수 있도록 필요한 액세스 항목 및 액세스 정책 연결을 생성하는 방법을 설명합니다. 이 예제에서 권한은 IAM 역할에 대한 EKS 클러스터 my-cluster의 네임스페이스 my-namespace1
에 적용됩니다arn:aws:iam::555555555555:role/
. my-role
이러한 권한을 구성할 때 실행 블록의 두 EKS 클러스터 모두에 대해 이러한 단계를 수행해야 합니다.
- 전제 조건
시작하기 전에 클러스터의 인증 모드를
API_AND_CONFIG_MAP
또는 로 변경합니다API
. 권한 부여 모드를 변경하면 액세스 항목에 대한 API가 추가됩니다. 자세한 내용은 Amazon EKS 사용 설명서의 액세스 항목을 사용하도록 인증 모드 변경을 참조하세요.- 액세스 항목 생성
첫 번째 단계는 다음과 유사한 AWS CLI 명령을 사용하여 액세스 항목을 생성하는 것입니다.
aws eks create-access-entry --cluster-name
my-cluster
--principal-arn arn:aws:iam::555555555555:user/my-user
--type STANDARD자세한 내용은 Amazon EKS 사용 설명서의 액세스 항목 생성을 참조하세요.
- 액세스 항목 연결 생성
-
그런 다음 다음과 유사한 AWS CLI 명령을 사용하여 리전 스위치 액세스 정책에 대한 연결을 생성합니다.
aws eks associate-access-policy --cluster-name
my-cluster
--principal-arn arn:aws:iam::555555555555:role/my-role
\ --access-scope type=namespace,namespaces=my-namespace1
--policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy자세한 내용은 Amazon EKS 사용 설명서의 액세스 정책과 액세스 항목 연결을 참조하세요.
리전 전환으로 두 클러스터에 액세스할 수 있도록 다른 리전의 실행 블록에 있는 두 번째 EKS 클러스터로이 단계를 반복해야 합니다.
구성
EKS 리소스 조정 실행 블록을 구성하려면 먼저 올바른 권한이 있는지 확인합니다. 자세한 내용은 EKS 액세스 항목 권한 구성 단원을 참조하십시오.
리전 스위치는 현재 앱/v1, 배포 및 앱/v1과 같은 ReplicaSet 리소스를 지원합니다.
그런 다음 실행 블록 구성에 다음 값을 입력합니다.
단계 이름: 이름을 입력합니다.
단계 설명(선택 사항): 단계에 대한 설명을 입력합니다.
애플리케이션 이름: myApplication과 같은 EKS 애플리케이션의 이름을 입력합니다.
Kubernetes 리소스 종류: 애플리케이션의 리소스 종류, 예를 들어 배포를 입력합니다.
리전 리소스: 각 리전에 대해 EKS 클러스터 ARN, 리소스 네임스페이스 등을 포함하여 EKS 클러스터에 대한 정보를 입력합니다.
활성화된 리전의 용량과 일치하는 백분율: 활성화된 리전에서 일치시킬 소스 리전에서 실행 중인 포드의 원하는 백분율을 입력합니다.
용량 모니터링 접근 방식: 드롭다운 메뉴에서 EKS 리소스에 대한 모니터링 접근 방식을 선택합니다.
제한 시간: 제한 시간 값을 입력합니다.
그런 다음 단계 저장을 선택합니다.
작동 방법
계획 실행 중에 리전 스위치는 활성화하려는 리전의 대상 리소스에 대해 이전 24시간 동안 샘플링된 최대 복제본 수를 검색합니다. 그런 다음 다음 공식을 사용하여 대상 리소스에 대해 원하는 복제본 수를 계산합니다. ceil(percentToMatch * Source replica count)
대상 준비 복제본 수가 원하는 값보다 낮으면 리전 스위치는 대상 리소스 복제본 값을 원하는 용량으로 조정합니다. 필요한 경우 노드 오토 스케일러를 활용하여 노드 용량을 늘리면서 복제본이 준비될 때까지 기다립니다.
선택적 hpaName
필드가 비어 있지 않은 경우 리전 스위치는 다음 패치를 사용하여 실행 중 또는 실행 후에 자동 스케일 다운을 방지하기 위해 HorizontalPodAutoscaler를 패치합니다. {"spec":{"behavior":{"scaleDown":{"selectPolicy":"Disabled"}}}}
패치의 리소스에 대한 복제본 필드와 HorizontalPodAutoscaler 필드를 무시하도록 GitOps 도구와 같은 드리프트 수정 도구를 구성해야 합니다.
계획 평가의 일부로 평가되는 항목
리전 전환이 계획을 평가할 때 리전 전환은 구성된 EKS 실행 블록 및 권한에 대해 몇 가지 검사를 수행합니다. 리전 스위치는 계획의 IAM 역할에 EKS 클러스터를 설명하고 연결된 액세스 항목 정책을 나열할 수 있는 올바른 권한이 있는지 확인합니다. 또한 리전 스위치는 IAM 역할이 올바른 액세스 항목 정책에 연결되어 있는지 확인하여 리전 스위치에 Kubernetes 리소스에 대해 작업하는 데 필요한 권한이 있는지 확인합니다. 마지막으로 리전 스위치는 구성된 EKS 클러스터와 Kubernetes 리소스가 존재하는지 확인합니다.
또한 리전 스위치는 필요한 모니터링 데이터(Kubernetes 복제본 수)를 성공적으로 수집 및 저장했는지 확인하고 리전 스위치 계획을 실행하는 데 필요한 실행 중인 포드 수를 캡처합니다.