Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Ahzick

도커(Docker)와 쿠버네티스(Kubernates) 개념 이해하기 본문

Cloud Computing

도커(Docker)와 쿠버네티스(Kubernates) 개념 이해하기

Ahzick 2020. 6. 23. 16:53

도커(Docker)와 쿠버네티스(Kubernates) 개념 이해하기

쿠버네티스(Kubernates)

  • 쿠버네티스는 컨테이너화된 애플리케이션의 자동 디플로이, 스케일링 등을 제공하는 관리시스템이다.
  • 여러 클러스터의 호스트 간에 애플리케이션 컨테이너의 배치, 스케일링, 운영을 자동화하기 위한 플랫폼 제공을 목적으로 한다.
  • 도커(Docker)를 포함한 일련의 컨테이너 도구(tool)들과 함께 동작한다.

도커(Docker)

  • 도커(Docker)는 리눅스의 응용 프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화하는 오픈 소스 프로젝트이다.
  • 도커 컨테이너는 어떤 소프트웨어의 실행에 필요한 모든 것을 포함하고 감싼다.
  • 컨테이너에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다.
  • 따라서, 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다.

컨테이너(Container) 및 운영 체제 수준 가상화

  • 정식 명칭은 운영 체제 수준 가상화(operating-system-level virtualization)이며, 이는 컨테이너(container), 소프트웨어 컨테이너(software container), 가상화 엔진(VE, Virtualization Engine), Jail이라고도 부른다.
  • 컨테이너는 운영 체제의 커널이 하나의 사용자 공간 인스턴스가 아닌, 여러 개의 격리된 사용자 공간 인스턴스를 갖출 수 있도록 하는 서버 가상화 방식이다.

컴퓨터 클러스터(Computer Cluster)

  • 클러스터(Cluster)는 집합이라는 의미를 가지고 있다.
  • 컴퓨터 클러스터는 여러 대의 컴퓨터들이 연결되어 하나의 시스템처럼 동작하는 컴퓨터들의 집합을 말한다.
  • 컴퓨터 클러스터는 일반적으로 고속의 근거리 통신망(LAN)으로 연결된다.

커널(Kernel)

  • 컴퓨터 운영 체제(OS)의 핵심이 되는 컴퓨터 프로그램 중 하나이다.
  • 시스템의 모든 것을 완전히 통제한다.
  • 운영 체제의 응용 프로그램 수행에 필요한 여러 가지 서비스를 제공한다.
  • 응용 소프트웨어와 컴퓨터 하드웨어를 연결한다.
  • 보안 / 자원 관리 / 하드웨어 추상화(abstraction)의 역할을 가진다.

kernel

인스턴스(Instance) 및 가상 머신(Virtual Machine)

  • 인스턴스와 가상 머신이 완전히 같지는 않지만, 개념적인 부분은 거의 같으므로 여기서는 같은 뜻으로 이해하려고 한다.
  • 구글 클라우드에 의하면, 인스턴스는 Google 인프라에서 호스팅(서버 컴퓨터를 임대해 주는 것)되는 가상 머신이다.
  • 즉, 인스턴스 = 비용 지불이 완료된 또는 현재 동작 중인 가상 머신(VM)
  • 가상 머신(또는 인스턴스)는 컴퓨팅 환경을 소프트웨어로 구현한 것, 즉 컴퓨터를 에뮬레이션(복제)하는 소프트웨어이다.
  • 가상 머신상에서 운영 체제나 응용 프로그램을 설치 및 실행할 수 있다.

정리

  • 가상 머신의 스펙을 기반으로 활성화된 서버 또는 환경이 인스턴스이다.
  • 이 인스턴스에는 Docker를 이용하여 만든 여러 개의 컨테이너를 집어넣을 수 있다.
  • 이 컨테이너들 안에는 어떤 동작을 수행하는 어플리케이션과 그 어플리케이션이 정상적으로 작동하기 위한 환경이 같이 포장되어 있다.
  • 많은 수의 컨테이너들을 좀 더 편하고 효율적으로 관리할 수 있도록 도와주는 것이 쿠버네티스이다.

References

Comments