๐Ÿงช EKS์—์„œ Goldilocks ์‹œ๋„๊ธฐ: ๊ฐ์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ๋กœ Request/Limit ํ™•์ธํ•ด๋ณด๊ธฐ

sangjinsuยท2025๋…„ 6์›” 6์ผ

โœ… ๋ฐฐ๊ฒฝ: ๋ฆฌ์†Œ์Šค ์„ค์ •, ์™œ ์ค‘์š”ํ•œ๊ฐ€?

Kubernetes์—์„œ Pod์˜ requests์™€ limits๋Š”

์„œ๋น„์Šค์˜ ์•ˆ์ •์„ฑ๊ณผ ํด๋Ÿฌ์Šคํ„ฐ ๋น„์šฉ ํšจ์œจ์„ฑ์— ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ํ˜„์‹ค์€โ€ฆ

โ€œCPU๋Š” ๊ทธ๋ƒฅ 500m ์ •๋„ ์ฃผ๋ฉด ๋˜์ง€ ์•Š์„๊นŒ?โ€

โ€œ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋„‰๋„‰ํ•˜๊ฒŒ 1Gi?โ€

์ด๋Ÿฐ ๊ฐ๊ฐ์  ์ถ”์ •์— ์˜์กดํ•œ ๋ฆฌ์†Œ์Šค ์„ค์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์ดˆ๋ž˜ํ•ฉ๋‹ˆ๋‹ค:

  • ๊ณผ์ž‰ ์„ค์ • โ†’ ๋‚ญ๋น„๋˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค, ๋†’์€ ๋น„์šฉ
  • ๊ณผ์†Œ ์„ค์ • โ†’ OOMKilled, CPU Throttling ๋ฐœ์ƒ

๊ทธ๋ž˜์„œ ์ด๋ฅผ ๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋กœ Goldilocks๋ฅผ ์‹œ๋„ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.


๐Ÿงธ Goldilocks๋ž€?

Goldilocks๋Š”

VPA(Vertical Pod Autoscaler) ๋ฅผ ํ™œ์šฉํ•˜์—ฌ

Pod์˜ ์‹ค์ œ ๋ฆฌ์†Œ์Šค ์‚ฌ์šฉ๋Ÿ‰์„ ์ˆ˜์ง‘ํ•˜๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Request/Limit ์ถ”์ฒœ ๊ฐ’์„ ์ œ์‹œํ•ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๐ŸŽฏ ๋ชฉํ‘œ: ๋„ˆ๋ฌด ๋งŽ์ง€๋„, ๋„ˆ๋ฌด ์ ์ง€๋„ ์•Š์€


๐Ÿ› ๏ธ Step 1: VPA ์ˆ˜๋™ ์„ค์น˜

VPA ๋ฆฌํฌ๋ฅผ ์ง์ ‘ ํด๋ก ํ•˜์—ฌ ์ˆ˜๋™ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค.

git clone https://github.com/kubernetes/autoscaler.git
cd autoscaler/vertical-pod-autoscaler/
./hack/vpa-up.sh

๐Ÿงช Step 2: Goldilocks ์„ค์น˜ (VPA ์ž๋™ ์กฐ์ • OFF)

helm repo add fairwinds-stable https://charts.fairwinds.com/stable
helm repo update

helm install goldilocks fairwinds-stable/goldilocks \
  --namespace goldilocks --create-namespace \
  --set controller.vpa.enabled=true \
  --set controller.vpa.updateMode=Off

๐Ÿ“Œ updateMode=Off๋ฅผ ์„ค์ •ํ•œ ์ด์œ : ์‹ค ์šด์˜ ์ค‘์ธ ๋ฆฌ์†Œ์Šค๋ฅผ VPA๊ฐ€ ์ž๋™ ์กฐ์ ˆํ•˜์ง€ ์•Š๋„๋ก ๋ง‰๊ณ  ์ถ”์ฒœ ๊ฐ’๋งŒ ์ฐธ๊ณ ํ•œ ํ›„ ์ˆ˜๋™ ์ ์šฉ


๐Ÿ”Ž Step 3: ๋Œ€์‹œ๋ณด๋“œ ํ™•์ธ (ํฌํŠธํฌ์›Œ๋“œ ๋ฐฉ์‹)

kubectl port-forward -n goldilocks svc/goldilocks-dashboard 8080:80

์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ http://localhost:8080 ์ ‘์†ํ•˜์—ฌ ๋Œ€์‹œ๋ณด๋“œ ํ™•์ธ ๊ฐ€๋Šฅ.

๐Ÿ“Œ ๋ถ„์„ ๋Œ€์ƒ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ผ๋ฒจ ์ง€์ •:

kubectl label ns <๋„ค์ž„์ŠคํŽ˜์ด์Šค๋ช…> goldilocks.fairwinds.com/enabled=true


๐Ÿ” ๊ด€์ฐฐ ๊ฒฐ๊ณผ ๋ฐ ์ธ์‚ฌ์ดํŠธ

ํ•ญ๋ชฉ๋‚ด์šฉ
๋ฆฌ์†Œ์Šค ์„ค์ •์ผ๋ถ€ ์„œ๋น„์Šค๋Š” ๊ณผ๋„ํ•˜๊ฒŒ ๋†’๊ฒŒ ์„ค์ •๋จ (์˜ˆ: CPU 1 โ†’ ์‹ค์ œ ์‚ฌ์šฉ 0.1)
์ถ”์ฒœ ๋ฒ”์œ„Lower / Target / Upper ๊ฐ’์œผ๋กœ ๋‹ค์–‘ํ•˜๊ฒŒ ์ œ์‹œ๋จ
์ ์šฉ ์ „๋žตHelm chart ๋˜๋Š” Kustomize๋ฅผ ํ†ตํ•ด ํ–ฅํ›„ ์ˆ˜๋™ ๋ฐ˜์˜ ์˜ˆ์ •
์•ˆ์ •์„ฑupdateMode=Off ์„ค์ •์œผ๋กœ ์šด์˜ ๋ฆฌ์Šคํฌ ์—†์ด ๋ถ„์„ ๊ฐ€๋Šฅ

๐Ÿ“Œ ์ •๋ฆฌ ๋ฐ ๋А๋‚€ ์ 

  • Goldilocks๋Š” ๋งค์šฐ ์ง๊ด€์ ์ด๊ณ  ๋น ๋ฅด๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ
  • VPA๋Š” ์ˆ˜๋™ ์„ค์น˜๋กœ๋„ ๋ฌด๋ฆฌ ์—†์ด ๊ตฌ์„ฑ ๊ฐ€๋Šฅ
  • ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒ€ ๋‚ด ํ˜‘์˜ ํ›„ ์ ์ง„์  ์ ์šฉ์„ ๊ณ ๋ ค ์ค‘
  • ์‹ค ์šด์˜ํ™˜๊ฒฝ์— ์ ์šฉ ์ „, updateMode=Off ์„ค์ •์ด ์•ˆ์ •์  ์ ‘๊ทผ๋ฒ•

โœ๏ธ ๋งˆ๋ฌด๋ฆฌ

์ด๋ฒˆ ์‹œ๋„๋Š” ์šด์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ๋ถ„์„ํ•˜๊ณ  ๊ฐœ์„  ๋ฐฉํ–ฅ์„ ๋ชจ์ƒ‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ฒซ ๋‹จ๊ณ„์˜€์Šต๋‹ˆ๋‹ค.

Goldilocks๋Š” ์ƒ๊ฐ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๋„์ž…ํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ ,

VPA + updateMode=Off ์กฐํ•ฉ์€ ์‹ค๋ฌด ํ™˜๊ฒฝ์—์„œ๋„ ์•ˆ์ •์„ฑ๊ณผ ์œ ์šฉ์„ฑ์„ ๋ชจ๋‘ ํ™•๋ณดํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด๋ผ ํŒ๋‹จ๋ฉ๋‹ˆ๋‹ค.


๐Ÿ”— ์ฐธ๊ณ  ๋งํฌ


profile
๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋Š”, ์ด์Šˆ๋ฅผ ์ค„์ด๋Š” ํ™˜๊ฒฝ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€