Kubernetes의 Pod, Deployment, Service의 역할을 설명해주세요.
답변 포인트
실행 단위, 배포 관리, 네트워크 추상화를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.
정답 및 해설
빠른 요약
Pod는 실행 단위, Deployment는 원하는 Pod 수와 업데이트를 관리하는 컨트롤러, Service는 변하는 Pod에 안정적인 네트워크 접근 지점을 제공합니다. 실무 예시: 인프라 설계는 배포가 되는지보다 장애가 났을 때 감지하고 되돌릴 수 있는지를 함께 봐야 합니다.
Pod는 실행 단위, Deployment는 원하는 Pod 수와 업데이트를 관리하는 컨트롤러, Service는 변하는 Pod에 안정적인 네트워크 접근 지점을 제공합니다.
핵심 개념
핵심 기준은 실행 단위, 배포 관리, 네트워크 추상화입니다.
Pod는 하나 이상의 컨테이너가 함께 배치되는 최소 실행 단위입니다. Deployment는 ReplicaSet을 통해 원하는 Pod 개수와 rolling update를 관리합니다. Service는 label selector로 Pod 집합을 찾아 안정적인 DNS 이름과 가상 IP를 제공합니다.
동작 흐름
- 요구사항을 성능, 안정성, 보안, 복구 목표로 나눠 정의합니다.
- 정상 흐름과 장애 흐름에서 각 구성 요소가 어떻게 동작하는지 확인합니다.
- 자동화와 관찰 지표로 변경 결과를 검증합니다.
- 롤백, 복구, 확장, 비용 관리까지 운영 절차로 문서화합니다.
실제 예시
apiVersion: apps/v1
kind: Deployment
metadata:
name: api
spec:
replicas: 3
selector:
matchLabels:
app: api예시는 핵심 구조를 단순화한 것입니다. 실무에서는 운영 환경, 장애 상황, 보안 요구사항에 맞게 세부 설정을 조정해야 합니다.
실무에서 주의할 점
- 자동화가 있어도 롤백과 복구 절차를 실제로 연습하지 않으면 장애 때 동작하지 않을 수 있습니다.
- 관찰 지표가 없으면 장애 원인을 추측에 의존하게 됩니다.
- 확장은 애플리케이션 코드, 데이터베이스, 네트워크, 외부 의존성 한계를 함께 봐야 합니다.
함께 연결해서 보면 좋은 키워드
Kubernetes, Pod, Deployment, Service
면접에서 짚으면 좋은 포인트
- 정상 동작뿐 아니라 장애, 롤백, 관찰 가능성까지 함께 설명하면 실무적인 답변이 됩니다.
- 설정 예시를 말할 때 보안, 비용, 운영 자동화의 trade-off도 함께 짚는 것이 좋습니다.
정리
한 줄로 정리하면, Pod는 실행 단위, Deployment는 원하는 Pod 수와 업데이트를 관리하는 컨트롤러, Service는 변하는 Pod에 안정적인 네트워크 접근 지점을 제공합니다. 개념의 정의뿐 아니라 장애 시 동작, 운영 지표, 자동화와 복구 전략까지 함께 이해하는 것이 중요합니다.