OpenShift virtualization: ntim, KVM thiab tshuab virtual

OpenShift virtualization (koom tes ua haujlwm - Kubernetes: KubeVirt, saib. no ΠΈ no), nee Container-native Virtualization, tau qhia ua haujlwm ntawm OpenShift platform, uas yog tsim los siv thiab tswj cov tshuab virtual (VMs) raws li cov chaw Kubernetes yooj yim. Cov hauj lwm zoo no yog kev nyuaj vim qhov sib txawv hauv kev siv tshuab. Yuav kom ua tiav lub hom phiaj no, peb tau siv cov thev naus laus zis paub raws li Red Hat Enterprise Linux thiab KVM, uas tau nyob nrog peb ntau xyoo thiab tau ua pov thawj lawv cov txiaj ntsig.

OpenShift virtualization: ntim, KVM thiab tshuab virtual

Hauv tsab xov xwm no, peb yuav saib cov txheej txheem ntawm OpenShift virtualization uas ua rau nws ua tau rau VMs thiab cov thawv ntim khoom sib koom ua ke hauv ib lub platform uas tswj hwm lawv ua ib qho chaw.

Kev ua haujlwm suav

Cov thawv ntim siv Linux kernel mechanisms xws li namespaces thiab cgroups los cais cov txheej txheem thiab tswj cov peev txheej. Feem ntau cov txheej txheem tau nkag siab zoo li Python, Java daim ntawv thov lossis cov ntaub ntawv ua tiav, tab sis qhov tseeb lawv tuaj yeem yog cov txheej txheem, xws li bash, Emacs lossis vim.

Lub tshuab virtual yog dab tsi? Los ntawm qhov pom ntawm tus hypervisor, qhov no kuj yog txheej txheem. Tab sis tsis yog cov txheej txheem thov, tab sis cov txheej txheem KVM lub luag haujlwm rau kev ua tiav VM tshwj xeeb.

OpenShift virtualization: ntim, KVM thiab tshuab virtual

Cov duab thawv muaj tag nrho cov cuab yeej, cov tsev qiv ntawv thiab cov ntaub ntawv xav tau rau KVM lub tshuab virtual. Yog tias peb tshawb xyuas lub plhaub taum ntawm VM khiav, peb yuav pom muaj cov pab cuam thiab cov txheej txheem qemu-kvm. Tsis tas li ntawd, peb muaj kev nkag mus rau KVM cov cuab yeej los tswj cov tshuab virtual xws li qemu-img, qemu-nbd thiab virsh.

OpenShift virtualization: ntim, KVM thiab tshuab virtual

Txij li thaum lub tshuab virtual yog lub plhaub taum pauv, nws tau txais tag nrho cov kev ua haujlwm ntawm lub plhaub hauv Kubernetes. VM pods, ib yam li cov pods tsis tu ncua, raug rau cov txheej txheem teem sijhawm thiab cov txheej txheem xws li taints, zam, affinity thiab anti-affinity. Koj kuj tau txais txiaj ntsig ntawm kev muaj siab, thiab lwm yam. Txawm li cas los xij, muaj ib qho tseem ceeb sib txawv: cov pods tsis tu ncua tsis txav los ntawm tus tswv mus rau tus tswv tsev hauv kev xav li niaj zaus. Yog hais tias ib lub node mus offline, lub pod ntawm nws yog txiav thiab reassigned rau lwm qhov ntawm pawg. Thiab nyob rau hauv rooj plaub ntawm lub tshuab virtual, peb cia siab tias yuav pom kev tsiv teb tsaws chaw nyob.

Txhawm rau hais txog qhov sib txawv no, ib qho kev cai txhais cov peev txheej (CDR) tau tsim los piav txog cov txheej txheem kev tsiv teb tsaws chaw nyob uas yog lub luag haujlwm rau kev pib, saib xyuas, thiab tswj kev tsiv teb tsaws chaw ntawm VMs ntawm cov neeg ua haujlwm.

apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstanceMigration
metadata:
  name: migration-job
spec:
  vmiName: fedora

Thaum lub node deactivated, cov hauj lwm tsiv teb tsaws chaw tau raug tsim rau cov tshuab virtual uas muaj Live Migration teem raws li lawv lub tswv yim tshem tawm. Txoj kev no koj tuaj yeem tswj tus cwj pwm ntawm cov tshuab virtual thaum tsiv ntawm pawg nodes. Koj tuaj yeem teeb tsa Live Migration thiab tswj VM, zoo li tag nrho lwm cov pods.

Network

Ib qho Kubernetes system muab kev sib txuas lus ntawm nodes thiab pods siv software SDN networks. OpenShift tsis muaj qhov tshwj xeeb thiab, pib ntawm version 3, siv OpenShiftSDN los ntawm lub neej ntawd rau qhov no. Tsis tas li ntawd, OpenShift 4 muaj lwm yam tshiab hu ua Multus, uas tso cai rau koj los ua ntau lub network muaj thiab txuas cov pods rau lawv ib txhij.

OpenShift virtualization: ntim, KVM thiab tshuab virtual

Siv Multus, tus thawj tswj hwm tuaj yeem txhais tau CNI txuas ntxiv, uas yuav raug xa mus thiab teeb tsa ntawm pawg los ntawm Pawg Neeg Ua Haujlwm tshwj xeeb Cluster. Cov pods txuas nrog ib lossis ntau dua ntawm cov tes hauj lwm no, feem ntau yog tus qauv OpenShiftSDN thiab ib qho kev sib txuas ntxiv. SR-IOV li, tus qauv Linux Choj, MACVLAN thiab IPVLAN cov cuab yeej siv tau yog tias koj VM xav tau. Daim duab hauv qab no qhia tau hais tias yuav teeb Multus CNI rau tus choj network ntawm eth1 interface:

apiVersion: operator.openshift.io/v1
kind: Network
metadata:
  name: cluster
spec:
  additionalNetworks:
  - name: multus1
rawCNIConfig: '{ "cniVersion": "0.3.1", "type": "bridge", "master": "eth1", "ipam":
   { "type": "static", "addresses": [ { "address": "191.168.1.1/24" } ] } }'
   type: Raw

Hauv kev cuam tshuam rau OpenShift virtualization, qhov no txhais tau hais tias VM tuaj yeem txuas rau lwm lub network ncaj qha, hla SDN. Qhov no yog qhov tseem ceeb rau cov tshuab virtual tsiv mus rau OpenShift los ntawm Red Hat Virtualization lossis VMware vSphere, txij li yog tias koj nkag mus rau OSI txheej thib ob, yuav tsis muaj kev hloov pauv hauv kev teeb tsa network. Qhov no kuj txhais tau tias VM yuav muaj qhov chaw nyob hauv network uas hla SDN. Yog li, peb tuaj yeem siv tau tshwj xeeb network adapters, lossis txuas ncaj qha mus rau qhov chaw cia khoom hauv lub network ...

Koj tuaj yeem kawm paub ntxiv txog yuav ua li cas los tsim thiab txuas OpenShift virtualization virtual tshuab rau lub network no... Dhau li, nmstate tus neeg ua haujlwm, xa mus ua ib feem ntawm OpenShift virtualization, muaj lwm txoj hauv kev paub los tsim thiab tswj cov kev teeb tsa network ntawm lub cev uas siv nyob rau hauv hypervisors.

Cia

Kev sib txuas thiab tswj hwm lub tshuab virtual disks hauv OpenShift virtualization yog ua los ntawm Kubernetes cov ntsiab lus xws li StorageClasses, PersistentVolumeClaims (PVC) thiab PersistentVolume (PV), nrog rau cov txheej txheem khaws cia cov txheej txheem rau Kubernetes ib puag ncig. Qhov no muab Kubernetes cov thawj coj thiab pab pawg ua haujlwm ib yam, paub txog kev tswj hwm ob lub thawv thiab lub tshuab virtual. Thiab rau ntau tus thawj coj ntawm virtualization ib puag ncig, lub tswv yim no yuav hnov ​​​​zoo vim nws siv tib lub hauv paus ntsiab lus ntawm kev sib cais VM teeb tsa cov ntaub ntawv thiab cov disks uas siv hauv OpenStack thiab ntau lwm lub platform huab.

Txawm li cas los xij, peb tsis tuaj yeem tsim cov disk tshiab rau VM txhua zaus, txij li thaum tsiv los ntawm hypervisor mus rau OpenShift, peb yuav tsum khaws cov ntaub ntawv. Yog lawm, txawm tias thaum peb xa VM tshiab, nws ib txwm ua sai dua los ntawm tus qauv dua li tsim nws los ntawm kos. Yog li, peb xav tau functionality rau importing disks uas twb muaj lawm.

Txhawm rau ua kom yooj yim rau txoj haujlwm no, OpenShift virtualization deploys Containerized Data Importer (CDI) project, uas txo cov kev xa cov duab ntawm cov disks los ntawm ntau qhov chaw los tsim PVC nkag.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: "fedora-disk0"
  labels:
    app: containerized-data-importer
  annotations:
    cdi.kubevirt.io/storage.import.endpoint: "http://10.0.0.1/images/Fedora-Cloud-Base-31-1.9.x86_64.qcow2"
spec:
  storageClassName: ocs-gold
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi

Nws yog qhov kev nkag no uas qhib CDI, ua rau cov kab ke ntawm kev ua tau pom hauv daim duab hauv qab no:

OpenShift virtualization: ntim, KVM thiab tshuab virtual

Tom qab CDI tiav lawm, PVC yuav muaj lub tshuab virtual disk npaj siv thiab hloov mus rau tus qauv OpenShift hom ...
Thaum ua haujlwm nrog OpenShift virtualization, OpenShift Container Storage (OCS), Red Hat daws raws li Ceph cov ntaub ntawv kaw lus uas siv cov kev ua haujlwm tsis tu ncua rau cov ntim khoom, kuj tseem muaj txiaj ntsig. Ntxiv nrog rau cov txheej txheem kev nkag mus rau PVC - RWO (block) thiab RWX (cov ntaub ntawv) - OCS muab RWX rau cov khoom siv raw block, uas yog qhov tseem ceeb heev rau kev sib koom thaiv kev nkag mus rau cov ntawv thov uas yuav tsum tau ua haujlwm siab. Tsis tas li ntawd, OCS txhawb nqa tus qauv tshiab Object Bucket Claim, uas tso cai rau cov ntawv thov siv ncaj qha siv cov ntaub ntawv khaws cia.

Cov tshuab virtual hauv ntim

Yog tias koj txaus siab tshawb xyuas nws ua haujlwm li cas, tom qab ntawd paub tias OpenShift virtualization twb muaj nyob rau hauv Tech Preview version ua ib feem ntawm OpenShift 3.11 thiab siab dua. Cov tswv ntawm ib qho kev tso npe OpenShift uas twb muaj lawm tuaj yeem siv OpenShift virtualization dawb xwb thiab tsis muaj cov kauj ruam ntxiv. Thaum lub sijhawm tshaj tawm no, OpenShift 4.4 thiab OpenShift virtualization 2.3 yog tam sim no; yog tias koj siv cov ntawv dhau los, koj yuav tsum hloov kho kom tau txais cov yam ntxwv tshiab kawg. Ib qho kev txhawb nqa tag nrho ntawm OpenShift virtualization yuav tsum raug tso tawm hauv ib nrab xyoo 2020.

Yog xav paub ntxiv, thov mus saib OpenShift cov ntaub ntawv rau cov lus qhia installation, suav nrog Kev teeb tsa ntau ntu, uas muab cov ntaub ntawv hais txog kev teeb tsa lub network sab nraud.

Tau qhov twg los: www.hab.com

Ntxiv ib saib