• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

안녕하세요 쿠버네티스 아키텍처 관련

21.11.15 14:56 작성 조회수 165

4

쿠버네티스는 왜 폴링방식으로 구현이 됐을까요?

옵저버 패턴을 사용한다면 더 연산량이 적고 폴링 딜레이 없이 실행될 수 있을 것같습니다.

답변 1

답변을 작성해보세요.

0

안녕하세요!

질문에서 궁금해하신 쿠버네티스의 상세한 동작방식을 소개한 책이 있습니다.

Programming Kubernetes 1. Introduction

https://www.oreilly.com/library/view/programming-kubernetes/9781492047094/ch01.html 여기에서 Edge- Versus Level-Driven Triggers 부분입니다.

간단히 요약하면, Edge(이벤트) 방식이 Level(폴링)보다 딜레이도 없고 효율적이지만, 중간에 outage(네트워크 장애등)로 이벤트 전송이 실패한다면 변경된 상태를 인지 못하게 되는 문제가 발생합니다.

쿠버네티스는 Edge방식에 오류를 방지 하기 위해 주기적으로 싱크하는 방식을 사용합니다.

쿠버네티스가 폴링방식으로 구현되었다기 보다는 loop 방식(?)으로 구현되었다고 정리하는게 정확해 보입니다.

https://hackernoon.com/level-triggering-and-reconciliation-in-kubernetes-1f17fe30333d 이 링크도 참고하시면 좋습니다.

감사합니다!