DevLog

엔지니어링 블로그를 한 곳에서 탐색하고, 최근 발행 흐름을 빠르게 파악할 수 있는 서비스 입니다.

Quick Links

  • Latest Feed
  • Engineering Directory

Support

  • 소개
  • 개인정보처리방침

Contribute

  • 원하는 블로그 추가 (준비 중)
  • Feedback

© 2026 DevLog Inc. All rights reserved.

본 사이트는 공개 RSS 피드를 통해 콘텐츠를 수집하며, 모든 콘텐츠의 저작권은 원저작자에게 있습니다.

Back to Feed
Read Original

Contents

Continue Reading

  • More from 당근
  • Related reads#EKS
#DevOps

Job 워크로드를 위한 EKS Node Group 오토스케일링 도입기

Job 워크로드를 위한 EKS Node Group 오토스케일링 도입기
01

Summary

중단되면 안 되는 Job 워크로드, EKS에서 비용까지 아끼는 오토스케일링 비법

당근 SRE팀이 PodAffinity와 Kyverno를 활용해 고정 노드 그룹에서 탈출하며 성능을 2배 높인 실전 기록

중단하기 어려운 Job 워크로드의 제약을 극복하고 EKS 노드 그룹에 오토스케일링을 도입한 과정을 상세히 다룹니다. 단순한 설정 도입을 넘어 운영 중 마주한 kubelet 과부하, EBS 병목 등 하부 인프라의 한계를 엔지니어링으로 돌파한 사례를 공유합니다.

  • 01PodAffinity를 활용한 Bin-packing 기법으로 별도 커스텀 스케줄러 없이 노드 집적도 최적화
  • 02Kyverno 정책 엔진을 사용하여 강제 종료 방지 어노테이션 및 Affinity 설정을 일괄 자동화
  • 03대규모 Pod 동시 생성 시 발생하는 kubelet PLEG 지연 및 이미지 풀링 병목 현상 해결
  • 04EBS Volume의 IOPS와 Throughput 최적화를 통해 컨테이너 런타임의 안정성 확보
  • 05오토스케일링 도입 후 워크로드 Pending 시간 49% 단축 및 노드 운영 수동 공수 제거

+RECOMMENDATION

EKS 환경에서 Argo Workflow, Airflow 등 대규모 Job 워크로드를 운영하며 비용 효율화와 성능 최적화를 동시에 달성하고자 하는 SRE 및 DevOps 엔지니어에게 추천합니다.

The Problem

시작과 끝이 명확하지만 중단 시 재실행 부담이 큰 Job 워크로드의 특성상, 고정된 크기의 노드 그룹을 운영하며 자원 낭비와 처리 지연 문제를 겪고 있었습니다.

The Solution

PodAffinity를 이용한 Bin-packing 전략으로 노드 집적도를 높이고, Kyverno로 강제 종료 방지 설정을 자동화했으며, kubelet 설정 최적화 및 EBS 성능 증설을 통해 병목을 해결했습니다.

The Result

평균 Pod 대기 시간이 49% 감소하고 Argo Workflow 실행 시간이 47% 단축되었으며, 수동 운영 부담을 제거함과 동시에 자원 활용의 유연성을 확보했습니다.

Trade-off

노드의 빈번한 생성과 삭제로 인해 컨테이너 이미지 캐싱 효율이 저하되어, 결과적으로 평균 이미지 풀(Image Pull) 시간이 이전 대비 약 2~3배 정도 증가했습니다.

03

Key Concepts

Concept · 01

Bin-packing

컴퓨팅 자원을 최대한 밀도 있게 사용하기 위해 Pod를 가능한 한 적은 수의 노드에 집중시켜 배치하는 스케줄링 전략입니다.

  • 쿠버네티스 기본 스케줄러 대신 PodAffinity의 weight 설정을 활용하여 노드 집적도를 유도했습니다.
Concept · 02

Kyverno

쿠버네티스 리소스를 생성하거나 변경할 때 정책에 따라 데이터를 검증하거나 수정하는 정책 엔진입니다.

  • Job 워크로드 Pod에 오토스케일링 방지 어노테이션과 Affinity 설정을 자동으로 주입하는 데 사용되었습니다.
Concept · 03

Karpenter

워크로드의 요구사항에 맞춰 최적의 노드를 신속하게 프로비저닝하고 제거하는 쿠버네티스 전용 오토스케일러입니다.

  • 특정 어노테이션을 통해 실행 중인 Job이 있는 노드가 Scale-in 과정에서 제거되지 않도록 제어했습니다.
Continue reading · same source

당근More from 당근

View all posts from 당근
  • 천만 MAU를 지탱하는 커뮤니티 시스템을 소개해요

    Modular MonolithStreaming SSROpenAPI
    2일 전
  • 혼자 시작해 전국 오픈까지, 당근 레슨/과외 빌딩 로그

    MarketplaceProduct Market FitFunnel Optimization
    2주 전
  • 디자인시스템 팀은 디자인시스템만 잘 만들면 될까

    Design SystemAI in DesignUX Patterns
    1개월 전
  • 당근 200+개 DB 를 옮기는 ELT 플랫폼, DT Platform 을 만든 이야기

    ELTApache SparkApache Airflow
    1개월 전
  • 누구나 찾아볼 수 있는 중고거래 서버 LLM 릴리즈 노트 도입기

    LLMGitHub ActionsNotion
    2개월 전

Related reads#EKS

Explore #EKS
여기어때

EKS + ALB 환경에서 Argo Rollouts 503 에러 없는 카나리 배포 적용기

#EKS2개월 전
당근

Our Journey to Autoscaling EKS Node Groups for Job Workloads

#EKS3개월 전
카카오뱅크·Agentic AI

Agentic AI의 시대, AWS re:Invent 2025 현장을 가다

#EKS4개월 전
여기어때

여기어때 Secret 플랫폼 구축기 Part 2: 시크릿 저장소를 전체 서비스에 적용하기까지

#EKS4개월 전

Source

당근
당근
Engineering Blog

Published · April 16, 2026

Topics

EKSKarpenterBin-packingKyvernoAutoscaling