{"id":20470666,"url":"https://github.com/devops-ws/kubevirt-guide","last_synced_at":"2026-03-19T16:02:12.325Z","repository":{"id":65625899,"uuid":"594581487","full_name":"devops-ws/kubevirt-guide","owner":"devops-ws","description":null,"archived":false,"fork":false,"pushed_at":"2023-03-06T07:44:11.000Z","size":34,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-16T02:17:18.314Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://jenkins-zh.cn","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devops-ws.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2023-01-29T01:26:22.000Z","updated_at":"2023-02-01T09:22:52.000Z","dependencies_parsed_at":"2023-02-17T04:45:36.880Z","dependency_job_id":null,"html_url":"https://github.com/devops-ws/kubevirt-guide","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devops-ws%2Fkubevirt-guide","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devops-ws%2Fkubevirt-guide/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devops-ws%2Fkubevirt-guide/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devops-ws%2Fkubevirt-guide/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devops-ws","download_url":"https://codeload.github.com/devops-ws/kubevirt-guide/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242034182,"owners_count":20061080,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-15T14:13:43.331Z","updated_at":"2026-03-05T21:33:42.051Z","avatar_url":"https://github.com/devops-ws.png","language":"Dockerfile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kubevirt-guide\n\n```shell\nexport VERSION=v0.58.0\nkubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-operator.yaml\nkubectl create -f https://github.com/kubevirt/kubevirt/releases/download/${VERSION}/kubevirt-cr.yaml\n```\n\n```shell\nhd i virtctl\n```\n\n## Debian\n```shell\ncat \u003c\u003cEOF | kubectl apply -f -\napiVersion: kubevirt.io/v1alpha3\nkind: VirtualMachine\nmetadata:\n  name: debian\nspec:\n  running: false\n  template:\n    metadata:\n      labels: \n        kubevirt.io/size: small\n        kubevirt.io/domain: debian\n    spec:\n      domain:\n        cpu:\n          cores: 2\n        devices:\n          disks:\n            - name: containervolume\n              disk:\n                bus: virtio\n            - name: cloudinitvolume\n              disk:\n                bus: virtio\n          interfaces:\n          - name: default\n            bridge: {}\n        resources:\n          requests:\n            memory: 1024M\n      networks:\n      - name: default\n        pod: {}\n      volumes:\n        - name: containervolume\n          containerDisk:\n            image: tedezed/debian-container-disk:9.0\n        - name: cloudinitvolume\n          cloudInitNoCloud:\n            userData: |-\n              #cloud-config\n              bootcmd:\n                - apt-get update -y\n                - apt-get install -y ca-certificates curl gnupg lsb-release apt-transport-https\n                - mkdir -p /etc/apt/keyrings\n                - curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg\n                - echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list \u003e /dev/null\n                - apt-get update -y\n                - apt-get install docker-ce docker-ce-cli containerd.io -y\n                - curl https://linuxsuren.github.io/tools/install.sh|bash\n                - hd i k3d --proxy-github ghproxy.com\n              chpasswd:\n                list: |\n                  debian:debian\n                  root:root\n                expire: False\nEOF\n```\n\n```shell\nvirtctl start debian\nvirtctl console debian\n```\n\n## 上传 ISO\n```shell\nexport CDI=v1.48.1\nkubectl apply -f https://github.com/kubevirt/containerized-data-importer/releases/download/${CDI}/cdi-operator.yaml\nkubectl apply -f https://github.com/kubevirt/containerized-data-importer/releases/download/${CDI}/cdi-cr.yaml\n\nkubectl apply -f - \u003c\u003cEOF \napiVersion: v1\nkind: Service\nmetadata:\n  labels:\n    cdi.kubevirt.io: cdi-uploadproxy\n  name: cdi-uploadproxy-nodeport\n  namespace: cdi\nspec:\n  externalTrafficPolicy: Cluster\n  internalTrafficPolicy: Cluster\n  ipFamilies:\n  - IPv4\n  ipFamilyPolicy: SingleStack\n  ports:\n  - nodePort: 31001\n    port: 443\n    protocol: TCP\n    targetPort: 8443\n  selector:\n    cdi.kubevirt.io: cdi-uploadproxy\n  sessionAffinity: None\n  type: NodePort\nEOF\n\nvirtctl image-upload --image-path JZ_WIN10_X64_V2023.02.iso --pvc-name=win11 --uploadproxy-url https://localhost:30001 --insecure --access-mode=ReadWriteMany --pvc-size=7G\n\nkubectl apply -f - \u003c\u003cEOF\napiVersion: v1\nkind: PersistentVolumeClaim\nmetadata:\n  name: winhd\nspec:\n  accessModes:\n    - ReadWriteOnce\n  resources:\n    requests:\n      storage: 35Gi\n---\napiVersion: kubevirt.io/v1\nkind: VirtualMachine\nmetadata:\n  name: iso-win10\nspec:\n  running: false\n  template:\n    metadata:\n      labels:\n        kubevirt.io/domain: iso-win10\n    spec:\n      domain:\n        cpu:\n          cores: 6\n        devices:\n          disks:\n          - bootOrder: 1\n            cdrom:\n              bus: sata\n            name: cdromiso\n          - bootOrder: 2\n            disk:\n              bus: virtio\n            name: harddrive\n          - bootOrder: 3\n            cdrom:\n              bus: sata\n            name: virtiocontainerdisk\n        machine:\n          type: q35\n        resources:\n          requests:\n            memory: 2G\n      volumes:\n      - name: cdromiso\n        persistentVolumeClaim:\n          claimName: win11\n      - name: harddrive\n        persistentVolumeClaim:\n          claimName: winhd\n      - containerDisk:\n          image: quay.io/kubevirt/virtio-container-disk\n        name: virtiocontainerdisk\nEOF\n```\n\n```\nvirt-install    --name=guest-name    --network network=default    --disk path=win.img,size=8    --boot=cdrom    --cdrom=JZ_WIN10_X64_V2023.02.iso    --osinfo detect=on,name=win10    --graphics spice --ram=1024\n```\n\n## 参考\n* [系统镜像](https://github.com/Tedezed/kubevirt-images-generator)\n* https://www.ebaina.com/articles/140000014992\n* [clound-init](https://cloudinit.readthedocs.io/en/latest/)\n* [How to Create a Custom Windows 11 Install Disk, With Only the Features You Need](https://www.tomshardware.com/how-to/create-custom-windows-11-install-disk)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevops-ws%2Fkubevirt-guide","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevops-ws%2Fkubevirt-guide","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevops-ws%2Fkubevirt-guide/lists"}