문서 목차
ORKESTRIX설치
KubeVirt 가상화
쿠버네티스 클러스터 내에서 가상머신(VM)을 컨테이너처럼 통합하여 오케스트레이션 할 수 있게 합니다. kubevirt manager 웹 UI로 VM을 생성·관리할 수 있습니다.
QUANTUM C&S
쿠버네티스 클러스터 내에서 가상머신(VM)을 컨테이너처럼 통합하여 오케스트레이션할 수 있게 합니다. kubevirt-manager 웹 UI로 VM을 생성 · 관리할 수 있습니다.
하드웨어 가상화(KVM) 가속을 사용합니다. 클러스터 노드에 중첩 가상화(nested virtualization)가 활성화되어 있어야 합니다.
설정값
inventory/qks/group_vars/all/all-k8s.yaml:
qks_kubevirt_enabled: true
qks_kubevirt_version: v1.9.0
qks_kubevirt_useEmulation_enabled: false
qks_kubevirt_virtmanager_fqdn: "kv.{{ kube_default_domain }}"
실행
./install.sh ubuntu plays/qks-kubevirt.yaml
설치 흐름
./install.sh ubuntu plays/qks-kubevirt.yaml
├─ 1. kubevirt-manager 접속 도메인을 각 노드 /etc/hosts에 등록
├─ 2. KubeVirt Operator + CR 배포
├─ 3. FeatureGate 설정(VMPersistentState/HotplugVolumes/DataVolumes/Snapshot)
├─ 4. CDI(Containerized Data Importer) Operator + CR 배포
├─ 5. kubevirt-manager(웹 UI) 배포 + Ingress
├─ 6. VM 이미지 카탈로그 등록(Ubuntu/Windows 등, containerDisk 방식)
├─ 7. virt-api/virt-handler 준비 상태 확인
└─ 8. 커스텀 인스턴스 타입 생성(c1m2 ~ c16m32)
설치 확인
kubectl get pods -n kubevirt
virt-api, virt-controller, virt-handler(워커 노드 수만큼), virt-operator, cdi-*, kubevirt-manager 파드가 모두 Running이어야 합니다.
kubectl get nodes -o custom-columns=NAME:.metadata.name,KVM:.status.allocatable.devices\\.kubevirt\\.io/kvm
워커 노드에 KVM 장치가 할당되어 있어야 합니다.
실제 동작 확인
테스트 VM을 하나 생성해 실제로 부팅되는지 확인합니다:
kubectl apply -f - <<EOF
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
metadata:
name: test-vm
namespace: kubevirt
spec:
domain:
devices:
disks:
- name: containerdisk
disk:
bus: virtio
resources:
requests:
memory: 1Gi
volumes:
- name: containerdisk
containerDisk:
image: docker.io/quantumcns/ubuntu2204-lts:v1.0
EOF
kubectl get vmi -n kubevirt -o wide
PHASE: Running, READY: True, IP가 할당되어 있으면 정상입니다. 확인 후 정리:
kubectl delete vmi test-vm -n kubevirt
웹 UI 확인:
curl -k -s -o /dev/null -w "%{http_code}\n" https://<qks_kubevirt_virtmanager_fqdn>/
200이 나오면 정상입니다.