brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Oct 02. 2024

AWS 카펜터로 쿠버네티스 최적화-2024-09

AWS 서밋

위대한 상상(요기요)

오토 스케일링 중 가장 많이 사용하는 카펜터에 대해 알아보자.

위대한 상상(요기요)에서 카펜터 사용하며 정리한 노하우를 알아보자.

카펜터는 이벤트 기반 서비스를 하는 곳에서는 필수로 사용하고 있다.

특히, 팬덤 (아이돌) 서비스 기업에서 사용 사례를 계속 발표하고 있다.

카펜터를 사용하면 비용 절감도 된다.



<1> 카펜터 동작 방식과 제공 기능

<2> 위대한 상상(요기요) 카펜터, 쿠버네티스 사용 사례




<1> 카펜터 동작 방식과 제공 기능


1



2

동작 방식?


클러스터 오토스케일러 동작 방식?

카펜터 동작 방식?



클러스터 오토스케일러 동작 방식?

파드가 보류( pending pod) 되면 , 오토스케일러 그룹에 의해 증설된다.

주기적으로 모니터링한다.



카펜터 동작 방식?

팬딩 파드에서 대해  워커 오퍼레이션을 통해 모니터링되어 즉각적으로 증설한다.

빠르다.

노드풀, EC2 노드 클래스를 사용  

또는 카펜터 버전에 따라 프로비 저 너, AWS노드 템플릿으로 불린다.




3

카펜터는 기본 데이터 플레인 구성 및 확장으로 사용한다.



4

카펜터는 확장 시 가장 적합한 인스턴스 유형을 선택한다.

노드풀에 스펙에 요구사항(리콰이먼트)으로 라벨등을 이용해 인스턴스 유형을 선택할 수 있다.

내가 원하는 인스턴스 유형을 선택할 수 있다.




5

스케줄링 제약 조건에 맞는 요구사항을 충족하는 것으로 구성된다.



6

노드 통합 기능을 통해 비용 최적화 한다. = 클러스터의 사용률 올라가고 비용 절감 된다. 




7

비용 통합 패턴 2가지?

기존의 워커노드를 통합하는 패턴 

후보가 되는 노드를 모두 삭제하고, 새 인스턴스에 통합하는 패턴





8

스폿에 대한 영향을 최소화 가능하다.

카페터는 노드 중단에 대한 핸들러가 내장되어 있다.

별도의 노드 중단 핸들러를 구성할 필요가 없다.





9

카펜터의 노드 생성 순서?

스케줄링

배치

빈 패킹

의사 결정



10

스케줄링?

보류 상태가 되면 , 카펜터가 워치 오퍼레이션으로 대응한다.


클러스터 오토 스케일러는 10초마다 점검.

카펜터는 확장 윈도 알고리즘 사용 : [1,10] 초






11

카펜터 드리프트 = 리소스 변경과 통합 = 비용 절감





<2> 위대한 상상(요기요) 카펜터, 쿠버네티스 사용 사례



1

레퍼런스 

위대한 상상 (요기요)





2

아키텍처?


멀티 어카운트

각각 VPC 설치

VPC  안에  EKS 클러스터 설치

EKS간은 트랜싯 게이트웨이로 통신하고 있다.


EKS 안에는 멀티 AZ , Spot , On-demand , 그레비톤, x86 다양하게 사용 중.

카펜터 도입으로 결정.




3

노드풀(Provisioner)  구성  조건?



1) 노드풀 요구사항 정리  = 인스턴스 타입을 정의.


인스턴스 CPU?


intance-generation 필수로 설정하라.?

6세대 7세대만 사용 중 , 4세 대등  다른 것과 같이 사용 시 성능이 50% 감소됨.



2) 쿠버네티스 노드에 설정할 수 있도록 정의

라벨 - 파드가 어디에 스케줄링될지 노드에 레이블을 단다. 노드풀에 레이블을 설정한다.

테인트 - 원치 않은 pod 가 들어오지 않도록 테인트 설정

중단 옵션 - 결정

가중치 - RI 나 세이빙스 플랫 사용 시 , 우선 해당 서버를 우선으로 생성한다.

큐블릿 옵션 - 에빗 소프트 옵션 = 메모리가 92%가 차면 동작하게 함.



4

파드 스케쥴링 고려 사항?


네트워크 성능 기준으로 함. 

그레이스풀 셧다운 시간 - Spot을 주로 사용하고 있어서 고려됨.

파드버짓(PDB) 사용 - 스폿인스턴스를 사용하는 경우,  PDB를 30% 정도로 높게 사용해 노드 삭제 전 파드사용 가능하도록 함.



5

효과?


EC2 -> EKS로 변경 = 70% 비용 절감

스폿 사용률 = 노드 프로비저닝 속도가 클러스터 오토스케일러는 60초 걸림,  카펜터 40초 만에 노드 프로비저닝. 스폿 사용률이 높아졌다.

빈패킷으로 80% CPU 할당률을 유지하게 되었다.




감사합니다.

매거진의 이전글 AWS GS리테일 EKS 무중단 업그레이드-2024
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari