7.2.
7.2.1. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.2. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.2.1. 링크 복사링크가 클립보드에 복사되었습니다!
$ cat > Dockerfile << EOF FROM registry.access.redhat.com/ubi8/ubi:latest AS builder ADD --chown=107:107 <vm_image>.qcow2 /disk/1 RUN chmod 0440 /disk/* FROM scratch COPY --from=builder /disk/* /disk/ EOF$ podman build -t <registry>/<container_disk_name>:latest .$ podman push <registry>/<container_disk_name>:latest
7.2.2.2. 링크 복사링크가 클립보드에 복사되었습니다!
$ oc edit hyperconverged kubevirt-hyperconverged -n openshift-cnvapiVersion: hco.kubevirt.io/v1beta1 kind: HyperConverged metadata: name: kubevirt-hyperconverged namespace: openshift-cnv spec: storageImport: insecureRegistries:1 - "private-registry-example-1:5000" - "private-registry-example-2:5000"
7.2.2.3. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.2.4. 링크 복사링크가 클립보드에 복사되었습니다!
$ virtctl create vm --name vm-rhel-9 --instancetype u1.small --preference rhel.9 --volume-containerdisk src:registry.redhat.io/rhel9/rhel-guest-image:9.5apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: vm-rhel-91 spec: instancetype: name: u1.small2 preference: name: rhel.93 runStrategy: Always template: metadata: creationTimestamp: null spec: domain: devices: {} resources: {} terminationGracePeriodSeconds: 180 volumes: - containerDisk: image: registry.redhat.io/rhel9/rhel-guest-image:9.54 name: vm-rhel-9-containerdisk-0$ oc create -f <vm_manifest_file>.yaml
$ oc get vm <vm_name>NAME AGE STATUS READY vm-rhel-9 18s Running True$ virtctl console <vm_name>Successfully connected to vm-rhel-9 console. The escape sequence is ^]
7.2.3. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.3.1. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.3.2. 링크 복사링크가 클립보드에 복사되었습니다!
$ virtctl create vm --name vm-rhel-9 --instancetype u1.small --preference rhel.9 --volume-import type:http,url:https://example.com/rhel9.qcow2,size:10GiapiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: vm-rhel-91 spec: dataVolumeTemplates: - metadata: name: imported-volume-6dcpf2 spec: source: http: url: https://example.com/rhel9.qcow23 storage: resources: requests: storage: 10Gi4 instancetype: name: u1.small5 preference: name: rhel.96 runStrategy: Always template: spec: domain: devices: {} resources: {} terminationGracePeriodSeconds: 180 volumes: - dataVolume: name: imported-volume-6dcpf name: imported-volume-6dcpf$ oc create -f <vm_manifest_file>.yaml
$ oc get pods$ oc get dv <data_volume_name>NAME PHASE PROGRESS RESTARTS AGE imported-volume-6dcpf Succeeded 100.0% 18s$ virtctl console <vm_name>Successfully connected to vm-rhel-9 console. The escape sequence is ^]
7.2.4. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.4.1. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.4.1.1. 링크 복사링크가 클립보드에 복사되었습니다!
$ virtctl stop <my_vm_name>$ oc get vm <my_vm_name> -o jsonpath="{.spec.template.spec.volumes}{'\n'}"[{"dataVolume":{"name":"<my_vm_volume>"},"name":"rootdisk"},{"cloudInitNoCloud":{...}]$ oc get pvcNAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE <my_vm_volume> Bound …참고$ virtctl guestfs <my-vm-volume> --uid 107$ virt-sysprep -a disk.img
7.2.4.2. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.4.2.1. 링크 복사링크가 클립보드에 복사되었습니다!
%WINDIR%\System32\Sysprep\sysprep.exe /generalize /shutdown /oobe /mode:vm
7.2.4.2.2. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.4.3. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.5. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.5.1. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.5.1.1. 링크 복사링크가 클립보드에 복사되었습니다!
$ yum install -y qemu-guest-agent$ systemctl enable --now qemu-guest-agent
$ oc get vm <vm_name>
7.2.5.1.2. 링크 복사링크가 클립보드에 복사되었습니다!
$ net start
7.2.5.2. 링크 복사링크가 클립보드에 복사되었습니다!
|
|
|
|
|
|
|
|
|
|
|
|
7.2.5.2.1. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.5.2.2. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.5.2.3. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.5.2.4. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.5.2.5. 링크 복사링크가 클립보드에 복사되었습니다!
# ... spec: domain: devices: disks: - name: virtiocontainerdisk bootOrder: 21 cdrom: bus: sata volumes: - containerDisk: image: container-native-virtualization/virtio-win name: virtiocontainerdisk$ virtctl start <vm> -n <namespace>$ oc apply -f <vm.yaml>
7.2.5.3. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.5.3.1. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.6. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.6.1. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.6.2. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.7. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.7.1. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.7.1.1. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.7.1.2. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.7.1.3. 링크 복사링크가 클립보드에 복사되었습니다!
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
cdi.kubevirt.io/cloneFallbackReason: The volume modes of source and target are incompatible
cdi.kubevirt.io/clonePhase: Succeeded
cdi.kubevirt.io/cloneType: copy
NAMESPACE LAST SEEN TYPE REASON OBJECT MESSAGE
test-ns 0s Warning IncompatibleVolumeModes persistentvolumeclaim/test-target The volume modes of source and target are incompatible
7.2.7.2. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.7.3. 링크 복사링크가 클립보드에 복사되었습니다!
7.2.7.3.1. 링크 복사링크가 클립보드에 복사되었습니다!
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: golden-volumesnapshot
namespace: golden-ns
spec:
volumeSnapshotClassName: ocs-storagecluster-rbdplugin-snapclass
source:
persistentVolumeClaimName: golden-snap-source
spec:
source:
snapshot:
namespace: golden-ns
name: golden-volumesnapshot
7.2.7.3.2. 링크 복사링크가 클립보드에 복사되었습니다!
kind: VolumeSnapshotClass apiVersion: snapshot.storage.k8s.io/v1 driver: openshift-storage.rbd.csi.ceph.com # ...kind: StorageClass apiVersion: storage.k8s.io/v1 # ... provisioner: openshift-storage.rbd.csi.ceph.com
7.2.7.3.3. 링크 복사링크가 클립보드에 복사되었습니다!
$ virtctl create vm --name rhel-9-clone --volume-import type:pvc,src:my-project/imported-volume-q5pr9apiVersion: kubevirt.io/v1 kind: VirtualMachine metadata: name: rhel-9-clone1 spec: dataVolumeTemplates: - metadata: name: imported-volume-h4qn8 spec: source: pvc: name: imported-volume-q5pr92 namespace: my-project3 storage: resources: {} instancetype: inferFromVolume: imported-volume-h4qn84 inferFromVolumeFailurePolicy: Ignore preference: inferFromVolume: imported-volume-h4qn85 inferFromVolumeFailurePolicy: Ignore runStrategy: Always template: spec: domain: devices: {} memory: guest: 512Mi resources: {} terminationGracePeriodSeconds: 180 volumes: - dataVolume: name: imported-volume-h4qn8 name: imported-volume-h4qn8$ oc create -f <vm_manifest_file>.yaml