본문 바로가기

Kubernetes

쿠버네티스 입문 Part1.

Kubernetes

시작하기전...

Kubernetes와 Docker 비교

Kubernetes와 Docker는 둘 다 컨테이너 기술을 사용하여 애플리케이션을 배포하고 관리하는 데 사용되는 오픈 소스 플랫폼이다. 하지만 작동방식과 역할에서 근본적인 차이점이 있다.

  1. 주요 차이점 :
기능 Kubernetes Docker
역할 컨테이너 오케스트레이션 플랫폼 컨테이너 플랫폼 및 런타임
주요기능 컨테이너 배포, 스케줄링, 관리, 네트워킹 , 보안 컨테이너 이미지 생성, 저장, 배포, 실행
추상화 수준 애플리케이션 수준 운영체제 수준
복잡성 복잡 비교적 간단
사용 사례 마이크로서비스 기반 애플리케이션, 복잡한 분산 시스템 웹 애플리케이션, 단일 애플리케이션, CI/CD 파이프라인
  1. Kubernetes :
  • 컨테이너 오케스트레이션 플랫폼 : 여러 컨테이너를 하나의 시스템처럼 작동하도록 관리한다.
  • 주요 기능 :
    • 컨테이너 배포 및 스케줄링
    • 컨테이너 상태 관리
    • 컨테이너 네트워킹 및 보안
    • 자동화 및 확장
  • 적합한 사용 사례 :
    • 마이크로서비스 기반 애플리케이션
    • 복잡한 분산 시스템
    • 대규모 컨테이너 환경
  1. Docker :
  • 컨테이너화 플랫폼 및 런다임 : 컨테이너 이미지를 생성, 저장, 배포 및 실행한다.
  • 주요기능 :
    • 컨테이너 이미지 생성
    • 컨테이너 이미지 저장 및 배포
    • 컨테이너 실행 및 관리
    • 컨테이너 이미지 빌드 자동화
  • 적합한 사용 사례 :
    • 웹 애플리케이션
    • 단일 애플리케이션
    • CI/CD 파이프라인
  1. 결론 :
  • Kubernetes와 Docker는 컨테이너 기술을 사용하는 데 필요한 두 가지 주요 플랫폼 이다.
  • Kubernetes는 컨테이너 오케스트레이션에 적합하며, Docker는 컨테이너화에 적합하다.

1.1 컨테이너

리눅스는 원래 프로세스별로 자원을 격리해서 사용하는 cgroup과 특정 디렉토리로 권한을 제한하는 chroot등으로 격리 환경을 구성할 수 있었다. 여기에 디스크의 파일 변경 사항을 레이어 형태로 저장하는 파일시스템을 합해 컨테이너라는 개념이 탄생했다. 도커는 방금 소개한 기능들을 모아서 컨테이너를 손쉽게 사용할 수 있도록 한 것으로 주목받았다. 도커이후에는 containerd, runc, cri-o 같은 다양한 컨테이너 런타임들이 등장했다.

기존에는 가상화나 클라우드 컴퓨팅을 설명할 때는 VM을 많이 언급했으나, 컨테이너가 알려지면서 컨테이너에 많은 관심이 쏠리기 시작했다.

<컨테이너와 가상 머신의 차이>

컨테이너_가상머신_차이

그림의 왼쪽이 컨테이너, 오른쪽이 가상머신의 구조인데, 컨테이너에는 호스트 운영 체제 위에 도커가 있고 바로 앱이 위치한다. 반면 가상 머신은 하이퍼바이저위에 가상 머신마다 게스트 운영체제가 있고 그 위에 앱이 위치한다. 즉, 컨테이너가 구조상 레이어가 더 간단하므로 가상 머신보다 성능을 높이기 쉽다.