K-pass 전문가 과정 실습



1. Hypervisor 기술

개념

  • Hypervisor는 물리적인 하드웨어에서 **가상 머신(Virtual Machine, VM)**을 생성하고 관리하는 기술입니다.
  • VM은 독립적인 운영 체제와 애플리케이션을 실행할 수 있는 논리적인 시스템으로, 물리적 하드웨어를 가상화하여 여러 개의 VM을 실행합니다.

Hypervisor의 종류

  1. Type 1 (Bare-Metal Hypervisor):
    • 물리적인 하드웨어 위에 직접 설치되며, 별도의 호스트 운영 체제를 필요로 하지 않습니다.
    • 예: VMware ESXi, Proxmox VE, Microsoft Hyper-V, KVM.
  2. Type 2 (Hosted Hypervisor):
    • 호스트 운영 체제 위에서 동작하며, 호스트 OS의 리소스를 사용해 가상 머신을 실행합니다.
    • 예: VMware Workstation, VirtualBox.

당신의 예시:

  • ESXiProxmox VE를 물리적인 서버(바이메탈)에 설치하면, 이는 **Hypervisor 기술(Type 1)**을 사용하는 것입니다.
    • 예: Proxmox를 설치하면 여러 VM(Ubuntu, Windows 등)을 실행할 수 있습니다.
    • VM마다 독립된 커널과 운영 체제를 실행합니다.
    • 이 환경에서는 각 VM이 독립적인 "컴퓨터"처럼 동작합니다.

2. Container 기술

개념

  • **컨테이너(Container)**는 하드웨어 대신 운영 체제를 가상화하는 기술입니다.
  • 컨테이너는 호스트 OS의 커널을 공유하며, 애플리케이션과 그에 필요한 라이브러리, 종속성만을 포함하여 가벼운 실행 환경을 제공합니다.
  • 하드웨어 수준이 아닌 운영 체제 수준의 가상화를 수행합니다.

특징

  • 컨테이너는 매우 가볍고 빠릅니다.
  • 각 컨테이너는 독립적이지만, 호스트 OS 커널을 공유합니다.
  • 컨테이너는 VM보다 리소스 소비가 적고, 밀도가 높습니다(즉, 동일한 하드웨어에서 더 많은 컨테이너를 실행 가능).

당신의 예시:

  • UbuntuMinikube를 설치하고, Docker 엔진을 사용하여 컨테이너를 실행하면, 이는 Container 기술을 사용하는 것입니다.
    • Docker 컨테이너는 호스트 Ubuntu OS의 커널을 공유하며, 각 컨테이너는 필요한 애플리케이션과 라이브러리만 포함합니다.
    • 예: Minikube는 Kubernetes 클러스터를 컨테이너 환경에서 실행하기 위한 도구로, Docker 컨테이너를 통해 Pod(컨테이너 그룹)을 실행합니다.



 

실습 목표 : 컨테이너 이미지 생성 및 컨테이너 배포를 통한 MSA application 구축 

실습 절차 : 

  1. 가상머신 생성 - VMware 
  2. 클러스터 구축 (컨테이너화 된 App을 관리하기 위한 Management 도구) - Minikube
  3. 컨테이너 엔진 구축 - Podman, Docker 
  4. 배포파일 설정, DB 구축 - Redis, Mysql  
  5. War 파일 생성 - JDK8
  6. 컨테이너 이미지 생성 및 업로드 - Docker hub 
  7. 컨테이너 배포 - Minikube 

 

오류 1: Kubectl get pods 명령어 실행 시, Connection to the server refused 
- 쿠버네티스의 모든 통신은 kube-api-server를 통해 통신 

- 클러스터의 Api 서버가 동작중인지 확인 필요, kubeconfig 파일 설정 확인 필요