kubernets kubevirt 分析

 

目前kubevirt提供虚机管理的功能。 

kill, delete, shutdown, migration 等。
VMI是virtual machine interface的缩写。
SyncVMI,实际上就是创建一个VM。

 

创建VM的map, 支持PCI设备。
只是libvirt的一层皮,libvirt有啥它就支持啥。
连package的名字都叫virtwrap

 

handler的调用launcher。
LauncherClient(RPC)提供给handler的几个功能。 
 
 这个handler和launcher的通信是相互的, 跟dpi差不多的机制。
 handler提供给launcher的 这个sock叫 "domain-notify.sock"
 

 

这是launcher的代码
 
通过rpc通信。 这个rpc通过一个unixsock, unixsock的名字是虚拟机的UUID, 在"/var/run/kubevirt" 目录下面。 
此外launcher还提供了一个就绪的文件, "readiness-file", 叫"/var/run/kubevirt-infra/healthy", Pod looks for this file to determine when virt-launcher is initialized 
  插入一个go的语法

 

event是kubelet和kubevirt-handle 的一个重要组成部分
http://www.shwhyc.com/tags/events

 


kubevirt看来是支持dpi的, 支持QAT,FPGA的。 

 

前面说了, handler也会提供一个socket,供launcher进行notify。 这是launcher的代码 

 

launcher会把来自libvirt的domain event 发给handler。
同时也会发送k8s的event,啥event, 不知道
 
 

 

 
 

 

 

handler起notify server的代码。


 

 

swagger 定义的API
 

"description": "This is KubeVirt API an add-on for Kubernetes."

API的定义
 

 

posted @ 2019-03-27 10:49  lvmxh  阅读(2144)  评论(0编辑  收藏  举报