Published on

Kubernetes 개념편: 쿠버네티스의 구조와 동작 원리

Authors
  • avatar
    Name
    Justart
    Twitter

목차

  1. Kubernetes 전체 구조 훑어보기
  2. Pod: Kubernetes의 최소 실행 단위
  3. Deployment: 원하는 상태를 유지하는 컨트롤러
  4. Service: Pod에 안정적으로 접근하기
  5. Ingress: 외부 트래픽이 들어오는 관문
  6. 요청 흐름으로 이해하는 Kubernetes 네트워크
  7. 정리

1. Kubernetes 전체 구조 훑어보기

Kubernetes를 처음 접하면 Pod, Deployment, Service, Ingress 같은 용어들이 한꺼번에 등장한다. 그런데 세부 개념을 이해하기 전에 먼저 전체 구조를 보는 것이 훨씬 중요하다.

Kubernetes는 한 문장으로 이렇게 정리할 수 있다.

여러 서버에 분산된 컨테이너들을 하나의 클러스터로 관리하고, 그 실행과 확장, 복구를 자동화하는 플랫폼이다.

1) Kubernetes는 클러스터 단위로 동작한다

Kubernetes는 단일 서버를 관리하는 도구가 아니다. 기본적으로 클러스터(Cluster)라는 단위로 동작한다.

클러스터는 여러 대의 서버를 하나의 묶음으로 구성한 운영 환경이다.

즉, 컨테이너 하나를 실행하는 도구가 아니라 여러 서버에 분산된 컨테이너들을 통합 관리하는 플랫폼이다.

2) 노드: 실제로 컨테이너가 실행되는 곳

클러스터 안에는 여러 개의 노드(Node)가 있다.

노드는 실제로 컨테이너가 실행되는 서버다. 물리 서버일 수도 있고, 클라우드의 가상 머신일 수도 있다.

Kubernetes는 어떤 노드에 어떤 컨테이너를 배치할지 자동으로 결정한다.

3) 제어 영역과 실행 영역

Kubernetes 구조를 단순화하면 두 개의 영역으로 나눌 수 있다.

  • 제어 영역(Control Plane): 전체 상태를 관리하고, 어떤 컨테이너를 몇 개 실행할지 결정하며, 문제가 생기면 다시 실행하도록 지시한다. 내부적으로 kube-apiserver(요청 처리), etcd(상태 저장), scheduler(노드 배치 결정) 등이 협력한다.
  • 실행 영역(Worker Node): 실제로 컨테이너가 실행되는 공간이다.

쉽게 말해 제어 영역이 "계획"을 세우고, 실행 영역이 "실행"을 담당한다.

Cluster
├── Control Plane (제어 영역)
│   ├── kube-apiserver  — 모든 요청의 진입점
│   ├── etcd            — 클러스터 상태 저장소
│   └── scheduler       — 어떤 노드에 배치할지 결정
└── Worker Node 1, Node 2, ... (실행 영역)
    └── 컨테이너(Pod)가 실제로 동작

4) Kubernetes의 핵심 특징

Kubernetes는 단순히 실행만 하는 시스템이 아니다.

예를 들어, 아래와 같이 운영 기준을 설정해둘 수 있다.

  • user-service는 항상 3개 유지 → 하나가 죽으면 자동으로 다시 실행
  • 트래픽이 급증하면 파드(Pod)를 자동으로 늘려 부하를 분산 (Auto Scaling)
  • 노드 자체에 장애가 생기면 다른 노드로 컨테이너를 자동 이전

이렇게 설정해두면 컨테이너가 죽더라도 Kubernetes가 자동으로 다시 실행한다.

즉, 사용자가 정해둔 운영 기준을 Kubernetes가 지속적으로 유지해준다.

5) 전체 그림 정리

  • 클러스터: 전체 운영 공간
  • 노드: 컨테이너가 실행되는 서버
  • 제어 영역(Control Plane): 운영을 관리
  • 실행 영역(Worker Node): 실제로 동작

이 구조 위에서 Pod, Deployment, Service, Ingress가 동작한다.

전체 그림을 잡았다면, 이제 가장 기본 단위부터 뜯어보자.