OpenShift sýndarvæðing: gámar, KVM og sýndarvélar

OpenShift sýndarvæðing (uppstreymisverkefni - Kubernetes: KubeVirt, sjá. hér и hér), þ.e. ílát-native Virtualization, var kynnt sem virkni OpenShift pallsins, sem er hannaður til að dreifa og stjórna sýndarvélum (VMs) sem grunneiningar Kubernetes. Svona verkefni er tæknilega krefjandi vegna grundvallarmunar á tækni. Til þess að ná þessu markmiði notuðum við kunnuglega tækni byggða á Red Hat Enterprise Linux og KVM, sem hefur fylgt okkur í mörg ár og hefur sannað virkni sína.

OpenShift sýndarvæðing: gámar, KVM og sýndarvélar

Í þessari grein munum við skoða tæknilega þætti OpenShift sýndarvæðingar sem gera VM og gáma kleift að lifa saman á einum vettvangi sem heldur utan um þá sem eina heild.

Reikniverkefni

Gámar nota Linux kjarnakerfi eins og nafnrými og cgroups til að einangra ferla og stjórna auðlindum. Venjulega eru ferlar skildir sem Python, Java forrit eða keyranlegar skrár, en í raun geta þeir verið hvaða ferli sem er, eins og bash, Emacs eða vim.

Hvað er sýndarvél? Frá sjónarhóli yfirsjónarmannsins er þetta líka ferli. En ekki umsóknarferlið, heldur KVM ferlið sem ber ábyrgð á því að framkvæma tiltekna VM.

OpenShift sýndarvæðing: gámar, KVM og sýndarvélar

Gámamyndin inniheldur öll verkfæri, bókasöfn og skrár sem þarf fyrir KVM sýndarvélina. Ef við skoðum belg á hlaupandi VM, munum við sjá þar aðstoðarmenn og qemu-kvm ferla. Að auki höfum við aðgang að KVM verkfærum til að stjórna sýndarvélum eins og qemu-img, qemu-nbd og virsh.

OpenShift sýndarvæðing: gámar, KVM og sýndarvélar

Þar sem sýndarvél er fræbelgur erfir hún sjálfkrafa alla virkni fræbelgs í Kubernetes. VM belg, rétt eins og venjulegir belg, eru háðir tímaáætlunarkerfum og viðmiðum eins og blekkingum, þolmörkum, sækni og and-sækni. Þú færð líka ávinninginn af miklu framboði osfrv. Hins vegar er einn mikilvægur munur: venjulegir fræbelgir flytjast ekki frá hýsil til hýsils í venjulegum skilningi. Ef hnútur fer án nettengingar er hólfinu á honum hætt og endurúthlutað á annan hnút í klasanum. Og ef um sýndarvél er að ræða, gerum við ráð fyrir að sjá flutning í beinni.

Til að bregðast við þessu bili var sérsniðin auðlindaskilgreining (CDR) búin til til að lýsa flutningskerfi í beinni sem er ábyrgur fyrir frumstillingu, eftirliti og stjórnun lifandi flutninga á VM milli starfsmannahnúta.

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

Þegar hnútur er óvirkur, eru flutningsverkefni sjálfkrafa búin til fyrir þær sýndarvélar sem hafa Live Migration stillt sem brottflutningsstefnu. Þannig geturðu stjórnað hegðun sýndarvéla þegar þú ferð á milli klasahnúta. Þú getur bæði stillt Live Migration og stjórnað VM, eins og öllum öðrum belgjum.

Сеть

Hvaða Kubernetes kerfi sem er veitir samskipti milli hnúta og fræbelgja með því að nota SDN hugbúnaðarnet. OpenShift er engin undantekning og, frá útgáfu 3, notar OpenShiftSDN sjálfgefið fyrir þetta. Að auki hefur OpenShift 4 annan nýjan eiginleika sem kallast Multus, sem gerir þér kleift að gera mörg net aðgengileg og tengja fræbelg við þau samtímis.

OpenShift sýndarvæðing: gámar, KVM og sýndarvélar

Með því að nota Multus getur stjórnandinn skilgreint viðbótar CNI net, sem síðan verða sett upp og stillt á þyrpingunni af sérstökum Cluster Network Operator. Bækurnar eru síðan tengdar við eitt eða fleiri af þessum netum, venjulega venjulegu OpenShiftSDN og viðbótarviðmóti. SR-IOV tæki, venjuleg Linux Bridge, MACVLAN og IPVLAN tæki geta öll verið notuð ef VM þinn þarfnast þess. Myndin hér að neðan sýnir hvernig á að stilla Multus CNI fyrir brúarnetið á eth1 viðmótinu:

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

Í tengslum við OpenShift sýndarvæðingu þýðir þetta að hægt er að tengja VM við ytra net beint, framhjá SDN. Þetta er mikilvægt fyrir sýndarvélar sem fluttar eru yfir í OpenShift frá Red Hat Virtualization eða VMware vSphere, þar sem ef þú hefur aðgang að öðru OSI laginu verður engin breyting á netstillingum. Þetta þýðir líka að VM gæti verið með netfang sem framhjá SDN. Þannig getum við í raun notað sérhæfða netmillistykki eða tengst beint við geymslukerfið í gegnum netið...

Þú getur lært meira um hvernig á að búa til og tengja OpenShift sýndarvélar sýndarvélar við netið hér... Að auki, nmstate rekstraraðili, beitt sem hluti af OpenShift sýndarvæðingu, býður upp á aðra kunnuglega leið til að búa til og stjórna netstillingum á líkamlegum hnútum sem eru notaðir undir yfirsýnum.

Geymsla

Tenging og stjórnun sýndarvélardiska innan OpenShift sýndarvæðingar er framkvæmd með því að nota Kubernetes hugtök eins og StorageClasses, PersistentVolumeClaims (PVC) og PersistentVolume (PV), sem og geymslusamskiptareglur staðal fyrir Kubernetes umhverfið. Þetta gefur Kubernetes stjórnendum og forritateymum algenga, kunnuglega leið til að stjórna bæði gámum og sýndarvélum. Og fyrir marga stjórnendur sýndarvæðingarumhverfis gæti þetta hugtak hljómað kunnuglega vegna þess að það notar sömu reglu um að aðskilja VM stillingarskrár og diska sem notuð eru í OpenStack og mörgum öðrum skýjapöllum.

Hins vegar getum við ekki einfaldlega búið til nýjan disk fyrir VM í hvert skipti, þar sem þegar við flytjum úr hypervisor yfir í OpenShift þurfum við að vista gögnin. Já, jafnvel þegar við setjum upp nýjan VM er alltaf fljótlegra að gera það úr sniðmáti en að búa það til frá grunni. Þannig þurfum við virkni til að flytja inn núverandi diska.

Til að einfalda þetta verkefni notar OpenShift sýndarvæðingu verkefnið Containerized Data Importer (CDI) sem dregur úr innflutningi á diskamyndum af diskum frá mörgum aðilum til að búa til PVC færslu.

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

Það er þessi færsla sem virkjar CDI, sem kallar fram röð aðgerða sem sýnd er á myndinni hér að neðan:

OpenShift sýndarvæðing: gámar, KVM og sýndarvélar

Eftir að CDI hefur lokið mun PVC innihalda sýndarvélardiskinn sem er tilbúinn til notkunar og breytt í staðlað OpenShift snið...
Þegar unnið er með OpenShift sýndarvæðingu er OpenShift Container Storage (OCS), Red Hat lausn byggð á Ceph skráarkerfinu sem útfærir viðvarandi geymsluvirkni fyrir gáma, einnig gagnleg. Til viðbótar við venjulegu PVC aðgangsaðferðirnar - RWO (blokk) og RWX (skrá) - veitir OCS RWX fyrir hrá blokkartæki, sem er mjög gagnlegt til að deila blokkaðgangi fyrir forrit með miklar kröfur um afköst. Að auki styður OCS nýja Object Bucket Claim staðalinn, sem gerir forritum kleift að nota beint hlutgagnageymslu.

Sýndarvélar í gámum

Ef þú hefur áhuga á að athuga hvernig það virkar, þá veistu að OpenShift sýndarvæðing er nú þegar fáanleg í Tech Preview útgáfunni sem hluti af OpenShift 3.11 og nýrri. Eigendur núverandi OpenShift áskriftar geta notað OpenShift sýndarvæðingu algjörlega án endurgjalds og án frekari skrefa. Á þeim tíma sem þessi færsla er birt eru OpenShift 4.4 og OpenShift sýndarvæðing 2.3 núverandi; ef þú ert að nota fyrri útgáfur ættirðu að uppfæra til að fá nýjustu eiginleikana. Fullstudd útgáfa af OpenShift sýndarvæðingu ætti að koma út seinni hluta árs 2020.

Fyrir frekari upplýsingar, vinsamlegast vísa til OpenShift skjöl fyrir uppsetningarleiðbeiningar, þ.m.t Multis uppsetningarhluti, sem veitir upplýsingar um uppsetningu ytri neta.

Heimild: www.habr.com

Bæta við athugasemd