패스잇
인프라 & 클라우드 · 심화

Kubernetes 환경에서 애플리케이션의 복잡한 배포, 관리, 운영 라이프사이클을 자동화하기 위해 Custom Resource Definition(CRD)과 Controller를 활용하는 Operator 패턴을 설계하고 구현해야 한다면, 어떤 핵심 구성 요소를 고려하고 어떤 방식으로 애플리케이션의 상태 관리 및 자동 복구를 구현할 것인지 설명해 주십시오.

힌트 · CRD를 통한 API 정의, Controller의 Reconcile Loop 동작 방식, 그리고 웹훅(Webhook)을 활용한 유효성 검사 및 변경 제어를 중심으로 설명할 수 있습니다.

CRDControllerOperator 패턴Reconcile 루프Custom Resource 상태 관리

모범답안

Operator 패턴을 설계할 때 가장 중요한 것은 CRD를 통해 애플리케이션의 상태를 명확하게 정의하는 것입니다. 예를 들어, MyApp이라는 CRD를 만들고, desired state (replicas, image version 등)와 observed state (available replicas, status)를 포함합니다.

Controller는 Reconcile 루프를 통해 desired state와 observed state를 지속적으로 비교하고, 차이가 있다면 desired state에 맞게 애플리케이션을 조정합니다. 이 과정에서 Kubernetes API를 사용하여 Pod, Service 등을 생성/관리합니다.

자동 복구를 위해서는 Controller가 애플리케이션의 상태를 주기적으로 확인하고, 문제가 발생하면 (예: Pod 실패) 자동으로 새로운 Pod를 생성하도록 구현합니다. 또한, 웹훅을 사용하여 CRD 생성/수정 시 유효성을 검사하고, 잘못된 설정으로 인해 시스템에 문제가 발생하는 것을 방지할 수 있습니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Docker / Kubernetes 면접 질문

← Docker / Kubernetes 면접 질문 전체 보기