'하이퍼바이저'에 해당하는 글 2건

Minikube 설치를 마친 후 실행만 해주면 쿠버네티스를 맛볼 수 있다. 실행 명령어는!


 > minikube start 



타 프로그램들은 어떻게든 설치를 하고 나면 실행 과정에서 오류가 나는 일은 거의 없다. 하지만 Minikube 는 설치가 잘되더라도(바이너리 파일을 갖다 쓰는 정도이니 설치랄 것도 없지만) 이 Minikube 가 실행되기 까지 많은 설정들이 필요할 수도 있다. 시스템마다 조금씩 다르겠지만 Minikube 를 VM 에서 실행하려면 하이퍼바이저가 필요하며, VM 에서 실행하지 않으려면 Linux 시스템과 docker 가 필요하다. 하이퍼바이저(Hyperviser) 란 VirtualBox 나 VMware, Hyper-V 같이 물리적인 호스트에서 다수의 가상머신(VM) 을 실행할 수 있도록 하여, CPU, 메모리, 네트워크 대역폭 등의 컴퓨팅 자원을 더 효과적으로 사용할 수 있게 하는 도구이다. Windows 에서 Minikube 를 실행하려면 리눅스 환경이 필요하므로 하이퍼바이저가 반드시 필요하다. 하이퍼바이저의 구동 환경 역시 까다롭다. 대부분의 하이퍼바이저는 CPU 가 가상화(indel: VT-x / amd: AMD-v) 를 지원해야 하고 컴퓨터의 Bios 에서 가상화(Virtualization) 같은 가상화 관련 항목이 활성화 되어 있어야 한다. 참고로 지금 내가 사용중인 Windows 10 에서, Home 에디션을 제외하고는 hyper-v 가 설치되어 있으며, Docker Desktop 을 설치하여 hyper-v 를 활성화 시키거나 수동으로 Powershell 에서 활성화를 시켜 따로 하이퍼바이저를 설치하지 않고 진행하였다.



Minikube 실행 전 준비사항

1. CPU 가상화 지원 (체크: SecurAble) 및 Bios 가상화 활성화 확인

2. 하이퍼바이저 설치 (VirtualBox, hyper-V, KVM 등)

3. Minikube 실행시 해당 하이퍼바이저 명시 (default: virtualbox)



오류 메시지


만약 가상화가 활성화 되어 있지 않은 경우 해당하는 오류 메시지를 나타내며 실행을 중지한다. 아래는 하이퍼바이저를 설치했지만 명시하지 않아 default 하이퍼바이저인 virtualbox 가 없다는 오류 메시지이다.


C:\Windows\system32> minikube start

o   minikube v0.35.0 on windows (amd64)

>   Creating virtualbox VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...

@   Downloading Minikube ISO ...

 184.42 MB / 184.42 MB [============================================] 100.00% 0s

!   Unable to start VM: create: precreate: VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path


아래는 로컬에 활성화 되어 있는 Hyper-V 를 명시했지만 외부 가상 스위치가 없다는 오류 메시지이다.


C:\Windows\system32> minikube start --vm-driver=hyperv

o   minikube v0.35.0 on windows (amd64)

>   Creating hyperv VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...

!   Unable to start VM: create: precreate: no External vswitch found. A valid vswitch must be available for this command to run. Check https://docs.docker.com/machine/drivers/hyper-v/


Hyper-V 관리자에서 [가상 스위치 관리자...] 를 클릭하여 Minikube 에 사용할 외부 네티워크 스위치를 생성한다.



다른 하이퍼바이저를 사용할 때도 오류 메시지가 나타난다면 위처럼 메시지를 보고 해결하면 될 것이다. 



정상 동작


C:\Windows\system32>minikube start --vm-driver=hyperv

o   minikube v0.35.0 on windows (amd64)

>   Creating hyperv VM (CPUs=2, Memory=2048MB, Disk=20000MB) ...

-   "minikube" IP address is 192.168.10.163

-   Configuring Docker as the container runtime ...

-   Preparing Kubernetes environment ...

@   Downloading kubelet v1.13.4

@   Downloading kubeadm v1.13.4

-   Pulling images required by Kubernetes v1.13.4 ...

-   Launching Kubernetes v1.13.4 using kubeadm ...

:   Waiting for pods: apiserver proxy etcd scheduler controller addon-manager dns

-   Configuring cluster permissions ...

-   Verifying component health .....

+   kubectl is now configured to use "minikube"

=   Done! Thank you for using minikube!


C:\Windows\system32>minikube status

host: Running

kubelet: Running

apiserver: Running

kubectl: Correctly Configured: pointing to minikube-vm at 192.168.10.163


정상적으로 시작이 되었다면 VM 에 minikube 가 구동되고 있을 것이다. ㅊㅋㅊㅋ!




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,

Minikube 설치

Tool/Kubernetes 2019. 3. 21. 21:07

로컬 머신 솔루션


쿠버네티스의 많은 설치 솔루션 중 가장 접근성이 편한 것이 로컬 머신 솔루션이다. 무료인데다가 PC 나 노트북 등에서 리눅스가 아닌 OS 환경에서도 쉽게(?) 이용할 수 있다. 아무래도 로컬 머신 솔루션은 개발 및 테스트가 목적이라 빠르고 간편한(?) 설치 등의 장점이 있는 반면에 약간의 제약들도 있을 것이다. 어짜피 이것들로 운영은 어려우며 초반에만 가지고 놀 것들이니 대충 써보고 정 붙이지는 말자. 쿠버네티스를 사용하려면 리눅스 환경이 필요한데, Windows 에서 virtualbox 같은 하이퍼바이저를 사용하여 쿠버네티스를 이용할 수 있게 해놓은 솔루션도 있다. 아래는 쿠버네티스의 로컬 머신 솔루션의 일부이다. 


  1. Minikube
    쿠버네티스 공식사이트에서 추천하는 로컬 머신 솔루션이며 Windows/Mac/Linux 에서 사용 가능하고 많은 애드온을 추가할 수 있다. 단일 노드만 지원하므로 다중 노드를 위한 기능은 동작하지 않을 것이다.

  2. Docker Desctop
    Windows/Mac 에서만 사용 가능하며 Docker 설치 후 설정에서 kubernetes 만 체크하면 수 분 내에 설치가 완료된다. 마찬가지로 단일 노드만 지원한다.

  3. Minishift
    Redhat 쿠버네티스 지원 플랫폼인 openshift 를 테스트할 수 있는 도구로, Windows/Mac/Linux 에서 사용 가능하며, 역시 단일 노드.

  4. Microk8s
    리눅스에서만 사용 가능하며 VM 은 필요없다, 마찬가지 단일 노드.

  5. Kubeadm-dind
    dind (Docker IN Docker) 기술로 멀티 노드를 지원하는 솔루션이다. 리눅스에서만 사용 가능,  그냥 배포판을 사용하는 것이...


Windows 사용자라면 고민할 필요없이 Minikube 이다. 다른 솔루션에 비해 모든 OS 와 많은 VM / Addon 을 지원한다. 나 역시 Minikube 를 사용하여 단일 노드로 할 수 있는 거의 모든 것들을 테스트 해 보기로 결정했다. 다음은 리눅스 서버로 클러스트 생성과 멀티 노드 등 나머지 테스트. 마지막에는 호스티드 솔루션(gke, eks)에서 최종 서비스를 하는 걸로.




Minikube 설치


준비할 거 없음. 바로 설치 고고~



1. macOS


- Homebrew 로 설치

$ brew cask install minikube


- 바이너리로 설치

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64 \

  && chmod +x minikube

$ sudo mv minikube /usr/local/bin


* curl -o(output) 옵션은 stdout 출력을 파일에 작성한다. 여러 URL 이나 바이너리 등에 사용한다.



2. Linux


- 바이너리로 설치

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \

  && chmod +x minikube

$ sudo cp minikube /usr/local/bin && rm minikube



3. Windows


- 윈도우즈 패키지 매니저인 Chocolatey 로 설치 (관리자권한 cmd)

> choco install minikube kubernetes-cli


- 바이너리로 설치

minikube-windows-amd64 다운로드 후 minikube.exe 로 이름 변경하고 path 에 추가


- 인스톨러로 설치

minikube-installer.exe 다운로드 후 실행




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,