◈ 클라우드(서비스)

예전에는 하이퍼바이저 기반으로 구현(VMware ESXi + vCenter = vShpere) 등

◇ 구현 기술

 도커(컨테이너) + 오케스트레이션(스웜/쿠버네티스)

 -> 기존 하이퍼바이저 보다 가벼움

 -> vSphere7은 + Kubernetes 지원 (하이브리드 형태)

클라우드 현황 

- IT 공룡들의 경쟁

- 실리콘 밸리 핵심 기업: FAANG(Facebook/Amazon/Apple/Netflix/Google)

- 클라우드 4: AMIG(Amazon AWS/Microsoft Azure/IBM Bluemix/Google Cloud)

- 한국은? 규제, 기술 격차?

 

◇ 클라우드 기반 서비스

▶ Amazon AWS

   - EC2/EMR/RDS ...

   - Elastic Computing Cloud/Elastic MapReduce ...

   - Simple Storage Service, Relational Database Service ...

▶ MS Azure

▶ 구글 드라이브

   - 클라우드 디스크 + 오피스 + PDF viewer, ...

▶ 드랍박스, N드라이브, 다음 클라우드, U클라우드 ...

▶ 해외: Oracle 18"c", MSOffice.com, Dropbox, Adobe ...

▶ 국내: KT Cloud, Naver Cloud, NHN 토스트 ...

◇ 하이브리드 클라우드

▶ 여러개의 클라우드를 같이 사용

   - 줌(AWS/Azure/Oracle), iCloud(Bluemix/Google Cloud)

   - 하이브리드 형태를 가장 잘 지원하는 것이 Kubernetes 다?

 

◇ 클라우드 구현 기술

- 클라우드를 구축하기 위한 가능 기술(Enabling Technology)

  가상화 vs 컨테이너 기반 가상화

- 가상화

  Hypervisor로 통칭

  VMware ESXi(+vCenter), Hyper-V, Xen, VirtualBox ...

  서버 활용도가 높아짐 + 개별 VM은 느리짐(10~15%)

- 컨테이너 기반 가상화

  도커(Docker) + 쿠버네티스(Kubernetes)

  서버 활용도가 높음 + 개별 VM?이 가벼움

▶ 하이퍼바이저 기반 가상화의 특징

- 장점

  서버 Utilization 향상(80%)

  시스템 가상화로 인해 다양한 게스트 OS를 실행할 수 있음, 윈도우/리눅스/MacOS/NAS ...

- 단점

  물리시스템과 게스트 OS간의 가상화 기능으로 인한 성능 저하... 약 10~15% 정도의 오버헤드

  호스트 OS와 게스트 OS간의 기능 중복(스케줄링 등)

▶ 도커의 성능

- 오버헤드가 3% 이내, 가상화는 10% 내외?

- 현재 네트워크 오버헤드도 상당히 줄었음.

▶ 듀얼모드 vs 싱글모드

- vSphere(VM) + kubernetes (container) -Redhat/VMware

- Docker/Kubernetes only - google

 

◇ 컨테이너 기반 가상화

- 서버: 리눅스만 사용/ 컨테이너(VM)끼리 커널을 공유

- 현재 대부분의 서버가 유닉스/리눅스, 윈도우는 많지 않음...

- 기존 가상화와 다른 개념: 하드웨어 가상화가 아닌 실행 환경 분리, 각 컨테이너간 영향을 분리

 

▶ 기술적 특징

- 모든 컨테이너들이 동일 OS 커널을 공유

- 독립적인 스케줄링이나 CPU/메모리/디스크/네트워크를 가상화 하지 않음.

- 리눅스의 특수 기능(LXC)을 사용한 실행 환경 격리를 응용

- 리눅스에서만 사용

- 처음에는 우분투에서 현재 리눅스 배포판에서 사용 가능(Fedora, RHEL, ...)

- 현재는 LXC -> Libcontainer -> RunC(표준)을 사용해 우분투 의존도에서 해방

- 다른 OS(윈도우/OSX)에서 사용하려면 (도커와는 관련 없음?), 일반 하이퍼바이저(경량)가 있어야 함.

- Windows Container 

 

▶ 도커의 특징

- hub.docker.com 참고

- 가볍다? 똑똑하다?

- 많은 사람들이 자기가 구축한 이미지를 공유(도커허브): 구글, 오라클과 같은 회사에서 자사의 S/W 배포 방법으로 채택

- 에코 시스템? : 도커기반/활용 기술의 활성화, 도커 컴포즈, 스웜, 구버네티스

 

▶ 도커의 기술적 특징 (LXC) - Linux Container

- 시스템 레벨 가상화

- cgroup(Control groups): CPU/메모리/디스크/네트워크 자원을 할당

- Namespaces(Namespace Isolation): 프로세스트리, 사용자 계정, 파일시스템, IPC ... 호스트와 별개의 공간 설정

- chroot(change root) 명령어에서 발전: chroot jail, chroot 상의 폴더에서 외부 디렉토리 접근 안됨.

- 도커는 실행할 때 시스템 관리자 권한이 필요함(sudo~), 잠재적인 보안 취약점 있음(시큐어코딩)

 

▶ 도커의 기술적 특징 - Libcontainer

- 우분투 의존성을 해결하기 위해 LXC외에 Libcontainer 제작, 실행 드라이버(exec driver)라고 부름

- native(libcontainer), lxc(LXC)

 

▶ 도커의 기술적 특징 - containerd/runC

- 도커 1.11이후

- 기존 방식과 최신 방식의 차이: containerd/runC 기반의 도커

- containerd: 컨테이너를 실행하고 노드에서 이미지를 관리하는데 필요한

 

▶ 도커의 기술적 특징 - LXD

- 우분투를 만든 캐노니컬에서 만든 컨테이너 솔루션

- 기존의 LXC에 보안 개념까지 추가: Security by default, root가 아니어도 컨테이너 생성 가능

- 도커는 Application Container, LXD는 Machine Container

- LXD는 Contain "Hypervisor", 경쟁 기술이라기 보다는 보완 관계(도커와 병행 가능)

 

 

 

 

 

 

 

 

'IT > 도커' 카테고리의 다른 글

도커교육 -1일 (실습)  (0) 2021.02.09
도커 1  (0) 2021.01.26
Posted by jk.jeong
,