k8s-kubevirt

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

KubeVirt VM Management

KubeVirt 虚拟机管理

Manage virtual machines on Kubernetes using kubectl-mcp-server's KubeVirt tools (13 tools).
使用kubectl-mcp-server的KubeVirt工具(共13个)在Kubernetes上管理虚拟机。

When to Apply

适用场景

Use this skill when:
  • User mentions: "KubeVirt", "virtual machine", "VM", "VirtualMachineInstance", "VMI"
  • Operations: starting/stopping VMs, live migration, managing VM lifecycle
  • Keywords: "VM on Kubernetes", "virtualization", "data volume", "instance type"
使用本技能的场景:
  • 用户提及:KubeVirt、virtual machine、VM、VirtualMachineInstance、VMI
  • 操作场景:启动/停止VM、实时迁移、管理VM生命周期
  • 关键词:Kubernetes上的VM、虚拟化、数据卷、实例类型

Priority Rules

优先级规则

PriorityRuleImpactTools
1Detect KubeVirt installation firstCRITICAL
kubevirt_detect_tool
2Check VM status before operationsHIGH
kubevirt_vm_get_tool
3List VMIs for running VMsHIGH
kubevirt_vmis_list_tool
4Use instance types for consistencyMEDIUM
kubevirt_instancetypes_list_tool
优先级规则影响级别工具
1先检测KubeVirt的安装状态关键
kubevirt_detect_tool
2操作前检查VM状态
kubevirt_vm_get_tool
3列出运行中的VM对应的VMI
kubevirt_vmis_list_tool
4使用实例类型保证一致性
kubevirt_instancetypes_list_tool

Quick Reference

速查指南

TaskToolExample
Detect KubeVirt
kubevirt_detect_tool
kubevirt_detect_tool()
List VMs
kubevirt_vms_list_tool
kubevirt_vms_list_tool(namespace)
Start VM
kubevirt_vm_start_tool
kubevirt_vm_start_tool(name, namespace)
Live migrate VM
kubevirt_vm_migrate_tool
kubevirt_vm_migrate_tool(name, namespace)
任务工具示例
检测KubeVirt
kubevirt_detect_tool
kubevirt_detect_tool()
列出VM
kubevirt_vms_list_tool
kubevirt_vms_list_tool(namespace)
启动VM
kubevirt_vm_start_tool
kubevirt_vm_start_tool(name, namespace)
实时迁移VM
kubevirt_vm_migrate_tool
kubevirt_vm_migrate_tool(name, namespace)

Check Installation

检查安装状态

python
kubevirt_detect_tool()
python
kubevirt_detect_tool()

List VMs

列出VM

python
undefined
python
undefined

List VirtualMachines

列出VirtualMachines

kubevirt_vms_list_tool(namespace="default")
kubevirt_vms_list_tool(namespace="default")

List VirtualMachineInstances (running VMs)

列出VirtualMachineInstances(运行中的VM)

kubevirt_vmis_list_tool(namespace="default")
undefined
kubevirt_vmis_list_tool(namespace="default")
undefined

Get VM Details

获取VM详情

python
undefined
python
undefined

Get VM definition

获取VM定义

kubevirt_vm_get_tool(name="my-vm", namespace="default")
kubevirt_vm_get_tool(name="my-vm", namespace="default")

Shows:

展示内容:

- Spec (CPU, memory, disks)

- Spec(CPU、内存、磁盘)

- Running status

- 运行状态

- Conditions

- 状态条件

undefined
undefined

VM Lifecycle

VM生命周期

Start VM

启动VM

python
kubevirt_vm_start_tool(name="my-vm", namespace="default")
python
kubevirt_vm_start_tool(name="my-vm", namespace="default")

Stop VM

停止VM

python
kubevirt_vm_stop_tool(name="my-vm", namespace="default")
python
kubevirt_vm_stop_tool(name="my-vm", namespace="default")

Restart VM

重启VM

python
kubevirt_vm_restart_tool(name="my-vm", namespace="default")
python
kubevirt_vm_restart_tool(name="my-vm", namespace="default")

Pause/Unpause VM

暂停/恢复VM

python
undefined
python
undefined

Pause (freeze CPU)

暂停(冻结CPU)

kubevirt_vm_pause_tool(name="my-vm", namespace="default")
kubevirt_vm_pause_tool(name="my-vm", namespace="default")

Unpause

恢复

kubevirt_vm_unpause_tool(name="my-vm", namespace="default")
undefined
kubevirt_vm_unpause_tool(name="my-vm", namespace="default")
undefined

Live Migration

实时迁移

python
undefined
python
undefined

Migrate VM to another node

将VM迁移到其他节点

kubevirt_vm_migrate_tool(name="my-vm", namespace="default")
kubevirt_vm_migrate_tool(name="my-vm", namespace="default")

Check migration status

检查迁移状态

kubevirt_vmis_list_tool(namespace="default")
kubevirt_vmis_list_tool(namespace="default")

Look for: migrationState

查看:migrationState字段

undefined
undefined

Instance Types

实例类型

python
undefined
python
undefined

List available instance types

列出可用的实例类型

kubevirt_instancetypes_list_tool()
kubevirt_instancetypes_list_tool()

Instance types define:

实例类型定义了:

- CPU count

- CPU数量

- Memory size

- 内存大小

- GPU allocation

- GPU分配

undefined
undefined

Data Volumes

数据卷

python
undefined
python
undefined

List data volumes (persistent VM disks)

列出数据卷(持久化VM磁盘)

kubevirt_datavolumes_list_tool(namespace="default")
kubevirt_datavolumes_list_tool(namespace="default")

List data sources (golden images)

列出数据源(黄金镜像)

kubevirt_datasources_list_tool(namespace="default")
undefined
kubevirt_datasources_list_tool(namespace="default")
undefined

Create VM

创建VM

python
kubectl_apply(manifest="""
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: my-vm
  namespace: default
spec:
  running: true
  template:
    metadata:
      labels:
        kubevirt.io/vm: my-vm
    spec:
      domain:
        cpu:
          cores: 2
        memory:
          guest: 4Gi
        devices:
          disks:
          - name: rootdisk
            disk:
              bus: virtio
          - name: cloudinitdisk
            disk:
              bus: virtio
      volumes:
      - name: rootdisk
        containerDisk:
          image: quay.io/kubevirt/fedora-cloud-container-disk-demo
      - name: cloudinitdisk
        cloudInitNoCloud:
          userData: |
            #cloud-config
            password: fedora
            chpasswd: { expire: False }
""")
python
kubectl_apply(manifest="""
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: my-vm
  namespace: default
spec:
  running: true
  template:
    metadata:
      labels:
        kubevirt.io/vm: my-vm
    spec:
      domain:
        cpu:
          cores: 2
        memory:
          guest: 4Gi
        devices:
          disks:
          - name: rootdisk
            disk:
              bus: virtio
          - name: cloudinitdisk
            disk:
              bus: virtio
      volumes:
      - name: rootdisk
        containerDisk:
          image: quay.io/kubevirt/fedora-cloud-container-disk-demo
      - name: cloudinitdisk
        cloudInitNoCloud:
          userData: |
            #cloud-config
            password: fedora
            chpasswd: { expire: False }
""")

Create VM with DataVolume

使用DataVolume创建VM

python
kubectl_apply(manifest="""
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: vm-with-pvc
  namespace: default
spec:
  running: true
  dataVolumeTemplates:
  - metadata:
      name: vm-with-pvc-disk
    spec:
      source:
        http:
          url: https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
      storage:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 10Gi
  template:
    spec:
      domain:
        cpu:
          cores: 2
        memory:
          guest: 4Gi
        devices:
          disks:
          - name: rootdisk
            disk:
              bus: virtio
      volumes:
      - name: rootdisk
        dataVolume:
          name: vm-with-pvc-disk
""")
python
kubectl_apply(manifest="""
apiVersion: kubevirt.io/v1
kind: VirtualMachine
metadata:
  name: vm-with-pvc
  namespace: default
spec:
  running: true
  dataVolumeTemplates:
  - metadata:
      name: vm-with-pvc-disk
    spec:
      source:
        http:
          url: https://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2
      storage:
        accessModes:
        - ReadWriteOnce
        resources:
          requests:
            storage: 10Gi
  template:
    spec:
      domain:
        cpu:
          cores: 2
        memory:
          guest: 4Gi
        devices:
          disks:
          - name: rootdisk
            disk:
              bus: virtio
      volumes:
      - name: rootdisk
        dataVolume:
          name: vm-with-pvc-disk
""")

Troubleshooting

故障排查

VM Not Starting

VM无法启动

python
1. kubevirt_vm_get_tool(name, namespace)  # Check status/conditions
2. kubevirt_vmis_list_tool(namespace)  # Check VMI exists
3. get_events(namespace)  # Check events
4. get_pods(namespace, label_selector="kubevirt.io/vm=<name>")  # Check virt-launcher
python
1. kubevirt_vm_get_tool(name, namespace)  # 检查状态/条件
2. kubevirt_vmis_list_tool(namespace)  # 检查VMI是否存在
3. get_events(namespace)  # 检查事件
4. get_pods(namespace, label_selector="kubevirt.io/vm=<name>")  # 检查virt-launcher pod

Migration Failed

迁移失败

python
1. kubevirt_vmis_list_tool(namespace)  # Check migrationState
2. get_events(namespace)  # Check events
3. # Common issues:
   # - No suitable target node
   # - Insufficient resources
   # - Shared storage required
python
1. kubevirt_vmis_list_tool(namespace)  # 检查migrationState字段
2. get_events(namespace)  # 检查事件
3. # 常见问题:
   # - 没有合适的目标节点
   # - 资源不足
   # - 需要共享存储

Related Skills

相关技能

  • k8s-storage - Persistent storage
  • k8s-operations - kubectl operations
  • k8s-storage - 持久化存储
  • k8s-operations - kubectl操作