◈ 클라우드(서비스)
예전에는 하이퍼바이저 기반으로 구현(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 |