Q&A로 배우는 쿠버네티스

wine Faster·2025년 10월 15일
1

도커

목록 보기
2/2
post-thumbnail

✨ 쿠버네티스는 뭐지? 그럼 도커는? 도커와 쿠버네티스의 관계는? 어떤 상황에서 쿠버네티스가 필요한지 궁금하다면 Q&A로 배워보자.

Q: 쿠버네티스는 뭐에요?

  • 쿠버네티스는 컨테이너화된 워크로드(Workload) 와 서비스를 자동으로 배포, 스케일링 및 관리해주는 오픈 소스 시스템입니다.

Q: 워크로드(Workload)뭐에요?

  • 워크로드는 시스템에 의해 수행되거나 처리되어야 하는 작업의 양 또는 종류를 포괄적으로 일컫는 말입니다.

  • 웹 서버(Nginx, Apache), 데이터베이스(MySQL, PostgreSQL), 백엔드 API 서비스, 배치 처리 프로그램, 머신러닝 모델 추론 서비스 등 사용자에게 서비스를 제공하거나 내부 시스템을 운영하는 모든 애플리케이션이나 프로세스가 워크로드에 해당합니다.

Q: "컨테이너화"된다는 것은 무슨 의미인가요?

  • 애플리케이션 코드와 그 실행에 필요한 모든 종속성 (운영체제 라이브러리, 환경 변수, 설정 파일, 런타임 등)이 하나의 컨테이너 이미지로 묶여 있음을 의미합니다.
  • 또한 이 패키지(이미지)는 어떤 환경(개발자 노트북, 테스트 서버, 클라우드 환경)에서도 동일한 실행 환경을 보장하며, 실행되면 컨테이너라는 격리된 공간에서 작동합니다.

Q: 컨테이너 이미지는 무엇인가요?

  • 컨테이너 이미지(Container Image)는 컨테이너를 생성하는 데 사용되는 읽기 전용 템플릿이자 독립 실행 가능한 정적 패키지입니다.
  • 쉽게 말해, 애플리케이션을 실행하기 위해 필요한 모든 것(코드, 런타임, 시스템 도구, 라이브러리, 설정 파일)을 하나의 파일 시스템으로 묶어 놓은 '청사진' 또는 '스냅샷'이라고 이해할 수 있습니다.

Q: 도커의 역할은 무엇인가요?

  • 이미지 생성: 개발자는 도커(Docker) 플랫폼을 사용하여 애플리케이션 코드와 모든 종속성을 묶어 컨테이너 이미지를 만듭니다.

  • 컨테이너 실행: 도커 엔진은 이 컨테이너 이미지를 로드하여 도커 컨테이너라는 격리된 실행 환경을 생성합니다. 컨테이너가 실행되면, 이는 독립된 하나의 워크로드가 됩니다.

Q: 쿠버네티스의 역할(오케스트레이션)은 무엇인가요?

  • 배포 및 확장: 서비스 규모가 커지면, 수십, 수백 개의 컨테이너가 필요해지고 이들을 여러 대의 서버(노드)에 분산시켜야 합니다. 이때 쿠버네티스가 등장합니다.

  • 클러스터 관리: 쿠버네티스는 레지스트리에서 컨테이너 이미지를 다운로드받아 클러스터 내의 각 서버에 도커 컨테이너를 생성하고 관리합니다.

  • 운영 자동화: 쿠버네티스는 컨테이너의 상태를 모니터링하며, 컨테이너가 죽으면 자동으로 다시 시작하고(Self-healing), 트래픽이 몰리면 컨테이너 수를 자동으로 늘립니다(Scaling).

Q: 도커, 쿠버네티스의 관계는 뭐에요?

  • 쿠버네티스는 도커의 상위 개념이 아닙니다. 상호 보완적이며 계층적인 관계입니다.
  • 도커는 애플리케이션을 포장하고 실행하는 하위 수준 기술입니다. (컨테이너 런타임 환경 제공)
  • 쿠버네티스는 이 포장된 애플리케이션(컨테이너)을 대규모로 효율적으로 배포 및 관리하는 상위 수준 관리 시스템입니다. (오케스트레이션 제공)

Q: 그럼 쿠버네티스의 오케스트레이션과 자동화의 차이는 뭔가요?

  • 자동화 (Automation): 개별적이고 반복적인 작업을 스크립트나 도구를 사용해 인간의 개입 없이 처리하는 것입니다. (예: 서버에 패치 설치, 백업 실행)

  • 오케스트레이션 (Orchestration): 여러 개의 자동화된 작업과 시스템들을 통합하고, 이들 간의 복잡한 상호 작용 및 순서를 조율하여 전체적인 목표(워크플로)를 달성하는 것입니다.

  • 오케스트레이션은 여러 자동화된 구성 요소를 엮어내는 상위 관리 기술이며, 쿠버네티스가 바로 이 컨테이너 오케스트레이션의 가장 강력하고 널리 사용되는 도구입니다.

Q: 쿠버네티스의 오케스트레이션이 제공하는 주요 기능은 뭔가요?

기능설명
스케줄링 (Scheduling)컨테이너를 실행할 최적의 서버(노드)를 찾아 컨테이너를 배치합니다.
자동 복구 (Self-healing)컨테이너가 실패하거나 서버가 다운되면 자동으로 컨테이너를 재시작하거나 다른 서버로 옮겨 재배치합니다.
스케일링 (Scaling)사용자의 명령이나 트래픽 부하에 따라 컨테이너 복제본 수를 자동으로 늘리거나(Scale Out) 줄입니다(Scale In).
서비스 디스커버리 및 로드 밸런싱컨테이너 그룹에 단일 진입점(Service)을 제공하고, 들어오는 요청을 실행 중인 여러 컨테이너에 균등하게 분산시킵니다.
롤아웃 및 롤백새로운 버전의 애플리케이션을 배포할 때 점진적으로 교체하며, 문제가 생기면 즉시 이전 버전으로 안전하게 되돌립니다.
스토리지 오케스트레이션컨테이너가 데이터를 저장하고 접근할 수 있도록 영구 스토리지(Persistent Storage)를 자동으로 마운트하고 관리합니다.

Q: 도커, 도커 이미지, 컨테이너, 쿠버네티스의 상관 관계 정리

기술 요소핵심 역할생성/실행 관계상위/하위 관계
컨테이너 이미지애플리케이션의 설계도 (정적 패키지)컨테이너를 만드는 원본 템플릿가장 하위의 "무엇을 실행할지" 정의
도커 (Docker)컨테이너를 만들고 실행하는 기술 플랫폼/엔진이미지를 기반으로 컨테이너를 생성하고 실행컨테이너 기술의 기반
도커 컨테이너 (Docker Container)실행 중인 애플리케이션의 격리된 인스턴스이미지가 도커 엔진에 의해 실행된 결과물쿠버네티스의 주요 관리 대상
쿠버네티스 (Kubernetes)컨테이너의 대규모 배포 및 자동 관리 (오케스트레이션)실행 중인 컨테이너의 라이프사이클을 통제가장 상위의 "어떻게 운영할지" 결정

0개의 댓글