앱을 돌릴때 필요한 라이브러리, 어플리케이션 자체를 이미지와해서 만들것을 name space와 cgroup을 통해서 시작하는것을 컨테이너라고 생각하면됨
도커가 나오면서 컨테이너가 널리 사용됨
특히 구글에서 컨테이너 관리로 썻던 쿠버네티스가 그런 계기가있음
실행에 필요한것들을 이미지에 다 담고 (이미지는 어디든 갈 수 있음) 도커에 넣고 실행하면 컨테이너가 생성
컨테이너 안에 들어가면 로컬에서 쓰던 기분 (어? 쉘인가?)
도커 이미지 : 실행에 필요한것을 다 담음
컨테이너 : 그 이미지를 분리시킨다음 runC 상태로 돌아가서 그 안에 있던 (이미지) 에플리케이션이 독립된 단위로 실행됨
VM : 은 하이퍼바이져가 들어가 있음 (하이퍼바이저 : 가상화를 해주는 장치 또는 칩)
Container : VM에 필요하던 오버헤드가 없음
이것만 알아둬라
Container 는 Nacespace/Cgroup의 집합 그럼 나는 어떻게 네트워크를 그 안에서 조절할 것이냐 ? 또는 안에서 조절할 부분 or 밖에서 조절할 부분을 구분할 것인가?
• 가상화 기술이란
서버, 스토리지, 네트워크 등의 IT 리소스의 물리적인 성질이나 경계를 가리고, 논리적인 리소스
이용 단위로 변환해서 제공하는 기술
• 목적
인프라를 단순화 시킬 수 있다. (사용자 측면)
유휴장비의활용률을높일수있다.(불필요한장비증설방지)
서비스 장애에 대한 신속한 대응이 가능하다.
TCO(Total Cost of Ownership)를 절감할 수 있다.
신속한 확장이 가능하다. (Scale Out)
• 종류
서버가상화
스토리지 가상화
네트워크 가상화
• 가상화의 목적
– Isolation from other tenant(세입자 - 여러개의 자원을 하나에서 쓰는 형태) – because basically it’s shared resource. – try to be safe from other noisy neighborhood
• Application of virtualization technology
분류
설명
애플리케이션 가상화
특징
• 사용자의 PC에 개별적으로 설치되어 있는 애플리케이션을 가상화를 통해 제공 • 사용자는 필요한 애플리케이션을 자신의 PC에서 매번 설치하지 않고도 즉시 사용 가능
역할
클라우드의 SaaS(Software as a Service) 구현의 기반 기술 제공
데스크톱 가상화
특징
• 서버 측 데스크톱 가상화는 사용자의 데스크톱에서 Windows Vista, Windows 7 등의 이기종의 또 다 른 데스크톱을 가상으로 소유가 가능하게 함 • 클라이언트 측 데스크톱 가상화는 PC 안의 이기종의 가상 데스크톱을 운영 가능 하도록 함 • 데스크톱 가상화를 통한 개인 작업 공간과 회사 작업 공간의 분리가 가능해 짐
역할
클라우드의 DaaS(Desktop as a Service) 구현의 기반 기술 제공
서버 가상화
특징
• 데이터센터 내의 수십 대의 물리적인 서버 워크로드들을 몇 대의 가상 서버로 통합 집적 (Consolidation)하여 물리적인 상면 비용, 관리적인 측면의 비용, Green IT 측면의 전력량을 포함한 서버 자원 활용도를 증대시킬 수 있음
역할
클라우드의 IaaS(Infrastructure as a Service) 구현의 기반 기술 제공
스토리지 가상화
특징
• 필요로 하는 스토리지 공간 대신 Thin-Provisioning이라는 기술을 통해 최소 공간만을 가상으로 할당 하여 서비스 구현이 가능하도록 함 • 이기종의 스토리지 시스템 통합에 사용할 수 있는 환경을 제공
역할
클라우드의 IaaS(Infrastructure as a Service) 구현의 기반 기술 제공
네트워크 가상화
특징
• 하드웨어 어플라이언스 형태로 존재해 왔던 L2, L3, L7 스위치, 네트워크 방화벽, 보안 장비들을 가상 머신으로 구현하고, 네트위킹 자원들이 하나의 공유된 물리적인 환경에서도 내부적으로는 가상화를 통해 분리되어 동작하게 함
역할
멀티 테넌시(Multi-Tenancy)를 갖춘 IaaS 구현의 기반 기술 제공
• 서버가상화
시스템 자원을 공유(pool & share)함으로써 전체적인 시스템의 활용도를 증대시킬 수 있고, 자동화 기술과 함께 적용함으로써 시스템 사용자의 서비스 수준을 보다 향상시켜 줄 수 있다.
하이퍼바이저 : 가상화를 해주는 장치 또는 칩
<서버 가상화 기술>
• 하이퍼바이저(Hypervisor)
프로세서나 메모리와 같은 다양한 컴퓨터 자원에 서로 다른 각종 운영 체제(OS)의 접근 방법을 통제하는 얇은 계층의 소프트웨어
다수의 OS를 하나의 컴퓨터 시스템에서 가동할 수 있게 하는 소프트웨어로 중앙 처리 장치(CPU)와 OS 사이에 일종의 미들웨어로사용 됨
하나의 컴퓨터에서 서로 다른OS를 사용하는 가상 컴퓨터를 만들 수 있는 효과적인 가상화엔진
Bare-Metal(native) Hypervisor
Hosted Hypervisor
Host OS가 필요없다.
Host OS가 없어 오버헤드가 적다.
각 VM별 관리가 유연하다.
자체적인 관리 기능이 없어 별도의 관리 솔루션이 필요하다.
Host OS가 필요하다.(리눅스, 윈도우 등)
Host OS 상에 가상 머신을 배치하므로 오버헤드
가 발생한다.
VM 생성이 간단하다.
다양한 관리 솔루션이 있다.
• 호스트 OS 가상화 vs 하이퍼바이저 가상화
• 가상화유형
– 전 가상화 (full-virtualization)
시스템 전체를 완전히 가상화 하여 시스템의 Bios부터 CPU, Memory, I/O 등을 완전히 에뮬레이션 하여 가상화 하는 방법
장점
단점
• 하드웨어를 완전히 가상화 하기 때문에 Guest OS에 아무런 수정없이 Windows, Linux까지 다양 한 OS를 이용할 수 있다. • 가상머신의 유지보수가 쉽다.
• 전 가상화를 실현하기 위해 CPU의 VT(Virtualization Technology)를 이용하므로 성 능의 저하가 발생한다는 단점이 있다.
– 반 가상화 (para-virtualization)
하드웨어 전체를 가상화 하는 대신에 가상화가 적용된 리눅스 커널을 시스템 부팅 시 적용하는 것으로 모든 장치를 가상화 하는 것은 아님
장점
단점
• 가상머신이 직접 하드웨어를 제어하는 것이 아니 라 하이퍼바이저에게 의뢰, 하이퍼바이저가 제어 를 하기에 높은 성능을 유지할 수 있다.
• 반 가상화를 실현하기 위해서는 가상머신 OS의 커널 일부분을 수정해야 한다. • 가상머신 유지보수가 어렵다. (가상머신 비밀번 호 분실 시 복구 불가능)