首页 后端技术 正文
  • 本文约1070字,阅读需5分钟
  • 13
  • 0

初识kubevirt

摘要

kubevirt的基础目录结构 kubevirt/ ├── api/ # CRD 的定义,包括 VirtualMachine、VirtualMachineInstance 等的 API 类型 │ ├── core/ # 核心 API 定义 │ └── generated/ ...

kubevirt的基础目录结构

kubevirt/
├── api/                   # CRD 的定义,包括 VirtualMachine、VirtualMachineInstance 等的 API 类型
│   ├── core/              # 核心 API 定义
│   └── generated/         # 自动生成的 API 代码
│
├── cmd/                   # 可执行文件入口,例如 virt-api、virt-controller、virt-handler 等
│   ├── virt-api/
│   ├── virt-controller/
│   ├── virt-handler/
│   └── virt-launcher/
│
├── pkg/                   # 核心逻辑代码,控制器、调度器、设备管理等
│   ├── api/               # 与 `api/` 相关的封装逻辑
│   ├── virt-api/          # 实现 kubevirt 的 API Server(服务暴露 CRD 接口)
│   ├── virt-controller/   # 实现虚拟机控制器(管理 VM 生命周期)
│   ├── virt-handler/      # 在每个节点上运行的守护进程,管理 VM 运行时
│   ├── virt-launcher/     # 创建和启动 QEMU 虚拟机的容器入口
│   ├── virt-chroot/       # 用于 chroot 隔离逻辑
│   ├── util/              # 各种工具函数和工具包
│   └── network/           # 虚拟机网络配置与支持代码
│
├── tests/                 # 测试用例,包括 e2e 测试、功能测试等
│   ├── e2e/               # 端到端测试
│   └── framework/         # 测试框架和公用逻辑
│
├── tools/                 # 构建、测试等相关工具脚本
│
├── hack/                  # 开发、CI、构建辅助脚本(例如生成代码、部署等)
│
├── manifests/             # Kubernetes 资源清单,安装/部署相关
│
├── cluster/               # 用于本地部署开发集群(例如使用 kind)
│
├── docs/                  # 项目文档
│
├── automation/            # GitHub Actions / CI 自动化流程定义
│
├── vendor/                # Go modules 的依赖(go mod vendor 后生成)
│
├── go.mod                 # Go modules 定义文件
├── go.sum
└── Makefile               # 构建入口

关键组件说明:

  • virt-api:为虚拟机相关的 CRD 提供 REST 接口。

  • virt-controller:负责控制虚拟机的生命周期,比如创建、删除等。

  • virt-handler:部署在每个节点上,负责和 libvirt/qemu/kvm 等交互,实际启动虚拟机。

  • virt-launcher:每个虚拟机的启动容器,负责运行虚拟机进程。

  • tests/e2e:用于验证 KubeVirt 在集群中部署和运行 VM 的行为

标签:kubevirt
    评论
    更换验证码
    友情链接