클라우드 컴퓨팅 특징
- 하드웨어 장비 가상화로 컴퓨팅 자원의 활용도 향상
- 사업자는 컴퓨팅 자원 구매와 유지보수 비용 절감
- 환경 구축을 위한 공간 확보 및 인력 채용같은 고정비용 절약
- 컴퓨팅 자원 조달시간 단축
- 용량증설 시 즉시 확장 가능
가상화(Virtualization) 개요
물리적인 컴포넌트(Components, HW장치)를 논리적인 객체로 추상화 하는 기술
가상화(Virtualization) 종류
- 서버가상화(Server Virtualization): 가상화 가능 기술인 하이퍼바이저(Hypervisor) 사용
- 데스크톱 가상화(Virtual Desktop Infrastructure, VDI): 서버의 자원 활용
- 어플리케이션 가상화(Application Virtualization): 응용프로그램 캡슐화
하이퍼바이저(Hypervisor) 개요
하드웨어를 가상화를 통해 하드웨어와 각각의 가상머신들을 관리하는 가상머신모니터(VMM, Virtual Machine Monitor)와 같은 중간관리자
하이퍼바이저(Hypervisor) 위치와 역할에 따른 분류
Type1
- 베어메탈(Bare-metal) 기반으로 하드웨어 위에서 바로 구동
- 하이퍼바이저가 다수의 VM들을 관장
Type2
- 하드웨어 위에 호스트운영체제가 있고, 그 위에서 하이퍼바이저가 다른 응용프로그램과 유사한 형태로 동작
- 설치가 용이하고 구성이 편리
- Type1보다 성능이 떨어짐
하이퍼바이저의 가상화 방식에 따른 분류
전가상화(Full-Virtualization)
- 컴퓨팅 시스템의 하드웨어 리소스를 완전하게 가상화 하는 방식
- 그 위에서 동작하게 될 게스트OS의 수정 불필요
- 호스트(Host)형 가상화
- CPU의 가상화 지원기술(VT, Virtualization Technology)와 같은 하드웨어 기능을 일부 지원
- MS윈도우부터 리눅스까지 다양한 OS적용이 용이
- 게스트OS HW 접근 요청 -> CPU의 VT가 VMM에게 HW접근 요청 -> 호스트OS가 HW제어 요청
- 제품: VMWare(VMWare), Hyper-V(MS)
반가상화(Para-Virtualization)
- 하드웨어를 완전히 가상화하지 않는 방식
- 하이퍼바이저가 하드웨어 위에서 직접 실행
- Native, Bare-metal 가상화
- 하드웨어에 대한 제어권을 하이퍼바이저(VMM)가 가지고 있음
- 게스트OS는 자신이 직접 하드웨어를 제어하지 못하기 때문에 하이퍼바이저의 커널드라이버와 통신하기 위한 수정이 필요
- 게스트OS에 대한 수정 때문에 OS소스코드에 대한 접근이 가능해야 함
- 제품: Xen(시트릭스)
전가상화와 반가상화 비교
컨테이너의 개요
컨테이너(Container)는 모듈화되고 격리된 컴퓨팅 공간 또는 컴퓨팅 환경을 의미하며, 시스템 환경 의존성을 탈피하고 안정적으로 구동
가상머신 방식과 컨테이너 기반 가상화 방식의 차이점
도커(Docker)의 개요
리눅스의 응용프로그램들을 소프트웨어 컨테이너 안에 배치시키는 일을 자동화 하는 오픈소스 프로젝트
도커(Docker)의 특징
- 리눅스 컨테이너(LXC)기술 기반
- 이식성, 이동성, 유연성 향상
- 컨테이너 이미지 생성 기능 제공으로 원격 배포하여 고도의 분산 시스템 생성 가능
- 레이어 기반의 이미지 관리
도커의 써드파트, 쿠버네티스(Kubernetes) 개요
엔터프라이즈급 컨테이너 배포 및 관리를 위해 구글에서 공개한 대표적인 프로젝트이며, 다수의 컨테이너의 실행을 관리 및 조율하는 컨테이너 오케스트레이션(Orchestration)이 주역할
쿠버네티스(Kubernetes) 특징
- Gmail과 Google Drive 운영환경에 사용
- 다양한 테스트를 만족하는 안정적인 솔루션
- 기술자료가 매우 풍부
- Fault-tolerance
- Vendor Lock In(벤더 종속성)이 이전보다 좀더 자유로워짐
- 시스템의 경량화
- 마이크로서비스의 용이함
- 컨네이너의 이동성
- 스케일링 향상
- 유연한 결합성
쿠버네티스(Kubernetes) 오케스트레이션 기능
쿠버네티스(Kubernetes) 아키텍처
쿠버네티스(Kubernetes) 구성요소
- Kubernetes Master: 클러스터 전체를 관리
- Worker Node: 컨테이너가 배포되는 가상 또는 물리 머신
- Pod: 쿠버네티스에 의해 배포 및 관리되는 컨테이너들의 묶음 단위
- kubectl커맨드 인터페이스: Kubernetes Master 관리
- API Server: 유저(User Interface, UI)로 부터의 요청이나, 마스터-노드간의 통신 담당
- Etcd: 클러스터의 DB역할(노드 및 클러스터의 설정값과 상태 저장)
- 스케쥴러: Pod의 배포 및 서비스에 필요한 리소스 할당 시 적절한 노드에 할당하는 역할
- 커트롤러 매니저: Pod의 볼륨(volum, 저장공간)조절, 동적으로 추가 또는 삭제되는 Pod에 대한 라벨 할당, 복제, 여러 Pod의 그룹핑 서비스 시 로드밸런싱 등을 관리
- 노드: 마스터에 의해 명령을 받고 실제 작업을 수행하는 서비스 컴포넌트
- Kubelet: 마스터의 API 서버와 통신담당. 수행할 명령을 받거나 노드의 상태를 마스터로 전달
- Kube-proxy: 노드에 들어오는 네트워크 트래픽을 Pod내의 컨테이너에게 라우팅. 노드와 마스터간의 네트워크 통신을 관리
쿠버네티스(Kubernetes) 오케스트레이션 플랫폼 비교
클라우드 기술의 변혁을 가져온 DevOps 개념
소프트웨어 개발과 정보기술 전문 운영자 간의 소통과 협업을 강조하는 개발 환경
DevOps 배경
클라우드의 등장으로 서버의 세팅과 관리가 자유로워짐에 따라 개발과 운영의 경계가 허물어짐
쿠버네티스(Kubernetes) 동향
- 오픈스택(OpenStack) 플랫폼과 통합
- MS 쿠버네티스 기반의 컨테이너 배포 플랫 개발사 인수 후 Azure에 쿠버네티스 기반 서비스 통합
- IBM 자사 클라우드 컨테이너 서비스에서 쿠버네티스 지원
쿠버네티스(Kubernetes) 전망
- 가상머신의 장점인 고수준의 프로세스 분리 기능은 곧 컨테이너 기술의 단점
- 동일한 운영체제 커널을 공유하기 때문에 보안이나 안정성 측면에 잠재적인 문제 보유
- 컨테이너 기반의 가상화가 기존 VM 기반의 가상화 보다 구동상 오버헤드가 적지만, 네이티브 수준의 속도를 제공하지는 못함
- 서버 가상화 기술과 서로의 약점을 보완하여 공존할 것으로 전망
출처: https://www.spri.kr/posts/view/22524?code=issue_reports
SPRi - 소프트웨어정책연구소 : 이슈리포트
저작자안성원 작성일 2018-12-10 조회수 8794 ■ 요 약 가상화 기술은 클라우드 컴퓨팅을 가능하게 하기 위한 기반기술이다. 서버 자원의 효율적인 활용을 목적으로 등장한 가상화 기술은 크게 하드웨어 기반의 가상화 기술과 소프트웨어 기술로 각각 발전해 왔으며, 클라우드 컴퓨팅에 활용되고 있다. 최근 클라우드 컴퓨팅을 위한 가상화 기술은 컨테이너 기반의 오픈소스 플랫폼들이 대세를 이루고 있다. 이 리포트에서는 클라우드 컴퓨팅 최신 가상화 기술들을
www.spri.kr
'ITPE' 카테고리의 다른 글
제118회 복기 - 1교시 (4) | 2019.05.08 |
---|---|
경량 딥러닝(Lightweight Deep Learning) (0) | 2019.04.26 |
스마트시티(Smart City) 현황 (1) | 2019.04.25 |
사물인터넷(IoT, Internet of Things) 동향 (0) | 2019.04.25 |
알파스타의 인공지능 알고리즘 (0) | 2019.04.25 |