Kubernetes 가 무엇인가

dev_butler·2026년 4월 30일

IT지식쌓기

목록 보기
3/4

K8s란? (Kubernetes)

컨테이너화된 애플리케이션을 자동으로 배포, 확장, 관리해주는 오픈소스 플랫폼이다!

즉, Docker 컨데이너를 대규모로 자동 관리해주는 시스템이라 생각하자

왜 사용하는가?

K8s를 통해서는

  • 자동 배포, 자동 확장, 자동 복구, 로드 밸런싱이 가능해진다.
  • 기존에는 서버마다 환경이 다르거나, 장애 발생 시 자동 복구가 어려운 등 문제가 있었다.

Kubernetes 핵심 구조

  1. Cluster 구성
  • Control Plane
  • Worker Node

[1] Control Plane

주요 컴포넌트

  • (1) API Server
    • 모든 요청의 출입구
    • kubectl 명령이 여기로 들어간다
  • (2) etcd
    • 클러스터의 상태를 저장하는 DB
  • (3) Scheduler
    • 어떤 노드에 Pod를 배치할지 결정한다
  • (4) Controller Manager
    • 시스템 상태를 지속적으로 원하는 상태로 유지한다

[2] Worker Node

: 실제로 컨테이너가 실행되는 곳이다

  • (1) Kubelet
    • 노드에서 Pod 상태를 관리한다
  • (2) Kube Proxy
    • 네트워크, 로드밸런싱을 담당한다
  • (3) Container Runtime
    • Docker, containerd 등

핵심 개념

  1. Pod
  • K8s의 가장 작은 실행 단위다
  • 하나 이상의 컨테이너를 포함하고 같은 네트워크, 스토리지를 공유한다
  1. Deployment
  • 원하는 Pod 개수를 유지
  • 자동 복구와 롤링 업데이트를 지원한다
  1. Service
  • Pod에 접근하기 위한 네트워크 추상화
    • Pod는 IP가 계속 바뀌기 때문에 직접 접근이 불가하다.
  • 종류 : ClusterIP, NodePort, LoadBalancer
  1. Namespace
  • 클러스터 내 리소스를 논리적으로 분리한다
  1. ConfigMap, Secret
  • ConfigMap : 설정 정보
  • Secret : 비밀번호, API Key 등 민감 정보

Kubernetes의 동작 흐름

상황 예시 : 웹 서버 3개를 띄워보자

  1. 개발자가 yaml 작성
  2. kubectl로 API Server에 요청
  3. etcd에 상태를 저장
  4. Scheduler가 Pod 배치
  5. Kubelet이 컨테이너 실행
  6. Controller가 상태 유지

→ 핵심 : 원하는 상태를 유지

YAML 예시

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

뜻 : nginx 컨테이너를 3개 실행하고, 장애 발생 시 자동 복구한다.

Kubernetes 핵심 특징

  1. Self-Healing
  • Pod가 죽으면 자동으로 재생성
  1. Auto Scaling
  • 트래픽에 따라 자동으로 확장
  1. Rolling Update
  • 무중단 배포가 가능하다
  1. Declarative 방식
  • 원하는 상태만 정의한다

Kubernetes VS Docker

그래서 둘의 차이가 무엇인가??

구분DockerKubernetes
역할컨테이너 실행컨테이너 관리
범위단일 호스트클러스터
기능실행배포/확장/관리
  • Docker : 컨테이너 실행
  • K8s : 컨테이너 오케스트레이션

Kubernetes를 써야하는 경우는 언제인가

  • MSA(마이크로서비스) 구조
  • 트래픽 변동이 큰 서비스
  • 무중단 배포 필요
  • 대규모 서비스

위와 같은 상황에서 사용하는 것이 좋다!

0개의 댓글