- 테스트 환경 : Ubuntu 16.04, 2vCore, 8GB Memory, 50GB HDD
- Docker 기본으로 설치되어 있어야 함
1. Minikube 설치 이전 가상화를 지원하는 CPU인지 확인한다.
grep -E --color 'vmx|svm' /proc/cpuinfo
만약 VMware를 사용하는데 여백으로 나올 경우 VM Setting에서 다음 항목을 체크한다.
Processors > Virtualization engine > Virtualize Intel VT-x/EPT or AMD-V/RVI
2. Kubectl을 설치한다.
sudo apt-get update && sudo apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
따끈따끈한 새로운 Kube가 생겼다.
3. Minikube를 설치하고 실행해준다.
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& sudo install minikube-linux-amd64 /usr/local/bin/minikube
자동으로 설치되었다
실행 이후 상태를 확인한다.
minikube start
이모티콘 귀엽다.
익숙한 명령어로 kube가 제대로 실행되는지 확인한다.
4. KVM 시작 이전에 중첩 가상화(?)가 실행되어 있는지 확인해야한다.
cat /sys/module/kvm_intel/parameters/nested
이러면 안된다 함.. 풀어보자.
modprobe -r kvm_intel
modprobe kvm_intel nested=1
이러면 재부팅 이전까지 중첩가상화가 활성화 된다. 재부팅 이후에도 유지하고 싶다면 /etc/modprobe.d/kvm.comf에 들어가서 수정해준다.
다시 확인해서 Y인거 보자.
5. memory와 VM드라이버를 변경해준다.
minikube config -p kubevirt set memory 4096
minikube config -p kubevirt set vm-driver kvm2
6. 진짜 시작한다. 만약 실행 중인 minikube가 있다면 minikube delete로 지워주고 실행해준다.
minikube start -p kubevirt
했는데 오류가 난다면...신에게 기도한다... 나도 오류나서 안됐는데 이유가 두 가지였다.
(1) 루트로 실행해서
(2) 이전에 설정한 옵션이 제대로 안먹어서
echo "options kvm-intel nested=y" >> /etc/modprobe.d/dist.conf
이거 해주고 재부팅하니까 실행 됐다.
그리고 나에게 드는 이상한 예감.... 디스크가 부족해서 실행될거같지 않은 그런 예감...
7. 환경변수를 설정해준다.
# On other OS you might need to define it like
export KUBEVIRT_VERSION="v0.18.0"
# On Linux you can obtain it using 'curl' via:
export KUBEVIRT_VERSION=$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases|grep tag_name|sort -V | tail -1 | awk -F':' '{print $2}' | sed 's/,//' | xargs | cut -d'-' -f1)
echo $KUBEVIRT_VERSION
kubeVirt Operator를 배포해본다.
kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/kubevirt-operator.yaml
Pod 확인해보면 virt-operator이라는 것이 떠있다. running 상태가 될 때까지 기다린다
8. 리소스를 만들어 배포해본다.
get pods 할 때 -w 옵션을 주면 변화가 생길 때마다 알려준다. api, controller, handler가 떠 있는 것을 볼 수 있다.
9. kubernetes가 kubectl를 제공하는것처럼 얘도 virtctl이라는 것을 제공해준다.
curl -L -o virtctl \
https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/virtctl-${KUBEVIRT_VERSION}-linux-amd64
chmod +x virtctl
virt 다운에 문제가 생기면 kubectl krew - 를 이용해서 다운로드 받는다.
--- 여기 참고해서 진행한다.
다운 받으면 됩니다. 헉헉
'Cloud > Kubernetes' 카테고리의 다른 글
Minikube로 KubeVirt 시작하기 (2) (0) | 2019.11.20 |
---|---|
Kubernetes - KubeVirt (0) | 2019.11.19 |
kubernetes pod name 뽑아내기 (0) | 2019.11.14 |
Kubernetes Garbage Collection (0) | 2019.11.08 |
bare-metal server에서 이미지 목록 관리에 대한 궁금증 - kubelet Garbage Collection (0) | 2019.11.07 |