반응형
https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/choosing-instance-type.html
인스턴스 타입 결정 시 고려사항
- 노드 그룹의 인스턴스 수 - 일반적으로 더 적고 큰 인스턴스를 구성하는 것을 권장합니다.
- DaemonSet(각 노드별로 생성되는 Pod) 가 많은 경우는 특히 해당 Pod에서 리소스를 사용 할 시 스케쥴링 될수 있는 Pod 수가 제한적이므로 이러한 Pod들이 사용할 리소스들을 고려하여 instance type을 더 크게 가져가야 합니다.
- 인스턴스가 많을수록 API 서버에 대한 호출이 더욱 많이 필요하므로 API 서버에 더 많은 부하가 걸립니다.
- 운영체제 : Linux, Windows, Bottlerocket 등
- 하드웨어 아키텍처 - x86, Arm 등
- 최대 Pod 수 - 각 Pod에는 고유한 IP 주소가 할당되므로 노드당 허용 가능한 권장 최대 Pod 수를 참조하여 인스턴스 타입을 결정합니다.( amazon-eks-ami/eni-max-pods.txt at master · awslabs/amazon-eks-ami )실행중인 VPC CNI add-on 버전 - 최신 인스턴스 유형을 사용할 시 VPC CNI가 지원하는 유형인지를 확인하여 추가 기능 버전을 업데이트 해야할 수 있으므로 이부분에 대한 고려가 필요합니다.
- Region: 리전별로 가용한 인스턴스 타입인지를 확인합니다.
- Security group for pods 사용 여부 : 특정 인스턴스 유형만 지원합니다.(https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/security-groups-for-pods.html#supported-instance-types)
노드그룹 고려사항
- 노드그룹의 각 노드에는 Pod 를 스케쥴링 하기 위한 Labels, Taints, Resources 등의 속성이 있습니다. Pod 배치 전략에 따라 노드와 Pod의 Label, Taints, Affinity, AntiAffniity 등의 설정을 해줘야합니다. 노드 그룹이 많은 경우 복잡도가 늘어나고 API Call도 증가하므로 특별히 설정히 필요한 워크로드를 위해서 사용하는 것을 권장합니다.
- MixedInstancePolicies의 경우 인스턴스 유형은 CPU, Memory, GPU 등의 셋이 동일 해야합니다.
- 노드가 적은 노드그룹보다는 노드가 많은 노드 그룹이 선호되며 이것은 확장성에 가장 큰 영향을 미칩니다.
- Reducing the number of Node Groups
- 노드 그룹 수를 최소화하는 것은 클러스터 오토스케일러가 대규모 클러스터에서 계속 해서 잘 수행될 수 있는 방법입니다.
- Pod isolation is done using Namespaces rather than Node Groups.
- This may not be possible in low-trust multi-tenant clusters.
- Pod ResourceRequests and ResourceLimits are properly set to avoid resource contention.
- Larger instance types will result in more optimal bin packing and reduced system pod overhead.
- NodeTaints or NodeSelectors are used to schedule pods as the exception, not as the rule.
- Regional resources are defined as a single EC2 Auto Scaling Group with multiple Availability Zones.
Managing Respurces for Containers
How To Configure Java Heap Size Inside a Docker Container | Baeldung
Resource Management for Pods and Containers
https://runebook.dev/ko/docs/spring_boot/production-ready-features
Sizing Kubernetes pods for JVM apps without fearing the OOM Killer
https://spring.io/blog/2020/03/25/liveness-and-readiness-probes-with-spring-boot
반응형
'고기 대신 SW 한점 > Public Cloud' 카테고리의 다른 글
[AWS] External Secrets (0) | 2023.02.16 |
---|---|
Autoscaling+HPA - Kubernets Probes with Sprint Boot App (0) | 2023.02.02 |
AWS PostgreSQL, Fast Failover 방법 (0) | 2023.01.26 |
Istio - Observability (0) | 2023.01.17 |
[Public Cloud] Pod test (0) | 2023.01.10 |