安装 KubeVirt 并创建虚拟机可以按照以下步骤进行。

安装 KubeVirt

  1. 安装 KubeVirt Operator

首先,需要安装 KubeVirt Operator,它会管理 KubeVirt 的部署和生命周期。运行以下命令来安装 KubeVirt Operator:

export VERSION=$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases/latest | jq -r .tag_name)
kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-operator.yaml
  1. 安装 KubeVirt CustomResource (CR)

接下来,创建一个 KubeVirt 自定义资源 (CR),来启动 KubeVirt:

kubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-cr.yaml
  1. 验证安装

使用以下命令验证 KubeVirt 是否已正确安装并正在运行:

kubectl get pods -n kubevirt
kubectl get kubevirt.kubevirt.io/kubevirt -n kubevirt

你应该能看到 KubeVirt 的相关组件已经运行。

安装 virtctl

virtctl 是一个用于管理 KubeVirt 虚拟机的命令行工具。你可以从 GitHub 上下载适合你系统的二进制文件:

export VIRTCTL_VERSION=$(curl -s https://api.github.com/repos/kubevirt/kubevirt/releases/latest | jq -r .tag_name)
curl -L -o virtctl https://github.com/kubevirt/kubevirt/releases/download/${VIRTCTL_VERSION}/virtctl-${VIRTCTL_VERSION}-linux-amd64
chmod +x virtctl
sudo mv virtctl /usr/local/bin/

创建虚拟机的示例

  1. 定义一个虚拟机

创建一个虚拟机 YAML 文件,例如 vm.yaml,内容如下:

apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: myvm
  namespace: default
spec:
  running: false
  template:
    metadata:
      labels:
        kubevirt.io/domain: myvm
    spec:
      domain:
        devices:
          disks:
          - disk:
              bus: virtio
            name: containerdisk
          - disk:
              bus: virtio
            name: cloudinitdisk
        resources:
          requests:
            memory: 64M
      volumes:
      - name: containerdisk
        containerDisk:
          image: quay.io/kubevirt/cirros-container-disk-demo
      - name: cloudinitdisk
        cloudInitNoCloud:
          userData: |
            #cloud-config
            password: cirros
            chpasswd: { expire: False }
            ssh_pwauth: True

这个示例定义了一个简单的虚拟机,使用 CirrOS 镜像和 cloud-init 来配置初始用户。

  1. 创建虚拟机

使用以下命令创建虚拟机:

kubectl apply -f vm.yaml
  1. 启动虚拟机

使用 virtctl 启动虚拟机:

virtctl start myvm
  1. 检查虚拟机状态

你可以使用以下命令检查虚拟机的状态:

kubectl get vms
kubectl get vmi
  1. 连接到虚拟机

使用 virtctl 连接到虚拟机的控制台:

virtctl console myvm

总结

通过以上步骤,你可以在 Kubernetes 集群上安装 KubeVirt,并创建和管理虚拟机。这包括安装 KubeVirt Operator 和 CR,配置并启动一个简单的虚拟机,以及使用 virtctl 工具进行管理。根据需要,你可以调整虚拟机的配置和资源请求,以满足不同的应用需求。