DevOps를 위한 도커 이해

2021. 5. 1. 23:23공부/오픈소스를 활용한 DevOps 환경 이해

반응형

IT 인프라 운영방식의 전환

- IT 인프라 운영은 클라우드 컴퓨팅 환경으로 급속히 전환되고 있음

 

클라우드 컴퓨팅 가상화

- 클라우드 컴퓨팅의 핵심 기술은 '가상화'

클라우드 컴퓨팅

기존의 서버, 스토리지, 네트워크 등의 하드웨어 위에서 동작하는 가상화 환경

하드웨어 구매, 운영유지를 효과적으로 관리하여 비용 절감

가상화

물리적인 하드웨어를 논리적으로 추상화

가상화를 통해 유휴 자원의 사용 효율성을 증대

CPU, 메모리, 스토리지, 네트워크 등 가상화

가상화의 예

가상화는 대상 및 사용 유형에 따라 다양하게 분류

하드웨어 리소스 별 가상화 :  CPU 및 메모리 가상화, 스토리지 및 네트워크 가상화

사용 유형 별 가상화 : 서버 가상화, 데스크톱 가상화, 데이터 및 애플리케이션 가상화 등

 

가상화의 방법

가상 머신 기반 가상화, 컨테이너 기반 가상화

 

가상 머신 기반 가상화

하이퍼바이저와 가상머신을 통해 하드웨어를 효과적으로 운영

 

가상 머신

  • 컴퓨팅 환경(하드웨어)을 소프트웨어로 모방하여 구현한 것
  • 운영체제 및 애플리케이션을 설치, 운영 가능
  • 하나의 하드웨어에서 다수의 가상 머신을 구동하여 독립적인 역할 수행

하이퍼바이저

  • 하드웨어 위에서 가상 머신을 구동하게 해주는 것
  • 하드웨어와 가상 머신 사이에서 중간자 역할 (자원 할당 및 분리)

컨테이너 기반 가상화

컨테이너 : 모듈화 되고 격리된 공간을 의미 (화물 컨테이너와 동일 개념)

2000년대 중반 리눅스 LXC(LinuxX Container) 등장

실행하기 위한 모든 구성을 패키징하여 쉽게 배포, 실행

컴퓨팅 환경이 바뀌거나 이동되더라도 안정적인 실행 보장

도커

-> 2013년 등장한 컨테이너 기반 가상화 도구

도커 엔진을 통한 컨테이너를 관리

이식성을 위해 애플리케이션을 표준화된 유닛으로 패키징

도커 이미지 - 라이브러리, 시스템 도구, 코드, 런타임 등 실행에 필요한 파일

도커 컨테이너 - 도커 이미지가 실행된 인스턴스

도커를 사용하는 이유

애플리케이션 운영 표준화

지속적 배포, 전달 및 안정적 서비스 제공 속도 증대

서비스 제공을 위한 노력 감소, 자원 사용률 증대

비용 절감

도커의 기반 기술

name space

  • PID (Process ID) - 프로세스 격리
  • NET (Networking) - 네트워크 인터페이스 관리
  • IPC (InterProcess Communacation) - 공유 통신 자원 관리
  • MINT (Mount) - 파일 시스템 마운트 포인트 관리
  • UTS (Unix Time Sharing) - 호스트명, 도메인명 관리

cgroups (control groups)

  • 자원의 할당 관리
  • 프로세스 그룹 별로 자원의 사용을 제한

Union file system

  • 가볍고 빠른 읽기 전용 레이어 사용
반응형