From 63c2762ad96ecd6de437e1da4a4ce2d0396f5924 Mon Sep 17 00:00:00 2001 From: Marcelo Amaral Date: Thu, 5 Nov 2020 16:52:29 +0100 Subject: [PATCH] updated the technical description Signed-off-by: Marcelo Amaral --- docs/README.md | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/README.md b/docs/README.md index 187de5afe1c2..52cdb85abad2 100644 --- a/docs/README.md +++ b/docs/README.md @@ -16,30 +16,30 @@ KubeVirt uses CRDs, *controllers* and other Kubernetes features, to represent and manage traditional virtual machines side by side with containers. -KubeVirt's primary CRD is the VirtualMachine (VM) resource, which contains -a VirtualMachineInstance (VMI) object. The VMI -shares similarity with the Pod concept and represents a single virtualized -workload that executes once until completion (i.e., powered off). In -addition to the VMI, the key KubeVirt components are the virt-api, the -virt-controller, the virt-handler, and the virt-launcher. +KubeVirt's primary CRD is the VirtualMachine (VM) resource, which manages +the lifecycle of a VirtualMachineInstance (VMI) object that represents a +single virtualized workload that executes once until completion +(i.e., powered off). ### Project Components +The key KubeVirt components are the virt-api, the +virt-controller, the virt-handler, and the virt-launcher. ![KubeVirt components](components.png "Components") * **virt-api**: This component provides a HTTP RESTful entrypoint to manage the virtual machines within the cluster. - * **virt-controller**: This component is a Kubernetes Operator that - manages the state of each VMI within the Kubernetes cluster. When new VM - objects are submitted to the Kubernetes API-Server, this controller takes - notice and creates the pod in which the VM will run and delegates the - other management operations to the *virt-handler* component. - * **virt-handler**: This is a daemon that runs on each Kubernetes node. It is - responsible for monitoring the state of VMIs according to Kubernetes and - ensuring the corresponding libvirt domain is booted or halted accordingly. To perform these operations, the virt-handler signals and send the VM's CRD object to the *virt-launcher* component. - * **virt-launcher**: There is one per running VMI. It - contains the running VMI and remains running as long as the VMI is defined. It uses a local libvirtd instance within its container to - start or terminate the VM. + * **virt-controller**: This component is a Kubernetes controller that + manages the lifecycle of VMs within the Kubernetes cluster. + * **virt-handler**: This is a daemon that runs on each Kubernetes node. +It is responsible for monitoring the state of VMIs according to +Kubernetes and ensuring the corresponding libvirt domain is booted or +halted accordingly. To perform these operations, the virt-handler has a +communication channel with each virt-launcher that is used to manage the +lifecycle of the qemu process within the *virt-launcher* pod. + * **virt-launcher**: There is one per running VMI. +This component directly manages the lifecycle of the qemu process within +the VMI's pod and receives lifecycle commands from virt-handler. ### Scripts