一文告诉你,如何在 Kubernetes 的容器引擎中运行 KVM 和 VMware VM!
必须安装和配置Oracle云基础架构命令行界面(CLI)和Kubernetes的容器引擎kubectl CLI。有关更多信息,请参见用于Kubernetes的Container Engine文档:https://docs.cloud.oracle.com/iaas/Content/ContEng/Concepts/contengoverview.htm。你还可以使用Cloud Shell,这是一个可从Oracle云基础架构控制台访问的基于浏览器的终端。 CLI已预先安装并在Cloud Shell中配置。
请按照以下步骤为Kubernetes的容器引擎部署KubeVirt。
步骤一:部署KubeVirt管理员
echo $KUBEVIRT_VERSION
virt-operator-6b5455546b-56dvx 1/1 Running 0 39h
virt-operator-6b5455546b-5pwdj 1/1 Running 0 39h
5.检查虚拟化扩展。当你将Oracle Cloud Infrastructure VM形状与Oracle Linux映像一起使用时,这些形状应默认情况下启用嵌套虚拟化,并且cpuinfo文件应具有VMX标志。使用egrep命令进行检查。
egrep 'svm|vmx' /proc/cpuinfo
步骤二:部署KubeVirt
kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/kubevirt-cr.yaml
另一个二进制文件可快速访问虚拟机的串行和图形端口,并处理启动和停止操作。该工具称为virtctl,你可以从KubeVirt的发行页面中检索它:
curl -L -o virtctl \
https://github.com/kubevirt/kubevirt/releases/download/${KUBEVIRT_VERSION}/virtctl-${KUBEVIRT_VERSION}-linux-amd64
chmod +x virtctl
步骤四:测试KubeVirt
现在是时候测试KubeVirt和Kubernetes的容器引擎了,测试方法是运行遗留的KVM或VMware VM以及容器。KubeVirt提供了一些实验室,让你在尝试遗留的KVM或VMware VM之前对其进行测试。
第一个实验是使用 KubeVirt,它引导你完成在Kubernetes上创建VM实例的过程,然后向你展示如何使用virtctl与其控制台进行交互。
第二个实验是使用容器化数据导入器(CDI)进行实验,向你展示如何使用CDI将VM映像导入到持久卷声明(PVC)中,然后如何定义VM以使用PVC。
在容器引擎中运行KVM和VMware VM
如果你打算划在Kubernetes的容器引擎中运行KVM或VMware VM,则必须首先将磁盘转换为原始格式。有两个免费的实用程序可以帮助你做到这一点:Oracle VirtualBox VBoxManage和QEMU磁盘映像实用程序。
VBoxManage是Oracle VM VirtualBox的CLI。你可以使用它从主机OS的命令行控制Oracle VM VirtualBox。 VBoxManage提供了虚拟化引擎的所有功能,它使你可以将磁盘转换为不同的格式。
在CLI中使用以下命令将VM磁盘转换为原始格式:
VBoxManage clonehd --format RAW kvm_qcow2_OR_VMware_vmdk_disk disk-name.img
QEMU磁盘映像实用程序,称为QEMU-img,还可以将磁盘转换为其他格式。例如,要在运行Oracle Linux的计算机上安装它,请运行以下命令:
sudo yum install qemu-img
然后,运行以下命令以将VM磁盘转换为原始格式:
qemu-img convert kvm_qcow2_OR_VMware_vmdk_disk -O raw disk-name.img
转换磁盘后,你可以使它们可供在用于Kubernetes的容器引擎中使用。你有以下几种选择:
将磁盘上载到工作程序节点,并使用hostpath运行它。
创建原始磁盘的Docker映像,并将其上传到Oracle Cloud Infrastructure Registry之类的公共注册表中。
克隆磁盘并使用它创建持久卷声明。
所有这些选项都在KubeVirt GitHub存储库和KubeVirt文档中进行了说明。
演示案例
下面是KubeVirt与用于Kubernetes的容器引擎一起使用的快速示例。在此演示中,我们使用Microsoft Windows 2012 KVM VM映像,该映像已转换为原始格式并上传到工作节点。
现在,它可以与同一pod子网CIDR中的其他本机Nginx容器一起运行。 Windows操作系统现在可以使用内部负载平衡器IP地址访问Nginx网页。
因此,Windows KVM VM的行为类似于Kubernetes窗格,这使其可以与其他用于Kubernetes服务的容器引擎进行本地交互。
如果有不清楚的地方或其他意见,欢迎评论告诉我们。
原文:https://dzone.com/articles/kvm-vmware-vms-in-container-engine-for-kubernetes
同时,欢迎所有开发者扫描下方二维码填写《开发者与AI大调研》,只需2分钟,便可收获价值299元的「AI开发者万人大会」在线直播门票!