EC2 인스턴스 스토어로 구성된 AWS Outposts의 Amazon EKS 로컬 클러스터용 인스턴스 유형 및 배치 선택하기
EC2 인스턴스 스토어로 구성된 AWS Outposts의 Amazon EKS 로컬 클러스터용 인스턴스 유형 및 배치 선택하기
이 주제에서는 EC2 인스턴스 스토어로 구성된 AWS Outpost의 로컬 Amazon EKS 클러스터의 고가용성 요구 사항을 충족하기 위해 Kubernetes 제어 플레인 인스턴스 유형을 선택하고 배치를 구성하는 방법에 대한 지침을 제공해요.
참고: Outpost가 EC2 인스턴스 스토어 대신 Amazon EBS로 구성된 경우 이 주제에서 설명하는 아키텍처는 Outpost에서 사용할 수 없어요. EBS로 구성된 Outposts는 기존 로컬 클러스터 구현을 계속 사용합니다. 자세한 내용은 용량 고려 사항에 따라 AWS Outposts의 Amazon EKS 클러스터용 인스턴스 유형 및 배치 그룹 선택을 참고하세요.
업데이트된 로컬 클러스터 아키텍처를 사용해 EBS 지원 Outpost에 로컬 클러스터를 만드는 데 관심이 있다면 AWS 계정 팀에 문의하세요.
출처: 문서
본문
제어 플레인 아키텍처
로컬 클러스터 Kubernetes 제어 플레인은 Outpost의 6개 EC2 인스턴스에서 실행됩니다.
- 제어 플레인 인스턴스 3개 — Kubernetes API 서버, 스케줄러, 컨트롤러 매니저를 포함해 Kubernetes 제어 플레인 구성 요소를 호스팅합니다.
etcd인스턴스 3개 — 외부 etcd 토폴로지에 Kubernetes 클러스터 상태를 저장합니다.
이 인스턴스들은 Outpost의 AWS 관리형 서비스 계정에서 실행됩니다. AWS 계정이나 Amazon EC2 콘솔에는 EC2 인스턴스로 표시되지 않아요. 제어 플레인이 소비하는 용량은 AWS Outposts 콘솔에서 볼 수 있습니다.
제어 플레인은 부하가 걸려도 수평 확장되지 않습니다. 다른 제어 플레인 인스턴스 크기가 필요하면 새 클러스터를 만들어야 합니다.
인스턴스 유형 선택
AWS Outposts의 Amazon EKS 로컬 클러스터용 업데이트된 아키텍처에서는 Kubernetes 제어 플레인이 전용 etcd 토폴로지를 사용합니다. API 서버와 etcd가 별도의 인스턴스에서 실행됩니다. 클러스터를 생성할 때 API 서버용 controlPlaneInstanceType과 etcd용 etcdInstanceType 두 가지 인스턴스 유형을 지정합니다.
선택한 인스턴스 유형은 Outpost에서 사용할 수 있어야 해요. 사용 가능한 인스턴스 제품군은 Outpost 세대와 SKU에 따라 달라지며, 동일한 인스턴스 크기에서도 인스턴스 제품군마다 vCPU와 메모리 구성이 다를 수 있습니다.
API 서버(controlPlaneInstanceType)
| 예상 워커 노드 | vCPU | 메모리 |
|---|---|---|
| 1–20 | 2 | 8 GiB |
| 21–100 | 4 | 16 GiB |
| 101–250 | 8 | 32 GiB |
| 251–500 | 16 | 64 GiB |
etcd(etcdInstanceType)
| 예상 워커 노드 | vCPU | 메모리 |
|---|---|---|
| 1–50 | 2 | 8 GiB |
| 51–250 | 4 | 16 GiB |
| 251–500 | 8 | 32 GiB |
중요: 로컬 클러스터의 수명 동안
controlPlaneInstanceType의 인스턴스 3개와etcdInstanceType의 인스턴스 3개에 대한 용량이 Outpost에 있는지 확인하세요.
이 표를 엄격한 요구 사항이 아닌 지침으로 사용하세요. controlPlaneInstanceType과 etcdInstanceType은 클러스터 생성 후 변경할 수 없으므로 예상 성장을 수용할 수 있는 인스턴스 제품군과 크기를 선택하는 것이 좋습니다. 둘 중 하나를 바꾸려면 새 클러스터를 만들어야 해요.
제어 플레인 및 etcd 배치
고가용성을 위해 제어 플레인과 etcd 인스턴스를 여러 하드웨어 장애 도메인에 분산하는 것이 좋습니다. outpostConfig의 controlPlanePlacement와 etcdPlacement에 spreadLevel 속성을 사용해 이 분산을 제어할 수 있어요. spreadLevel을 설정하면 Amazon EKS는 Spread 전략으로 EC2 배치 그룹을 생성합니다. 배치 그룹을 미리 생성할 필요가 없습니다.
참고:
controlPlanePlacement의groupName파라미터는 인스턴스 스토어 기반 EC2 인스턴스를 실행하는 Outposts에는 사용되지 않아요. 이전에 로컬 클러스터와 함께 배치 그룹을 사용했다면 이제spreadLevel을 대신 사용하세요.
분산 수준
spreadLevel 속성은 두 가지 값을 허용합니다.
host— 제어 플레인 인스턴스를 서로 다른 물리적 호스트에 분산합니다. 선택한 인스턴스 유형으로 구성된 호스트가 최소 3개 필요합니다.rack— 제어 플레인 인스턴스를 서로 다른 물리적 Outpost 랙에 분산합니다. 선택한 인스턴스 유형으로 구성된 호스트가 있는 랙이 최소 3개 필요해요.
용량 계획
로컬 클러스터의 Outpost 용량을 계획할 때 다음 사항을 고려하세요.
- 제어 플레인 및
etcd인스턴스: 클러스터당 6개 인스턴스(controlPlaneInstanceType3개와etcdInstanceType3개). - 워커 노드: 자체 관리형 노드 그룹용 EC2 인스턴스.
- 가상화 호스트: 제어 플레인은 가상화 호스트에서 실행되어야 해요. Outpost에 충분한 용량의 가상화 호스트가 있어야 합니다.
배치 문제 해결
분산 수준을 지정한 후 클러스터가 오랫동안 CREATING 또는 UPDATING 상태로 유지되면 분산 토폴로지를 충족하기에 선택한 인스턴스 유형으로 충분한 호스트 또는 랙이 Outpost에 있는지 확인하세요.
로컬 클러스터 문제 해결에 대한 자세한 내용은 EC2 인스턴스 스토어로 구성된 AWS Outposts 로컬 Amazon EKS 클러스터 문제 해결을 참고하세요.