티스토리 뷰

반응형

✅ 압박면접 대응 시리즈 26편: Kubernetes 핵심 개념과 실무 구성 요소 (Pod, Service, Deployment)

압박면접에서 “쿠버네티스 써보셨나요?”는 사실상 “운영 자동화를 이해하고 있나요?”라는 질문입니다.
단순히 Pod과 Node의 정의를 아는 게 아니라,

“왜 Docker만으로는 부족했는가?”
“Kubernetes가 DevOps 환경에서 어떤 가치를 주는가?”
를 설명할 수 있어야 진짜 시니어 레벨로 평가받습니다.

이번 글에서는 쿠버네티스의 핵심 개념, 주요 구성 요소, 실무 적용 사례,
그리고 면접 답변 포인트까지 정리합니다.


📌 1. 쿠버네티스란?

Kubernetes(줄여서 K8s)는 컨테이너화된 애플리케이션을 자동으로 배포, 확장, 복구하는 컨테이너 오케스트레이션 플랫폼입니다.

✅ 주요 기능

  • 자동 배포 (Rolling Update)
  • 자동 복구 (Self-healing)
  • 서비스 디스커버리 (Service)
  • 로드 밸런싱
  • 자동 스케일링 (HPA)

📌 핵심 개념:

“Kubernetes는 컨테이너를 ‘운영 가능한 수준’으로 끌어올린 자동화 플랫폼이다.”


📌 2. 쿠버네티스 아키텍처 구조

graph TD
A[User] --> B[API Server]
B --> C[Controller Manager]
B --> D[Scheduler]
D --> E[Node]
E --> F[Pod]

구성 요소 역할

API Server 모든 명령의 진입점
Controller Manager 리소스 상태를 원하는 상태로 유지
Scheduler Pod를 적절한 Node에 할당
etcd 클러스터 상태 저장소
Node 컨테이너가 실제 실행되는 서버
Pod 컨테이너 실행 단위

📌 3. 주요 리소스 구성 요소

반응형

✅ (1) Pod

컨테이너의 최소 실행 단위

apiVersion: v1
kind: Pod
metadata:
  name: web
spec:
  containers:
    - name: web
      image: nginx
      ports:
        - containerPort: 80

📌 특징:
하나의 Pod은 하나 이상의 컨테이너를 가질 수 있으며, 같은 네트워크 네임스페이스를 공유함.


✅ (2) Service

Pod는 IP가 변하기 때문에, Service가 이를 고정 주소로 매핑해줌.

apiVersion: v1
kind: Service
metadata:
  name: web-service
spec:
  selector:
    app: web
  ports:
    - port: 80
      targetPort: 80
  type: ClusterIP

📌 Service 유형

  • ClusterIP: 내부 통신용 (기본)
  • NodePort: 외부에서 접근 가능
  • LoadBalancer: 클라우드 로드밸런서 연결

✅ (3) Deployment

Pod의 배포와 버전 관리를 담당

apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: web
  template:
    metadata:
      labels:
        app: web
    spec:
      containers:
        - name: web
          image: nginx:latest
          ports:
            - containerPort: 80

📌 Deployment 특징

  • ReplicaSet 관리
  • Rolling Update & Rollback 지원
  • Scale up/down 자동화

📌 4. 실무 적용 사례

상황:
운영 중인 Docker Compose 기반 서버에서
배포 시마다 다운타임 발생 + 스케일링 한계

해결 과정:

  1. 모든 서비스(Nginx, NestJS, PostgreSQL, Redis)를 K8s로 이식
  2. Deployment + Service 구조 설계
  3. Ingress Controller(Nginx)로 도메인 트래픽 관리
  4. HPA(Horizontal Pod Autoscaler)로 부하 자동 확장

📈 결과:

  • CPU 부하 시 자동 스케일링
  • 배포 중 다운타임 “0”
  • 운영 중 장애 발생 시 자동 복구 (Self-Healing 성공)

📌 5. 압박면접 예상 질문 & 답변 포인트

  • Q. Pod와 Container의 차이는?
    → “Pod은 컨테이너 실행 단위이며, 하나 이상의 컨테이너가 네트워크를 공유합니다.”
  • Q. Deployment 없이 Pod만 쓰면 안 되나요?
    → “가능은 하지만, 자동 복구·롤백·스케일링 기능이 없어 운영에는 부적합합니다.”
  • Q. Service와 Ingress의 차이는?
    → “Service는 내부 네트워크 접근, Ingress는 외부 트래픽 라우팅을 담당합니다.”
  • Q. Kubernetes가 Docker Compose보다 나은 이유는?
    → “Compose는 단일 서버 오케스트레이션, Kubernetes는 다중 서버 클러스터 관리에 최적화되어 있습니다.”

📌 6. 면접에서 활용할 한 줄 정리

“Docker Compose 기반 서비스의 운영 불안정성을 해결하기 위해
Kubernetes로 이전했습니다.
Deployment + Service 구조를 설계해 다운타임 없는 배포와 자동 스케일링을 구현했습니다.”



압박면접,Kubernetes,Pod,Service,Deployment,DevOps,컨테이너오케스트레이션,Autoscaling,Ingress,무중단배포


 

※ 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
글 보관함
반응형