文章目录
kubernetes version: v1.18.8
kubevirt version: v0.35.0
安装KubeVirt
-
验证硬件是否支持虚拟化
$ virt-host-validate qemu QEMU: Checking for hardware virtualization : PASS QEMU: Checking if device /dev/kvm exists : PASS QEMU: Checking if device /dev/kvm is accessible : PASS QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS
-
安装KubeVirt
# Pick an upstream version of KubeVirt to install $ export RELEASE=v0.35.0 # Deploy the KubeVirt operator $ kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-operator.yaml # Create the KubeVirt CR (instance deployment request) which triggers the actual installation $ kubectl apply -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-cr.yaml # wait until all KubeVirt components are up $ kubectl -n kubevirt wait kv kubevirt --for condition=Available
如果硬件不支持虚拟化,可以通过以下方法开启软件仿真:
- 编辑kubevirt配置
$ kubectl edit -n kubevirt kubevirt kubevirt
- 添加以下内容:
spec: ... configuration: developerConfiguration: useEmulation: true
-
查看kubevirt组件
$ kubectl get pod -n kubevirt
NAME READY STATUS RESTARTS AGE virt-api-64999f7bf5-85dgb 1/1 Running 0 1m virt-api-64999f7bf5-vh98w 1/1 Running 0 1m virt-controller-8696ccdf44-8rrqs 1/1 Running 0 1m virt-controller-8696ccdf44-qq7tb 1/1 Running 0 1m virt-handler-dv2zb 1/1 Running 0 1m virt-handler-hz9k8 1/1 Running 0 1m virt-handler-zlnzs 1/1 Running 0 1m virt-operator-78fbcdfdf4-jlv58 1/1 Running 0 1m virt-operator-78fbcdfdf4-rbkww 1/1 Running 0 1m
启动虚拟机
-
部署VirtualMachineInstance
kubectl apply -f vmi.yaml
# $ cat vmi.yaml apiVersion: kubevirt.io/v1alpha3 kind: VirtualMachineInstance metadata: name: testvmi-nocloud spec: terminationGracePeriodSeconds: 30 domain: resources: requests: memory: 1024M devices: disks: - name: containerdisk disk: bus: virtio - name: emptydisk disk: bus: virtio - disk: bus: virtio name: cloudinitdisk volumes: - name: containerdisk containerDisk: image: kubevirt/fedora-cloud-container-disk-demo:latest - name: emptydisk emptyDisk: capacity: "2Gi" - name: cloudinitdisk cloudInitNoCloud: userData: |- #cloud-config password: fedora chpasswd: { expire: False }
-
kubectl get pod
NAME READY STATUS RESTARTS AGE virt-launcher-testvmi-nocloud-2gg8h 2/2 Running 0 5m
-
kubectl get vmi
NAME AGE PHASE IP NODENAME testvmi-nocloud 19h Running 172.16.154.205 k8s-node-01
-
通过console访问vmi