kubevirt: Unable to start VM with kubevirt

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

/kind enhancement

What happened: unable to start the VM

[centos@kubevirt-test-2 yaml]$ ./virtctl start virtualmachineinstance.kubevirt.io/vmi-centos7
Error starting VirtualMachine the server has asked for the client to provide credentials
[centos@kubevirt-test-2 yaml]$ sudo ./virtctl start virtualmachineinstance.kubevirt.io/vmi-centos7
Error starting VirtualMachine Put http://localhost:8080/apis/subresources.kubevirt.io/v1alpha3/namespaces/default/virtualmachines/virtualmachineinstance.kubevirt.io/vmi-centos7/start: dial tcp [::1]:8080: connect: connection refused

What you expected to happen: Should be able to start the VM

How to reproduce it (as minimally and precisely as possible):

  1. Have kubevirt installed (https://github.com/kubevirt/demo).
  2. Deploy the pv and pvc by kubectl apply -f https://github.com/dlambrig/kubevirt-lustre/blob/master/yaml/pv-mds.yaml and kubectl -f apply -f https://github.com/dlambrig/kubevirt-lustre/blob/master/yaml/pvc-mds.yaml. Change the metadata name field in pvc to mydisk to be consistent. Also, adjust the storage size to fit into your hardware configuration.
  3. Deploy the VM bykubectl apply -f https://github.com/dlambrig/kubevirt-lustre/blob/master/yaml/centos7.yaml.

Anything else we need to know?: vm instance created succesfully

[centos@kubevirt-test-2 yaml]$ kubectl describe virtualmachineinstance.kubevirt.io/vmi-centos7
Name:         vmi-centos7
Namespace:    default
Labels:       special=key
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"kubevirt.io/v1alpha3","kind":"VirtualMachineInstance","metadata":{"annotations":{},"labels":{"special":"key"},"name":"vmi-c...
              kubevirt.io/latest-observed-api-version: v1alpha3
              kubevirt.io/storage-observed-api-version: v1alpha3
API Version:  kubevirt.io/v1alpha3
Kind:         VirtualMachineInstance
Metadata:
  Creation Timestamp:  2019-10-01T00:38:14Z
  Finalizers:
    foregroundDeleteVirtualMachine
  Generation:        5
  Resource Version:  706000
  Self Link:         /apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachineinstances/vmi-centos7
  UID:               85a825da-51a9-46b5-99bd-26d41e67481a
Spec:
  Domain:
    Devices:
      Disks:
        Disk:
          Bus:  virtio
        Name:   containerdisk
        Disk:
          Bus:  virtio
        Name:   mydisk
        Disk:
          Bus:  virtio
        Name:   cloudinitdisk
      Interfaces:
        Bridge:
        Name:  default
      Rng:
    Features:
      Acpi:
        Enabled:  true
    Firmware:
      Uuid:  13bc1897-7b50-4661-872a-f2faf78d72e0
    Machine:
      Type:  q35
    Resources:
      Requests:
        Cpu:     100m
        Memory:  1024M
  Networks:
    Name:  default
    Pod:
  Termination Grace Period Seconds:  0
  Volumes:
    Name:  mydisk
    Persistent Volume Claim:
      Claim Name:  mydisk
    Container Disk:
      Image:              dlambrig/centos7:latest
      Image Pull Policy:  Always
    Name:                 containerdisk
    Cloud Init No Cloud:
      User Data:  #cloud-config
password: centos
chpasswd: { expire: False }
    Name:  cloudinitdisk
Status:
  Conditions:
    Last Probe Time:       <nil>
    Last Transition Time:  2019-10-01T00:38:15Z
    Message:               0/1 nodes are available: 1 Insufficient devices.kubevirt.io/kvm.
    Reason:                Unschedulable
    Status:                False
    Type:                  PodScheduled
  Phase:                   Scheduling
  Qos Class:               Burstable
Events:
  Type    Reason            Age    From                       Message
  ----    ------            ----   ----                       -------
  Normal  SuccessfulCreate  5m58s  virtualmachine-controller  Created virtual machine pod 

output when describing the vm pod

[centos@kubevirt-test-2 ~]$ kubectl get po -n default
NAME                              READY   STATUS    RESTARTS   AGE
virt-launcher-vmi-centos7-4jm66   0/2     Pending   0          14h
[centos@kubevirt-test-2 ~]$ kubectl describe po virt-launcher-vmi-centos7-4jm66 
Name:           virt-launcher-vmi-centos7-4jm66
Namespace:      default
Priority:       0
Node:           <none>
Labels:         kubevirt.io=virt-launcher
                kubevirt.io/created-by=85a825da-51a9-46b5-99bd-26d41e67481a
                special=key
Annotations:    kubevirt.io/domain: vmi-centos7
Status:         Pending
IP:             
IPs:            <none>
Controlled By:  VirtualMachineInstance/vmi-centos7
Containers:
  volumecontainerdisk:
    Image:      dlambrig/centos7:latest
    Port:       <none>
    Host Port:  <none>
    Command:
      /usr/bin/container-disk
    Args:
      --copy-path
      /var/run/kubevirt-ephemeral-disks/container-disk-data/85a825da-51a9-46b5-99bd-26d41e67481a/disk_1
    Limits:
      cpu:     100m
      memory:  20M
    Requests:
      cpu:        10m
      memory:     1M
    Readiness:    exec [/usr/bin/container-disk --health-check] delay=1s timeout=1s period=1s #success=1 #failure=5
    Environment:  <none>
    Mounts:
      /usr/bin from virt-bin-share-dir (rw)
      /var/run/kubevirt-ephemeral-disks/container-disk-data/85a825da-51a9-46b5-99bd-26d41e67481a from container-disks (rw)
  compute:
    Image:      index.docker.io/kubevirt/virt-launcher@sha256:17c6d0bbedf9e24085011c96e002569444133b331f124d0177a77d45cb3ac5e4
    Port:       <none>
    Host Port:  <none>
    Command:
      /usr/bin/virt-launcher
      --qemu-timeout
      5m
      --name
      vmi-centos7
      --uid
      85a825da-51a9-46b5-99bd-26d41e67481a
      --namespace
      default
      --kubevirt-share-dir
      /var/run/kubevirt
      --ephemeral-disk-dir
      /var/run/kubevirt-ephemeral-disks
      --container-disk-dir
      /var/run/kubevirt/container-disks
      --readiness-file
      /var/run/kubevirt-infra/healthy
      --grace-period-seconds
      15
      --hook-sidecars
      0
      --less-pvc-space-toleration
      10
    Limits:
      devices.kubevirt.io/kvm:        1
      devices.kubevirt.io/tun:        1
      devices.kubevirt.io/vhost-net:  1
    Requests:
      cpu:                            100m
      devices.kubevirt.io/kvm:        1
      devices.kubevirt.io/tun:        1
      devices.kubevirt.io/vhost-net:  1
      memory:                         1187554432
    Readiness:                        exec [cat /var/run/kubevirt-infra/healthy] delay=4s timeout=5s period=1s #success=1 #failure=5
    Environment:                      <none>
    Mounts:
      /var/run/kubevirt from virt-share-dir (rw)
      /var/run/kubevirt-ephemeral-disks from ephemeral-disks (rw)
      /var/run/kubevirt-infra from infra-ready-mount (rw)
      /var/run/kubevirt-private/vmi-disks/mydisk from mydisk (rw)
      /var/run/kubevirt/container-disks from container-disks (rw)
      /var/run/libvirt from libvirt-runtime (rw)
Conditions:
  Type           Status
  PodScheduled   False 
Volumes:
  mydisk:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  mydisk
    ReadOnly:   false
  infra-ready-mount:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     
    SizeLimit:  <unset>
  virt-share-dir:
    Type:          HostPath (bare host directory volume)
    Path:          /var/run/kubevirt
    HostPathType:  
  virt-bin-share-dir:
    Type:          HostPath (bare host directory volume)
    Path:          /var/lib/kubevirt/init/usr/bin
    HostPathType:  
  libvirt-runtime:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     
    SizeLimit:  <unset>
  ephemeral-disks:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     
    SizeLimit:  <unset>
  container-disks:
    Type:          HostPath (bare host directory volume)
    Path:          /var/run/kubevirt/container-disks/85a825da-51a9-46b5-99bd-26d41e67481a
    HostPathType:  
QoS Class:         Burstable
Node-Selectors:    kubevirt.io/schedulable=true
Tolerations:       node.kubernetes.io/not-ready:NoExecute for 300s
                   node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason            Age        From               Message
  ----     ------            ----       ----               -------
  Warning  FailedScheduling  <unknown>  default-scheduler  0/1 nodes are available: 1 Insufficient devices.kubevirt.io/kvm.

starting testvm is successful

[centos@kubevirt-test-2 ~]$ kubectl apply -f https://raw.githubusercontent.com/kubevirt/demo/master/manifests/vm.yaml
virtualmachine.kubevirt.io/testvm created
[centos@kubevirt-test-2 ~]$ kubectl describe vm testvm
Name:         testvm
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration:
                {"apiVersion":"kubevirt.io/v1alpha3","kind":"VirtualMachine","metadata":{"annotations":{},"name":"testvm","namespace":"default"},"spec":{"...
              kubevirt.io/latest-observed-api-version: v1alpha3
              kubevirt.io/storage-observed-api-version: v1alpha3
API Version:  kubevirt.io/v1alpha3
Kind:         VirtualMachine
Metadata:
  Creation Timestamp:  2019-10-02T23:02:54Z
  Generation:          2
  Resource Version:    1070036
  Self Link:           /apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachines/testvm
  UID:                 8da76d2e-8101-4b97-b7e7-4b3e8fcb9b58
Spec:
  Running:  false
  Template:
    Metadata:
      Creation Timestamp:  <nil>
      Labels:
        kubevirt.io/domain:  testvm
        kubevirt.io/size:    small
    Spec:
      Domain:
        Devices:
          Disks:
            Disk:
              Bus:  virtio
            Name:   rootfs
            Disk:
              Bus:  virtio
            Name:   cloudinit
          Interfaces:
            Bridge:
            Name:  default
        Machine:
          Type:  
        Resources:
          Requests:
            Memory:  64M
      Networks:
        Name:  default
        Pod:
      Volumes:
        Container Disk:
          Image:  kubevirt/cirros-registry-disk-demo
        Name:     rootfs
        Cloud Init No Cloud:
          userDataBase64:  SGkuXG4=
        Name:              cloudinit
Status:
Events:  <none>
[centos@kubevirt-test-2 ~]$ kubectl virt start testvm
VM testvm was scheduled to start
[centos@kubevirt-test-2 ~]$ kubectl describe vmi testvm
Name:         testvm
Namespace:    default
Labels:       kubevirt.io/domain=testvm
              kubevirt.io/size=small
Annotations:  kubevirt.io/latest-observed-api-version: v1alpha3
              kubevirt.io/storage-observed-api-version: v1alpha3
API Version:  kubevirt.io/v1alpha3
Kind:         VirtualMachineInstance
Metadata:
  Creation Timestamp:  2019-10-02T23:03:14Z
  Finalizers:
    foregroundDeleteVirtualMachine
  Generate Name:  testvm
  Generation:     4
  Owner References:
    API Version:           kubevirt.io/v1alpha3
    Block Owner Deletion:  true
    Controller:            true
    Kind:                  VirtualMachine
    Name:                  testvm
    UID:                   8da76d2e-8101-4b97-b7e7-4b3e8fcb9b58
  Resource Version:        1070092
  Self Link:               /apis/kubevirt.io/v1alpha3/namespaces/default/virtualmachineinstances/testvm
  UID:                     1dae84a3-c80a-4ad2-9700-9f2839c833eb
Spec:
  Domain:
    Devices:
      Disks:
        Disk:
          Bus:  virtio
        Name:   rootfs
        Disk:
          Bus:  virtio
        Name:   cloudinit
      Interfaces:
        Bridge:
        Name:  default
    Features:
      Acpi:
        Enabled:  true
    Firmware:
      Uuid:  5a9fc181-957e-5c32-9e5a-2de5e9673531
    Machine:
      Type:  q35
    Resources:
      Requests:
        Cpu:     100m
        Memory:  64M
  Networks:
    Name:  default
    Pod:
  Volumes:
    Container Disk:
      Image:              kubevirt/cirros-registry-disk-demo
      Image Pull Policy:  Always
    Name:                 rootfs
    Cloud Init No Cloud:
      userDataBase64:  SGkuXG4=
    Name:              cloudinit
Status:
  Conditions:
    Last Probe Time:       <nil>
    Last Transition Time:  2019-10-02T23:03:14Z
    Message:               0/1 nodes are available: 1 Insufficient devices.kubevirt.io/kvm.
    Reason:                Unschedulable
    Status:                False
    Type:                  PodScheduled
  Phase:                   Scheduling
  Qos Class:               Burstable
Events:
  Type    Reason            Age   From                       Message
  ----    ------            ----  ----                       -------
  Normal  SuccessfulCreate  7s    virtualmachine-controller  Created virtual machine pod virt-launcher-testvm-2vf5g

Environment:

  • KubeVirt version (use virtctl version):
Client Version: version.Info{GitVersion:"v0.19.0", GitCommit:"b54712d720ae7bde6400cd3bb81087f2694b2a40", GitTreeState:"clean", BuildDate:"2019-07-04T07:08:33Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{GitVersion:"v0.21.0", GitCommit:"e220f16d7a2aae7295199bbbc3594a5b50b7a3f4", GitTreeState:"clean", BuildDate:"2019-09-09T08:09:15Z", GoVersion:"go1.11.5", Compiler:"gc", Platform:"linux/amd64"}
  • Kubernetes version (use kubectl version):
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:36:53Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:27:17Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
  • VM or VMI specifications: https://github.com/dlambrig/kubevirt-lustre/blob/master/yaml/centos7.yaml
  • Cloud provider or hardware configuration:
  • OS (e.g. from /etc/os-release):CentOS Linux 7 (Core)
  • Kernel (e.g. uname -a): Linux 3.10.0-862.14.4.el7.x86_64
  • Install tools:kubevirt
  • Others:minikube version: v1.4.0, QEMU emulator version 1.5.3 (qemu-kvm-1.5.3-167.el7_7.1), Copyright © 2003-2008 Fabrice Bellard

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 21 (9 by maintainers)

Most upvoted comments

disk space keeps growing

yes, because downloaded docker images aren’t removed automatically

Looking for a good explanation of VM vs VMI…

OK we got it working by removing the PersistentVolumeClaim part of VM.

[centos@kubernetes-master kubevirt-lustre]$ kubectl get vmi
NAME          AGE   PHASE     IP            NODENAME
vmi-centos7   16m   Running   172.17.0.11   minikube