Obj. WarmPool 적용 이후 운영에서의 문제나 Needs가 될 요소가 있었는지를 파악하고 개선을 위한 Kubernetes Cluster Autoscaling 방식으로부터 해결방안을 모색한다.
Warm Pool의 문제점?
비교 대상
비교 항목 | CAS(Cluster AutoScaling) + Warmpool | Karpenter |
---|---|---|
특징 | ASG 사용 | kubernetes 상에서 노드 관리 |
장점 | AWS 콘솔에서 간단하게 적용 가능 | Group-less 노드 프로비저닝 가능 (노드 그룹별 설정도 가능) |
프로비저너 별로 상세 설정 가능(노드 그룹별 설정 가능) | ||
직접 EC2의 인스턴스를 생성하여 노드를 프로비저닝 해 노드 생성 속도가 빠름 | ||
node group의 인스턴스 유형과 상관 없이 해당 node group에 다른 인스턴스 유형을 추가 할 수 있다. | ||
단점 | Spot Instance 사용 불가 | 최신 기술이며 별도의 학습 필요 |
인스턴스 타입 추가 하려면 노드그룹 추가 생성 필요 | ||
스케일 다운 등의 설정을 노드그룹별로 설정 할 수 없음 | ||
ASG의 버그로 인해 웜풀 생성 과정이 매끄럽지 않을 수 있음 | ||
- You can't add a warm pool to an Auto Scaling group that has a mixed instances policy or a launch template or launch configuration that requests Spot Instances. | ||
웜풀에서 확보되지 않은 인스턴스의 스케일 아웃은 웜풀 미적용 기준 시간으로 봐야 한다. | ||
노드 생성 시간 | Warmpool 미적용 약 40~50초 소요 | 약 30~40초 소요 |
Warmpool 적용 시 약 30~40초 소요 | ||
비용 최적화 | 지정한 NodeGroup의 인스턴스 타입을 사용하여 Pod의 Resources와 무관함 | Pod의 Resources에 맞게 설정한 인스턴스 타입 내 가장 최적의 노드를 생성 |
장애 조치(Spot) | X | Spot이 안되면 즉시 On-demand 생성 |
Scale In-Out | 노드그룹별 스케일다운 시간 설정 불가능 | 노드그룹별 스케일 다운 시간 설정 가능(프로비저너 별) |
Spot 비율 조정 | X | O |
운영 관점 고려 사항 | EKS 버전 업그레이드 시 NodeGroup의 ASG에 연결된 Warmpool을 해제하여야 NodeGroup의 Kubernetes 버전 업그레이드 가능 | DevOps에서 관리 및 CAS에서 마이그레이션 과정 |
항상 최소 웜풀 크기를 유지하려 하여 적절한 관리 필요 |