포스트 목록

2020년 3월 14일 토요일

[Kubernetes] 쿠버네티스 시작 전 사전 지식 정리

쿠버네티스란?

쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한 이식성이 있고, 확장가능한 오픈소스 플랫폼이라고 kubernetes.io 에 정의되어 있습니다.

여기서 워크로드란 주어진 기간에 시스템에 의해 실행되어야 할 작업의 할당량을 의미하며, 이 말은 쉽게 말하면 부하량이라고 생각하시면 됩니다.

그럼 컨테이너에 대해서 알아봐야 하는데, 컨테이너를 알려면 또 가상 머신을 알아야 합니다.

가상 머신(Virtual Machine)과 컨테이너(Container)

가상머신과 컨테이너는 둘 다 가상화라는 공통점이 있지만 대상의 차이가 있습니다.
가상 머신 (출처: https://www.docker.com/resources/what-container)
가상 머신은 하드웨어 기반의 여러 게스트 OS를 띄우는 것으로, 하이퍼바이저를 통해 에뮬레이션을 하는 것입니다.
하이퍼바이저 (출처: ko.wikipedia.org/wiki/하이퍼바이저)
여기서 하이퍼바이저란 호스트 컴퓨터에서 다수의 운영 체제를 동시에 실행하기 위한 논리적 플랫폼을 말하며, native 타입과 hosted 타입이 있는데 흔히 우리가 알고 있는 VMware나 VirtualBox와 같이 OS를 하나 더 띄워주는 프로그램이라 생각하면 쉬울 것 같습니다.
컨테이너 (출처: https://www.docker.com/resources/what-container)
다음으로 컨테이너란 호스트 OS 위에 올라가는 에뮬레이션이며, 게스트 OS 없이 애플리케이션이 되겠습니다. 그림에서와 같이 가장 유명한 Docker, 혹은 Containerd와 같은 프로그램이 있습니다.

결국 둘의 차이는 게스트 OS가 있는지의 차이가 되는데 이 차이가 생각보다 큽니다.

가장 먼저 생각해 볼 수 있는 것은 가상화를 할 때 가상 머신은 각 머신마다 OS가 올라가기 때문에 컨테이너에 비해 더 많은 리소스(메모리, 디스크 용량)가 필요합니다.

도커(Docker)

앞서 말했듯이 도커는 컨테이너의 개념을 구현한 프로그램입니다.
도커 구조 (출처: https://docs.docker.com/engine/docker-overview/)
그림과 같이 도커는 대몬과 컨테이너, 이미지, 레지스트리로 나뉘어져 있습니다.

대몬에서는 클라이언트로부터의 API 요청을 수신하고, 이미지, 컨테이너 등의 도커 개체를 관리합니다.

레지스트리에는 도커 이미지들이 저장되며, DockerHub에서 이미지를 검색하여 가져올 수 있습니다.

다음 포스트부터는 쿠버네티스 관련하여 정리하도록 하겠습니다.

감사합니다.

댓글 없음:

댓글 쓰기