[Kubernetes] 쿠버네티스란?

Kubernetes
avatar
2025.05.28
·
6 min read

📍 현대 소프트웨어 인프라의 핵심 중 하나로, 대규모 서비스 운영, 클라우드 인프라, DevOps 등에 필수적인 기술

6470

쿠버네티스(Kubernetes)란?

  • Google에서 개발하고 현재는 CNCF(Cloud Native Computing Foundation)에서 관리하는 오픈소스 컨테이너 오케스트레이션 플랫폼

  • 컨테이너(예. Docker 🐳)를 자동으로 배포하고, 확장하고, 운영하는 시스템

🔧 쿠퍼네티스를 사용하는 이유?

  • 현대 웹 서비스는 수십~수천 개의 컨테이너로 구성되며 이들을 직접 관리하기에는 너무 복잡함

기능

설명

자동 배포

정의한 설정대로 컨테이너를 자동 배포 및 재시

확장성

부하가 많으면 자동으로 인스턴스를 늘리고 줄일 수 있음

자가 치유

장애가 발생한 컨테이너를 자동으로 감지하고 재시작

롤링 업데이트

중단 없이 새 버전 배포 가능

서비스 디스커버리 & 로드 밸런싱

내부 DNS 및 로드 밸런서를 통해 자동으로 연결 관리

쿠버네티스의 핵심 개념

구성 요소

설명

pod

하나 이상의 컨테이너를 포함하는 가장 작은 실행 단위

node

컨테이너가 실행되는 서버(물리 서버 or 가상 머신)

cluster

여러 노드로 구성된 전체 쿠버네티스 환경

deployment

pod의 배포/업데이트 전략을 정의

service

pod에 대한 네트워크 접근을 제공 (로드밸런싱 포함)

ingress

외부에서 HTTP 요청을 받아 내부 서비스로 라우팅

ConfigMap/secret

설정 값이나 민감 정보 관리

어디에 사용되나요?

  • AWS EKS, Google GKE, Azure AKS 등 주요 클라우드에서 쿠버네티스 제원

  • 카카오, 네이버, 쿠팡 등 대규모 서비스에서 실제로 사용 중

  • DevOps, CI/CD, 마이크로서비스 환경에 필수

🤖 쿠버네티스 아키텍처

  • Master - worker 구조를 따름

  • Master

    • 컨트롤 플레인에 해당

    • 워커 노드들을 관리

  • 컨테이너

    • pod들로 캡슐화

    • 워커 노드들 내에 배포되어 실행됨

🛩 Control plane

  • 컨테이너 오케스트레이션을 담당

  • 클러스터의 상태 유지

    • Kube-apiserver

      • kubernetes API를 노출하는 컴포넌트 Kubectl로부터 리소스를 조작하라는 지시를 받음

    • etcd

      • 고가용성을 갖춘 분산 key-value 스토어

      • 쿠버네티스 클러스터의 백킹 스토어로 사용됨

    • Kube-scheduler

      • 노드를 모니터링하고 컨테이너를 배치할 적절한 노트 선택

    • Kube-controller-manager

      • 리소스를 제어하는 컨트롤러를 실행

📌 Kube-apiserver

  • 사용자, 컴포넌트가 쿠버네티스 클러스터와 쉽게 통신할 수 있도록 함

  • (드물게) 모니터링 시스템이나 서드파티 서비스들이 클러스터들 간 통신하기 위해 사용할 수 있음

  • 주요 역할

    • API 요청을 관리

    • API 객체 검증

    • 사용자 인증 및 권한 부여

    • 컨트롤 플레인과 워커 노트 컴포넌트들 사이에서 위치 조정 처리

  • API 서버는 etcd에서만 작동

📌 etcd

  • key-value 데이터 저장소

  • kubernetes 클러스터에서 저장되는 데이터를 위해 설계됨

  • pod, pod의 상태, namespace들과 관련된 데이터를 저장

  • kubernetes 클러스터의 뇌

  • 보안을 위해 오직 API 서버에서만 접근 가능

  • 일관성과 가용성을 엄격하게 지키기 위해 raft consensus algorithm을 사용

📌 kube-scheduler

  • 워커 노드에서 kubernetes pod의 스케줄링을 담당

  • 생성된 요청을 식별하고 요구 사항을 충족하는 pod가 배치될 가장 적합한 노드를 선택

6471