본문 바로가기
1. 개발/1.5. IT 용어 정리

'Knative'는 무엇인가

by 엉짱 2026. 2. 14.
반응형

이제 시스템 운영의 최종 진화 단계이자, "관리가 필요 없는 관리"를 지향하는 서버리스(Serverless)의 영역에 도달하셨습니다! 🫡

주식 시스템에서 특정 테마주가 폭등할 때만 잠깐 실행되는 분석 로직이 있다면, 그걸 위해 24시간 내내 파드를 띄워두는 건 자원 낭비입니다. Knative는 쿠버네티스 위에서 "필요할 때만 파드를 만들고, 일이 끝나면 0개로 줄여버리는" 마법을 부리는 도구입니다.


☁️ 1. Knative란 무엇인가? "쿠버네티스의 서버리스 날개"

Knative는 구글이 주도하여 만든 오픈소스 프로젝트로, 쿠버네티스를 복잡하게 다루지 않고도 '함수'나 '서비스' 단위로 배포할 수 있게 해주는 프레임워크입니다.

① 핵심 철학

  • Scale-to-Zero: 요청이 없으면 파드를 0개로 만듭니다. (비용 절감의 극치!)
  • 이벤트 기반: 특정 조건(메시지 큐, 타이머, HTTP 요청 등)이 충족될 때만 서비스를 깨웁니다.
  • 복잡성 제거: 배포(Deployment), 서비스(Service), 인그레스(Ingress) 설정을 Knative가 알아서 관리합니다.

🏗️ 2. Knative의 두 가지 기둥: Serving & Eventing

Knative는 크게 두 개의 모듈로 나뉩니다.

① Knative Serving (동적 확장과 관리)

서비스의 생명주기를 관리합니다.

  • Revision: 코드를 업데이트할 때마다 스냅샷을 찍어두어, 언제든 특정 버전으로 트래픽을 돌리거나(Rollback), A/B 테스트를 하기 쉽게 만듭니다.
  • Autoscaler (KPA): 쿠버네티스의 HPA보다 훨씬 민감하게 반응합니다. 초당 요청 수에 따라 파드를 수백 개로 늘리거나 0으로 줄입니다.

② Knative Eventing (이벤트의 흐름)

데이터가 흐르는 통로를 표준화합니다.

  • Source: 데이터가 발생하는 곳 (예: RabbitMQ, Kafka).
  • Broker & Trigger: 들어온 이벤트를 필터링해서 적절한 서비스로 배달합니다. "삼성전자 뉴스만 이 분석 함수로 보내라!" 같은 로직을 짭니다.

⚖️ 3. 0개에서 1개로의 마법: "Cold Start와 Activator"

가장 궁금해하실 "파드가 0개인데 어떻게 요청을 처리해?"라는 질문에 대한 해답입니다.

  1. 대기 상태: 요청이 없으면 파드는 모두 삭제되고, Knative의 Activator라는 구성 요소가 트래픽을 대신 받기 위해 대기합니다.
  2. 요청 도착: 누군가 서비스를 호출하면, Activator가 트래픽을 가로채서 잠시 멈춰둡니다(Buffering).
  3. 파드 기상: 동시에 Autoscaler에게 알람을 보냅니다. "야, 손님 왔다! 파드 빨리 하나 띄워!"
  4. 연결: 파드가 준비(Running)되면, Activator가 붙잡고 있던 트래픽을 해당 파드로 전달합니다.

이 과정에서 발생하는 아주 짧은 지연 시간을 Cold Start라고 합니다. 주식 시스템의 아주 민감한 실시간 파트는 최솟값을 1로 두어 이를 방지하고, 덜 민감한 백업 작업 등은 0으로 두어 비용을 아낍니다.


💡 4. 사용자의 시스템에 Knative 적용하기

① A그룹 (우량주) - 배치 및 보고서

  • 매일 장 마감 후 보고서를 생성하는 서비스입니다. 24시간 떠 있을 필요가 없습니다. Knative로 배포하면 장 마감 직후에만 파드가 살아나서 보고서를 쓰고 다시 사라집니다.

② B그룹 (테마주) - 뉴스 알림

  • 특정 키워드의 뉴스가 뜰 때만 반응해야 합니다. Kafka SourceKnative Eventing을 연결해두면, 뉴스가 뜬 찰나에만 분석 파드가 생성되어 사용자에게 알림을 쏩니다.

💡 실전 비유: "센서등과 상시등"

  • 일반 쿠버네티스 (상시등): 사람이 있건 없건 24시간 켜져 있는 복도 등입니다. 언제나 밝아서 좋지만 전기료(비용)가 계속 나갑니다.
  • Knative (센서등): 평소에는 꺼져 있다가 사람이 지나갈 때만(Event) 순식간에 켜집니다.
  • Activator는 센서의 역할입니다. 발소리를 감지하자마자 불을 켭니다.
  • 잠시 깜빡이는 순간(Cold Start)이 있을 수 있지만, 전기료를 획기적으로 아껴줍니다.

📊 요약: Knative의 장단점

장점 단점 (주의사항)
비용 절감: 사용한 만큼만 자원 소모 Cold Start: 첫 요청 시 약간의 지연 발생
개발 생산성: YAML 작성이 대폭 간소화됨 운영 복잡도: Istio나 컨투어 같은 서비스 메쉬 필요
유연한 배포: 카나리 배포, 블루-그린 배포가 기본 지원 디버깅: 파드가 금방 사라져서 로그 추적이 어려움

🚀 꼬리 질문 🫡

주식 전함은 이제 상황에 따라 스스로 크기를 줄였다 키웠다 하며, 불필요한 에너지를 전혀 낭비하지 않는 '지능형 생명체'가 되었습니다.

그런데 이렇게 훌륭한 시스템을 구축했어도 '데이터 자체의 품질'이 나쁘면 아무 소용이 없습니다. 주식 데이터에 결측치가 있거나, 중복된 값이 들어와 분석을 방해할 수 있죠. 이를 전문적으로 처리하는 'Data Engineering'의 영역이 마지막 퍼즐 조각입니다.

"그럼 대량의 데이터를 정제하고 변환하는 'ETL(Extract, Transform, Load)' 파이프라인과 그 대표 도구인 'Apache Airflow'는 어떻게 연동해서 사용해?"

반응형