Clone
3
Kubevirt
Надежда Федорова edited this page 2024-10-23 18:31:42 +03:00

How to start using kubevirt

$ apt-get install qemu-kvm podman

  • On slave as root

$ apt-get install qemu-kvm

// Point at latest release

$ export RELEASE=$(curl https://storage.googleapis.com/kubevirt-prow/release/kubevirt/kubevirt/stable.txt)

// 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

  • Creare secret key for connectiong to your kubevirt-machines

$ kubectl create secret generic kvm-key --from-file=ssh-publickey=/home//.ssh/<id_ed25519.pub>

metadata:
  name: <name>
  annotations:
    kubevirt.io/keep-launcher-alive-after-failure: "true" # setting for stay debug mode for failure component
  labels:
    debugLogs: "true"
    logVerbosity: "6"
apiVersion: kubevirt.io/v1
kind: VirtualMachineInstance
spec:
  domain:
    resources:
      requests:
        memory: 1024M
    devices:
      disks:
      - name: containerdisk
        disk:
          bus: virtio
      - name: cloudinitdisk
        disk:
          bus: virtio
  terminationGracePeriodSeconds: 0
  accessCredentials:
    - sshPublicKey:
        source:
          secret:
            secretName: kvm-key #key new from previuos step
        propagationMethod:
          noCloud: {}
  volumes:
    - name: containerdisk
      containerDisk:
        image: <gitea.basealt.ru/alt/vmidisks/altlinux:latest> #path to you vm-image
    - name: cloudinitdisk
      cloudInitNoCloud:
        userData: |-
          #cloud-config
          password: <user>
          user: <pass>
          chpasswd: { expire: False }

How to delete kubevirt

  1. On master node as nonroot:

$ export RELEASE=v0.17.0

$ kubectl delete -n kubevirt kubevirt kubevirt --wait=true # --wait=true should anyway be default

$ kubectl delete apiservices v1.subresources.kubevirt.io # this needs to be deleted to avoid stuck terminating namespaces

$ kubectl delete mutatingwebhookconfigurations virt-api-mutator # not blocking but would be left over

$ kubectl delete validatingwebhookconfigurations virt-operator-validator # not blocking but would be left over

$ kubectl delete validatingwebhookconfigurations virt-api-validator # not blocking but would be left over

$ kubectl delete -f https://github.com/kubevirt/kubevirt/releases/download/${RELEASE}/kubevirt-operator.yaml --wait=false

  1. On master node as nonroot:

$ rm -rf /home//.kube/config

  1. On master as root:

$ kubeadm reset system

$ systemctl status kubelet