티스토리 뷰

반응형

도커란?

도커(Docker)는 애플리케이션을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트

 

LXC 구조와 도커 구조

LXC(LinuX Container) 구조 : 여러 개의 컨테이너가 다수의 애플리케이션 서버처럼 동작할 수 있음

- 가상공간 제공 (리눅스 커널)

  • cgroups(Control Groups) : CPU, RAM 등 자원을 원하는 만큼 격리된 프로세스에 할당
  • namespaces : 프로세스를 독립시켜주는 가상화 기술

도커 구조 : LXC를 좀 더 효율적으로 생성/관리/배포할 수 있도록 컨테이너 관련 작업을 효율적으로 하기 위해 만들어짐

- LXC는 하나의 컨테이너에 여러 응용 프로그램을 사용하는 반면, 도커는 컨테이너 당 하나의 응용 프로그램 사용 권장

- Snapshop(이미지 백업 기능)이 LXC에는 없지만 도커에는 캡처 기능 존재

  • 컨테이너의 보안 및 격리 관점에서 더 많은 유연성을 가짐
  • 업데이트 시 서로 간의 간섭 받지 않음
  • 마이크로서비스 아키텍처를 구성하는 것에 효율적

도커 이미지와 컨테이너

가상 머신과 컨테이너는 기술적으로 분명한 차이가 존재함 

  • 애플리케이션 서버로 사용한다는 점 유사
  • 다수의 애플리케이션을 한 호스트에서 운용 가능

Git과 Docker 기반의 배포(응용)

서버 여러 대에 어플리케이션을 배포하는 방법으로 서버 한 대에 Docker 이미지를 생성할 때와 달리 Docker 이미지를 여러 서버에 전달해야 하기 때문에 Docker 레지스트리 서버를 구축하여 배포

1) Docker 이미지 생성 (Git 저장소에 개발한 프로그램을 Docker 이미지로 저장 후 git push)

2) Docker 레지스트리에 Push (-> docker pull로 Docker 레지스트리에 받아서 사용 가능)

 

쿠버네티스란?

쿠버네티스(kubernetes)는 디플로이 자동화, 스케일링, 컨테이너화된 애플리케이션의 관리를 위한 오픈 소스 시스템으로서 구글에 의해 설계되었고 현재 리눅스 재단에 의해 관리

  • 디플로이 : 컨테이너화된 애플리케이션의 관리 자동화
  • 목적 : App 컨테이너 배치 / 스케일링 / 운영 자동화 플랫폼 제공
  • 주요 기능
    • 여러 서버에서 컨테이너 관리
    • 컨테이너 대규모 업데이트
    • 컨테이너 가용성을 위한 부하분산
    • 컨테이너 모니터링
    • 컨테이너 간 가상 네트워크 관리
    • 컨테이너의 쉽고 빠른 배포
    • 장애 발생 시 자동 복구 
  • 온프레미스 환경에 도입 시 클러스터 구축 및 운용은 기술적 난이도가 높음
  • 퍼블릭 클라우드가 제공하는 서비스를 이용하는 경우 유리
  • ex) Amazon EKS(Elastic Kubernetes Service), GKE(Google Kubernetes Engine), AKS(Azure Kubernetes Service)

Kubernetes Master : 노드 관리

Kubernetes Node 내 Pod : 도커 컨테이너 동작

- Kube-Proxy (네트워크 담당) 을 통해 Pod에 접근

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
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
글 보관함