更新时间:2025-04-27 GMT+08:00
安装虚拟机运行时支持
- 准备工作
- 下载kubectl和kubeconfig
- 从集群控制台下载客户端kubectl和用户配置文件kubeconfig,并将它们拷贝到客户端机器的/home目录下。
- 登录到您的客户端机器,配置kubectl:
cd /home chmod +x kubectl mv -f kubectl /usr/local/bin mkdir -p $HOME/.kube mv -f kubeconfig.json $HOME/.kube/config kubectl config use-context internal
- 配置完成后,可以通过以下命令查看Kubernetes集群信息:
kubectl cluster-info
- 执行以下命令获取KubeVirt的最新版本号:
export VERSION=v1.5.0
- 下载kubectl和kubeconfig
- 在集群的API Server添加Aggregation Layer证书转发
登录到集群管理节点的manifests目录/var/paas/kubernetes/manifests,编辑kube-apiserver.manifest文件,添加以下参数,进行修改API Server配置:
--proxy-client-key-file=/srv/kubernetes/aggregation-tls.key --proxy-client-cert-file=/srv/kubernetes/aggregation-tls.crt
- 安装kubevirt-operator
在客户端机器的/home目录中,执行以下命令:
kubectl create -f "https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-operator.yaml"
如安装成功,您将看到如下输出:namespace/kubevirt created customresourcedefinition.apiextensions.k8s.io/kubevirts.kubevirt.io created priorityclass.scheduling.k8s.io/kubevirt-cluster-critical created clusterrole.rbac.authorization.k8s.io/kubevirt.io:operator created serviceaccount/kubevirt-operator created role.rbac.authorization.k8s.io/kubevirt-operator created rolebinding.rbac.authorization.k8s.io/kubevirt-operator-rolebinding created clusterrole.rbac.authorization.k8s.io/kubevirt-operator created clusterrolebinding.rbac.authorization.k8s.io/kubevirt-operator created deployment.apps/virt-operator created
- 安装KubeVirt CR
- 下载并修改kubevirt的CR文件
- 下载KubeVirt的CR文件:
curl -L https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-cr.yaml -o kubevirt-cr-cce.yaml
- 编辑kubevirt-cr-cce.yaml文件,添加以下内容:
apiVersion: kubevirt.io/v1 kind: KubeVirt metadata: name: kubevirt namespace: kubevirt spec: certificateRotateStrategy: {} configuration: developerConfiguration: {} customizeComponents: patches: - resourceType: DaemonSet resourceName: virt-handler patch: '{"spec": {"template": {"spec": { "volumes": [ {"name": "kubelet-pods", "hostPath": {"path": "/mnt/paas/kubernetes/kubelet/pods"}}, {"name": "kubelet-pods-shortened", "hostPath": {"path": "/mnt/paas/kubernetes/kubelet/pods"}}, {"name": "device-plugin", "hostPath": {"path": "/mnt/paas/kubernetes/kubelet/device-plugins"}} ], "containers": [{ "name": "virt-handler", "volumeMounts": [ {"name": "kubelet-pods", "mountPath": "/mnt/paas/kubernetes/kubelet/pods", "mountPropagation": "Bidirectional"}, {"name": "device-plugin", "mountPath": "/mnt/paas/kubernetes/kubelet/device-plugins"} ] }] }}}}' type: strategic flags: handler: kubelet-pods-dir: /mnt/paas/kubernetes/kubelet/pods kubelet-root: /mnt/paas/kubernetes/kubelet
- 保存修改并执行:
kubectl create -f ./kubevirt-cr-cce.yaml
如顺利执行,您将看到以下输出:kubevirt.kubevirt.io/kubevirt created kubevirt.kubevirt.io/kubevirt created
- 下载KubeVirt的CR文件:
- 等待安装情况
watch -n 1 kubectl get kubevirt.kubevirt.io/kubevirt -n kubevirt -o=jsonpath="{.status.phase}"
当状态从Deploying变为Deployed时,表示安装成功。
- 下载并修改kubevirt的CR文件
- 确认硬件虚拟化支持
- 执行以下命令安装虚拟化管理软件包libvirt-client:
sudo apt-get install libvirt-client
- 使用以下命令,验证服务器是否支持虚拟化:
virt-host-validate qemu
- 如果出现以下情况,则表示服务器不支持硬件虚拟化:
QEMU: Checking for hardware virtualization: FAIL (Only emulated CPUs are available, performance will be significantly limited)
- 如果出现FAIL,可以打开KubeVirt的软件模拟,但请注意性能会显著下降:
kubectl -n kubevirt patch kubevirt kubevirt --type=merge --patch '{"spec":{"configuration":{"developerConfiguration":{"useEmulation":true}}}}'
- 如果出现以下情况,则表示服务器不支持硬件虚拟化:
- 执行以下命令安装虚拟化管理软件包libvirt-client:
- 安装virtctl
执行以下命令,安装KubeVirt命令行工具virtctl:
VERSION=$(kubectl get kubevirt.kubevirt.io/kubevirt -n kubevirt -o=jsonpath="{.status.observedKubeVirtVersion}") ARCH=$(uname -s | tr A-Z a-z)-$(uname -m | sed 's/x86_64/amd64/') || windows-amd64.exe echo ${VERSION}-${ARCH} curl -L -o virtctl https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/virtctl-${VERSION}-${ARCH} chmod +x virtctl sudo install virtctl /usr/local/bin
以上步骤将帮助您在UCS本地集群上成功启用VM Runtime。如果您在安装过程中遇到任何问题,请参阅KubeVirt的官方文档或联系华为云技术支持。
父主题: 虚拟机容器混合管理