前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >给kubevirt创建虚拟机镜像

给kubevirt创建虚拟机镜像

作者头像
运维开发王义杰
发布2023-08-21 13:23:14
6430
发布2023-08-21 13:23:14
举报

安装kubevirt之后需要制作虚拟机,目前官方文档太简洁不易看懂,这里翻出以前用过的文档

(1)registryDisk 方式

kubevirt提供了registryDisk的base docker image registry-disk-v1alpha

1 . 准备raw或者qcow2格式的虚拟机镜像,例如Windows---server-2012-datacenter-64bit-cn-syspreped---2018-01-15.qcow2

2 . 创建Dockerfile

FROM kubevirt/registry-disk-v1alpha

MAINTAINER "MinMin" <rmm0811@gmail.com># Add alpine image COPY Windows---server-2012-datacenter-64bit-cn-syspreped---2018-01-15.qcow2 /disk/windows2012dc.img

3 . 创建image

docker build -t windows2012dc:latest ./ docker push windows2012dc:latest

(1)使用pvc方式

kubevirt还未支持blockmode PVC,此处仅介绍file方式的。kubevirt中创建虚拟机是以pod空间中的/disk/目录下,那么意味着需要将PVC实现进行文件系统格式化,并创建disk/目录将 虚拟机root disk image拷贝至disk目录中

cat >Dockerfile <<EOF FROM kubevirt/container-disk-v1alpha ADD fedora32.qcow2 /disk/ EOF

docker build -t kubevirt/fedora-sriov-testing:latest .

一个可用的虚拟机模板:

代码语言:javascript
复制
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachine
metadata:
  name: centos
spec:
  running: false
  template:
    metadata:
      labels:
        kubevirt.io/size: small
        kubevirt.io/domain: centos
    spec:
      domain:
        devices:
          disks:
          - disk:
              bus: virtio
            name: rootfs
          - name: emptydisk
            disk:
              bus: virtio
          - name: host-disk
            disk:
              bus: virtio
          - disk:
              bus: virtio
            name: cloudinit
          interfaces:
          - name: default
            bridge: {}
        resources:
          requests:
            memory: 512M
      networks:
      - name: default
        pod: {}
      volumes:
        - name: rootfs
          containerDisk:
            image: heishui/centos:new
        - name: emptydisk
          emptyDisk:
            capacity: "20Gi"
        - hostDisk:
            capacity: "20Gi"
            path: /data/disk.img
            type: DiskOrCreate
          name: host-disk
        - name: cloudinit
          cloudInitNoCloud:
            userData: |-
              #cloud-config
              password: centos
              chpasswd: { expire: False }
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-04-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维开发王义杰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档