-
kubevirt 설치공부합시다!/Kubernetes 2024. 7. 30. 14:20728x90
음! 오늘은 조금 특별한 그러나 그러 특별하지 않은
kubevirt 설치를 진행해 보겠습니다.
MSA환경으로 구성할 수 없거나 Migration할 수 없는 경우에 가상화 환경을 통해서 workload를 서비스해야 하는 경우에 유용합니다.
1. kubevirt
1.1. Kubernetes add-on으로 libvirt virtual machine 관리가능
1.2. Kubernetes 가상화 API 및 런타임을 사용하여 가상 머신을 정의하고 관리
1.3. container화 할 수없는 workload를 virtual machine 형태로 migration하여 관리
1.4. 현재 최신버젼은 v1.3.0
1.5. 공식 사이트 kubervirt.io
1.6. 깃허브 https://github.com/kubevirtKubeVirt
Managing virtualization workloads on Kubernetes. KubeVirt has 87 repositories available. Follow their code on GitHub.
github.com
2. kubernetes cr(custom resourece): Kubernetes 사용자 정의 리소스
3. kubernetes operator: 사용자 정의 리소스를 사용하여 애플리케이션 및 해당 컴포넌트를 관리하는 쿠버네티스의 소프트웨어 익스텐션
3.1. 지원하는 Container Runtime
3.1.1. containerd
3.1.2. crio4. 최신버젼
https://github.com/kubevirt/kubevirt/releases/tag/v1.3.05. 설치파일: 3개의 파일 다운로드 wget활용
https://github.com/kubevirt/kubevirt/releases/download/v1.3.0/kubevirt-cr.yaml
https://github.com/kubevirt/kubevirt/releases/download/v1.3.0/kubevirt-operator.yaml
https://github.com/kubevirt/kubevirt/releases/download/v1.3.0/virtctl-v1.3.0-linux-amd646. Install
6.1. kubevirt-operator.yaml 파일 다운로드
# wget https://github.com/kubevirt/kubevirt/releases/download/v1.3.0/kubevirt-operator.yaml
# kubectl apply -f kubevirt-operator.yaml
or
# yum install -y jq jq는 commandline json processor
# export KUBEVIRT_VERSION=$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases/latest | jq -r .tag_name)
# echo $KUBEVIRT_VERSION# kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/kubevirt-operator.yaml
6.2. kubevirt-cr.yaml 다운로드
# wget https://github.com/kubevirt/kubevirt/releases/download/v1.3.0/kubevirt-cr.yaml
# kubectl apply -f kubevirt-cr.yaml
or
# kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/kubevirt-cr.yaml
아래 사항은 교육환경에서만 구성, 성능 문제로 인하여 프로덕션환경에는 적합하지 않음.
# kubectl -n kubevirt patch kubevirt kubevirt --type=merge --patch '{"spec":{"configuration":{"developerConfiguration":{"useEmulation":true}}}}'
6.3. 설치 확인
# kubectl get all -n kubevirt
6.4. virtctl 명령어 파일
# cp virtctl-v1.3.0-linux-amd64 virtctl
# chmod +x virtctl
# cp virtctl /usr/bin or /usr/local/sbin
7. Test용 VM 실행, cirros
7.1. vm.yaml 적용
# kubectl apply -f https://raw.githubusercontent.com/kubevirt/kubevirt.github.io/master/labs/manifests/vm.yaml
음 이것보다는
# kubectl apply -f https://kubevirt.io/labs/manifests/vm.yaml
이 주소가 조금은 더 심플하네요!
7.2. vm start & console 접속
# virtctl start testvm
# kubectl get vm
# kubectl get vmis
# virtctl console testvm
login id: cirros
password: gocubsgo
# virtctl stop testvm
# kubectl delete vm testvm
간단한 설치 및 코드
# kubevirt 최신 버젼 확인 export KUBEVIRT_VERSION=$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases/latest | jq -r .tag_name) echo $KUBEVIRT_VERSION # kubevirt operator 설치 kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/kubevirt-operator.yaml # kubevirt cr 설치 kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/kubevirt-cr.yaml # 소프트웨어 에뮬레이션, 프로덕션 환경에서는 사용하지 마세요. 성능저하 kubectl -n kubevirt patch kubevirt kubevirt --type=merge --patch '{"spec":{"configuration":{"developerConfiguration":{"useEmulation":true}}}}' # virtctl 설치 wget -O virtctl https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/virtctl-${KUBEVIRT_VERSION}-linux-amd64 # 설치 확인 kubectl get pods -n kubevirt (node수에 따라서 다름) ------------------------------------------------------------------------ controlplane $ kubectl get pods -n kubevirt NAME READY STATUS RESTARTS AGE virt-api-7fc57db6dd-g4s4w 1/1 Running 0 3m virt-api-7fc57db6dd-zd95q 1/1 Running 0 3m virt-controller-6849d45bcc-88zd4 1/1 Running 0 3m virt-controller-6849d45bcc-cmfzk 1/1 Running 0 3m virt-handler-fvsqw 1/1 Running 0 3m virt-operator-5649f67475-gmphg 1/1 Running 0 4m virt-operator-5649f67475-sw78k 1/1 Running 0 4m ------------------------------------------------------------------------- kubectl -n kubevirt get kubevirt # testvm 실행 및 접속 kubectl apply -f https://raw.githubusercontent.com/kubevirt/kubevirt.github.io/master/labs/manifests/vm.yaml kubectl get vm virtctl start testvm virtctl console testvm
728x90'공부합시다! > Kubernetes' 카테고리의 다른 글
Rocky9 Kubernetes 설치: Rocky9.3 K8S Cluster 구성 (0) 2024.07.04 CNI: weave 초기 설치시 imagepullback error (0) 2024.06.24 Kubernetes (K8S): Metrics Server 설치 (0) 2023.07.06 Kubernetes (K8S): HPA(Horizontal Pod Autoscaling) (0) 2023.07.04 Kubernetes (K8S): Object - 6-1. Storage: emptyDir (0) 2023.07.04