[reinvent 2024] 카펜터와 Amazon EKS Auto Mode를 이용한 쿠버네티스 워크로드 간소화
Summary
EKS에서 노드 프로비저닝 도구로써 카펜터는 매우 강력한 기능을 제공하는 도구입니다. 하지만 보안, 네트워킹, 스토리지, 클러스터 관리 등에 대한 관리의 어려움은 카펜터를 쓰더라도 여전히 존재합니다. 새롭게 런칭한 Amazon EKS Auto Mode는 기존에 컨트롤 플레인만 관리하던 EKS의 관리 영역을 넓혀 노드 프로비저닝과 필수 애드온들에 대한 관리까지 AWS에서 매니지드로 수행합니다. 이 세션에서는 Auto Mode의 근간이 되는 카펜터에 대한 상세한 설명과, 새롭게 출시된 기능이 어떻게 EKS 클러스터 관리를 간소화할 수 있는지 설명합니다.
리인벤트 2024 테크 블로그의 더 많은 글이 보고 싶다면?
Overview
들어가며
최근 쿠버네티스가 컨테이너 오케스트레이션 플랫폼의 대세로 자리잡으면서 많은 고객들이 EKS 사용을 고려하고 있습니다. 하지만 쿠버네티스 클러스터 관리와 워커 노드 관리, 애드온 관리 등에 대해 부담을 느껴 최종적으로 EKS를 선택하지 않는 경우도 많습니다. 이 세션에서는 새롭게 런칭한 EKS Auto Mode에 대해 설명합니다. EKS Auto Mode는 위에서 언급한 복잡한 관리 요소들을 자동화하여 AWS가 관리해주는 기능입니다. EKS 사용을 검토하고 있는 분들은 이 세션을 통해 EKS Auto Mode가 얼마나 클러스터 관리에 대한 부담을 줄여주는지 알아보시고, EKS 사용 검토에 참고하셨으면 좋겠습니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1026.png)
Amazon EKS와 Karpenter
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1027.png)
Amazon EKS는 AWS에서 제공하는 쿠버네티스 서비스입니다. 컨트롤 플레인은 AWS의 어카운트에서 매니지드 서비스로 제공되고, 고객들은 데이터 플레인의 노드를 프로비저닝 한 뒤, 각종 애드온과 어플리케이션을 배포합니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1028.png)
데이터 플레인의 노드를 프로비저닝하는 방식은 두 가지가 있습니다. 하나는 Cluster Autoscaler이고, 다른 하나는 Karpenter입니다.
Cluster Autoscaler는 ASG(Auto Scaling Group)을 기반으로 노드를 프로비저닝하는 도구로 여러 단점들을 가지고 있습니다. 대표적으로 하나의 노드 그룹에서는 한 타입의 인스턴스만 배포가 가능하다 던지, AMI를 설정하고 변경하는 과정이 번거롭던지 등을 꼽을 수 있습니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1029.png)
카펜터는 Cluster Autoscaler와 다르게 강력하고 효율적인 노드 프로비저닝 설정이 가능합니다. 또한 카펜터는 단순히 스케일링만 수행하는게 아니라, 비용 최적화, ML이나 AI를 위한 다양한 워크로드 지원, 클러스터 업그레이드/패치 작업 지원 등의 기능도 제공합니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1030.png)
카펜터가 제공하는 기능들은 아래와 같습니다.
- CPU, 메모리, 저장소 등 다양한 요구 사항을 기반으로 인스턴스를 자동으로 선택
- 스팟 인스턴스 사용이 가능하면 스팟 인스턴스로, 아니면 온디맨드 인스턴스 사용
- 노드 풀에서 프로비저닝 할 수 있는 자원 사용량 제한
- 노드가 생성될 AZ 지정 가능
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1031.png)
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1032.png)
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1033.png)
또한 노드 셀렉터, 노드 어피니티, 테인트와 톨러레이션 등을 이용해 Pod를 스케줄링 할 수도 있습니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1034.png)
노드 풀은 하나만 사용하는 것보다, 특정 팀 별로 나누거나, 워크로드의 요구사항에 맞추거나, 온디맨드인지 스팟인지에 따라 나누거나 하는 등의 전략을 가지고 나눠서 쓰는 것을 권장합니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1035.png)
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1036.png)
카펜터는 또한 파드의 위치를 재조정하여 노드의 개수를 최적화하는 작업도 수행합니다. 이 작업을 수행하면서 노드가 과도하게 많이 생성/제거되는 경우가 있었는데 v1에서 consolidateAfter 옵션을 추가함으로써 이를 완화할 수 있도록 했습니다. 또한 파드의 위치만 재조정하는 것이 아니라, 인스턴스의 사이즈가 너무 크면 더 작은 사이즈의 인스턴스로 교체하는 작업도 수행합니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1037.png)
EC2NodeClass를 이용하여 보안 그룹, AMI, userData도 설정할 수 있습니다.
Amazon EKS Auto Mode
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1038.png)
이렇게 강력한 카펜터도 몇 가지 단점을 가집니다. 카펜터 자체를 설치/설정하고 운영하는 것과, 잘 사용하기 위해 세밀한 설정을 하는 것들이 고객에게는 부담이 될 수 있다는 점입니다. AWS에서는 이를 해결하기 위해 EKS Auto Mode를 런칭했습니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1039.png)
EKS Auto Mode를 활성화하면, 컴퓨팅 리소스 관리, 네트워크 관련 설정, 스토리지 관련 설정 등도 AWS가 관리하는 영역으로 들어가게 됩니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1040.png)
EKS Auto Mode를 활성화하면 노드 프로비저닝 작업을 수행할 필요 없이, 어플리케이션을 배포하면 자동적으로 노드가 프로비저닝 됩니다. 이 때, 인스턴스는 이전과 동일하게 고객의 어카운트에 생성되며, Auto Mode 매니지드 AMI를 이용하게 됩니다. Auto Mode 매니지드 AMI에서는 쿠버네티스에 기본적으로 필요한 각종 애드온들이 데몬으로 동작합니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1041.png)
EKS Auto Mode를 사용하면 기본적으로 3개의 노드 풀이 생성됩니다. EKS Auto Mode에서 기본적으로 일반 목적과 시스템 목적 노드 풀이 설치되며, 이들은 각각의 용도에 맞춰 최적화되어 있습니다. 사용자들의 필요에 따라 커스텀 노드 풀을 생성하여 사용할수도 있습니다.
![](https://iting.co.kr/wp-content/uploads/2024/12/image-1042.png)
EKS Auto Mode를 사용하더라도 컨트롤 플레인에 대한 업데이트는 사용자가 수행해야 합니다. 따라서 사용자는 컨트롤 플레인이 불시에 업그레이드 되는 일이 일어날지 걱정하지 않아도 됩니다. 다만 워커 노드의 AMI가 보안 패치가 되는 등의 이유로 최신 버전이 생기면, 이는 자동으로 롤링 업데이트됩니다. Auto Mode가 관리하는 컨트롤러가 업데이트가 될 수도 있습니다. 이 때, 어플리케이션에는 영향이 없습니다.
결론
EKS를 처음 시작하려는 고객들에게 있어서 워커 노드를 관리하기 위해 노드 그룹, Cluster Autoscaler, 카펜터를 설치하고 설정하는 일은 쉬운 일이 아닙니다. 또한 PV를 사용하기 위한 CSI 드라이버, 로드밸런서를 사용하기 위한 LBC(Load Balancer Controller) 등을 설치하고 운영하는 일 또한 많이 부담스러워 하는 부분입니다. EKS Auto Mode를 이용하면 이러한 부담을 덜고 더욱 쉽게 EKS를 시작할 수 있고, 운영하면서도 자원을 효율적으로 관리할 수 있을 것으로 기대됩니다. 쿠버네티스의 관리에 부담을 느껴 EC2 기반의 운영을 고집하거나, 차선책으로 ECS를 사용하던 고객분들이 있었는데, EKS Auto Mode를 사용한다면 걱정 없이 EKS로의 마이그레이션을 고려해봐도 좋을 것으로 보입니다.