Virtualization OpenShift: kontenituri, KVM u magni virtwali

Virtualization OpenShift (proġett upstream - Kubernetes: KubeVirt, ara. hawn и hawn), nee Container-native Virtualization, ġiet introdotta bħala funzjonalità tal-pjattaforma OpenShift, li hija mfassla għall-iskjerament u l-ġestjoni ta 'magni virtwali (VMs) bħala entitajiet Kubernetes bażiċi. Dan it-tip ta 'kompitu huwa teknikament ta' sfida minħabba differenzi fundamentali fit-teknoloġija. Sabiex nilħqu dan l-għan, użajna teknoloġiji familjari bbażati fuq Red Hat Enterprise Linux u KVM, li ilhom magħna għal ħafna snin u wrew l-effettività tagħhom.

Virtualization OpenShift: kontenituri, KVM u magni virtwali

F'dan l-artikolu, se nħarsu lejn l-aspetti tekniċi tal-virtwalizzazzjoni OpenShift li jagħmluha possibbli għall-VMs u l-kontenituri li jikkoeżistu fi ħdan pjattaforma waħda li timmaniġġjahom bħala entità waħda.

Ħidmiet komputazzjonali

Il-kontenituri jużaw mekkaniżmi tal-kernel tal-Linux bħal namespaces u cgroups biex jiżolaw il-proċessi u jimmaniġġjaw ir-riżorsi. Normalment il-proċessi huma mifhuma bħala Python, applikazzjonijiet Java jew fajls eżekutibbli, iżda fil-fatt jistgħu jkunu kwalunkwe proċess, bħal bash, Emacs jew vim.

X'inhi magna virtwali? Mill-aspett tal-hypervisor, dan huwa wkoll proċess. Iżda mhux il-proċess ta 'applikazzjoni, iżda l-proċess KVM responsabbli għall-eżekuzzjoni ta' VM speċifiku.

Virtualization OpenShift: kontenituri, KVM u magni virtwali

L-immaġni tal-kontenitur fiha l-għodod, il-libreriji u l-fajls kollha meħtieġa għall-magna virtwali KVM. Jekk nispezzjonaw il-pod ta 'VM li qed taħdem, naraw hemm helpers u proċessi qemu-kvm. Barra minn hekk, għandna aċċess għal għodod KVM għall-ġestjoni ta 'magni virtwali bħal qemu-img, qemu-nbd u virsh.

Virtualization OpenShift: kontenituri, KVM u magni virtwali

Peress li magna virtwali hija pod, awtomatikament tirret il-funzjonalità kollha ta 'pod f'Kubernetes. Il-miżwed VM, bħall-imżiewed regolari, huma soġġetti għal skemi u kriterji ta' skedar bħalma huma t-tbajja', it-tollerazzjonijiet, l-affinità u l-anti-affinità. Ikollok ukoll il-benefiċċji ta 'disponibbiltà għolja, eċċ. Madankollu, hemm differenza waħda importanti: imżiewed regolari ma jemigrawx minn ospitanti għal ospitanti fis-sens tas-soltu. Jekk nodu jmur offline, il-pod fuqu jiġi tterminat u assenjat mill-ġdid għal nodu ieħor fil-cluster. U fil-każ ta 'magna virtwali, nistennew li naraw migrazzjoni ħaj.

Biex tindirizza din il-lakuna, inħolqot definizzjoni tar-riżorsi tad-dwana (CDR) biex tiddeskrivi l-mekkaniżmu ta 'migrazzjoni ħaj li huwa responsabbli għall-inizjalizzazzjoni, il-monitoraġġ u l-ġestjoni ta' migrazzjonijiet ħajjin ta 'VMs bejn in-nodi tal-ħaddiema.

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

Meta node jiġi diżattivat, il-kompiti tal-migrazzjoni jinħolqu awtomatikament għal dawk il-magni virtwali li għandhom il-Migrazzjoni Live stabbilita bħala l-istrateġija ta 'żgumbrament tagħhom. Dan il-mod tista 'tikkontrolla l-imġieba tal-magni virtwali meta tiċċaqlaq bejn in-nodi tal-clusters. Tista' kemm tikkonfigura l-Migrazzjoni Live kif ukoll timmaniġġja l-VM, bħall-imżiewed l-oħra kollha.

Network

Kwalunkwe sistema Kubernetes tipprovdi komunikazzjoni bejn nodi u imżiewed bl-użu ta 'netwerks SDN ta' softwer. OpenShift mhuwiex eċċezzjoni u, li jibda mill-verżjoni 3, juża OpenShiftSDN awtomatikament għal dan. Barra minn hekk, OpenShift 4 għandu karatteristika ġdida oħra msejħa Multus, li tippermettilek li tagħmel netwerks multipli disponibbli u tgħaqqad imżiewed magħhom fl-istess ħin.

Virtualization OpenShift: kontenituri, KVM u magni virtwali

Bl-użu ta' Multus, l-amministratur jista' jiddefinixxi netwerks CNI addizzjonali, li mbagħad jiġu skjerati u kkonfigurati fuq il-cluster minn Operatur speċjali tan-Netwerk tal-Cluster. Il-miżwed huma mbagħad konnessi ma 'wieħed jew aktar minn dawn in-netwerks, normalment l-OpenShiftSDN standard u interface addizzjonali. Tagħmir SR-IOV, apparat standard Linux Bridge, MACVLAN u IPVLAN kollha jistgħu jintużaw jekk il-VM tiegħek teħtieġha. Il-figura hawn taħt turi kif issettja Multus CNI għan-netwerk tal-pont fuq l-interface eth1:

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

Fir-rigward tal-virtwalizzazzjoni OpenShift, dan ifisser li VM tista 'tkun konnessa ma' netwerk estern direttament, billi tevita l-SDN. Dan huwa importanti għall-magni virtwali emigrati lejn OpenShift minn Red Hat Virtualization jew VMware vSphere, peress li jekk ikollok aċċess għat-tieni saff OSI, mhux se jkun hemm bidla fis-settings tan-netwerk. Dan ifisser ukoll li l-VM jista 'jkollha indirizz tan-netwerk li jevita SDN. Għalhekk, nistgħu nużaw b'mod effettiv adapters tan-netwerk speċjalizzati, jew nikkonnettjaw direttament mas-sistema tal-ħażna fuq in-netwerk...

Tista' titgħallem aktar dwar kif toħloq u tikkonnettja magni virtwali tal-virtwalizzazzjoni OpenShift man-netwerk hawn... Barra minn hekk, operatur nmstate, skjerat bħala parti mill-virtwalizzazzjoni ta 'OpenShift, joffri mod familjari ieħor biex jinħolqu u jimmaniġġjaw konfigurazzjonijiet tan-netwerk fuq nodi fiżiċi li jintużaw taħt hypervisors.

Ħażna

Il-konnessjoni u l-ġestjoni tad-diski tal-magni virtwali fi ħdan il-virtwalizzazzjoni OpenShift titwettaq bl-użu ta 'kunċetti Kubernetes bħal StorageClasses, PersistentVolumeClaims (PVC) u PersistentVolume (PV), kif ukoll protokolli ta' ħażna standard għall-ambjent Kubernetes. Dan jagħti lill-amministraturi u t-timijiet tal-applikazzjoni ta' Kubernetes mod komuni u familjari biex jimmaniġġjaw kemm il-kontenituri kif ukoll il-magni virtwali. U għal ħafna amministraturi ta 'ambjenti ta' virtwalizzazzjoni, dan il-kunċett jista 'ħoss familjari minħabba li juża l-istess prinċipju ta' separazzjoni ta 'fajls u diski ta' konfigurazzjoni VM li jintuża f'OpenStack u f'ħafna pjattaformi sħab oħra.

Madankollu, ma nistgħux sempliċement noħolqu diska ġdida għall-VM kull darba, peress li meta ngħaddu mill-hypervisor għal OpenShift, irridu nsalvaw id-dejta. Iva, anke meta niskjeraw VM ġdida, dejjem ikun aktar mgħaġġel li nagħmluha minn mudell milli noħolqu mill-bidu. Għalhekk, għandna bżonn funzjonalità għall-importazzjoni diski eżistenti.

Biex tissimplifika dan il-kompitu, il-virtwalizzazzjoni ta 'OpenShift tuża l-proġett Containerized Data Importer (CDI), li jnaqqas l-importazzjoni ta' stampi tad-disk ta 'diski minn sorsi multipli biex toħloq dħul tal-PVC.

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

Hija din l-entrata li tattiva s-CDI, u tiskatta s-sekwenza ta' azzjonijiet murija fil-figura hawn taħt:

Virtualization OpenShift: kontenituri, KVM u magni virtwali

Wara li s-CDI ikun tlesta, il-PVC se jkun fih id-diska tal-magna virtwali lesta għall-użu u kkonvertita għall-format standard OpenShift...
Meta taħdem mal-virtwalizzazzjoni OpenShift, OpenShift Container Storage (OCS), soluzzjoni Red Hat ibbażata fuq is-sistema tal-fajls Ceph li timplimenta funzjonalità ta 'ħażna persistenti għall-kontenituri, hija wkoll utli. Minbarra l-metodi standard ta 'aċċess tal-PVC - RWO (blokk) u RWX (fajl) - OCS jipprovdi RWX għal tagħmir ta' blokk mhux maħdum, li huwa utli ħafna għall-qsim ta 'aċċess ta' blokk għal applikazzjonijiet b'rekwiżiti ta 'prestazzjoni għolja. Barra minn hekk, OCS jappoġġja l-istandard il-ġdid tal-Object Bucket Claim, li jippermetti lill-applikazzjonijiet jużaw direttament il-ħażna tad-dejta tal-oġġett.

Magni virtwali f'kontenituri

Jekk inti interessat li tiċċekkja kif taħdem, allura taf li l-virtwalizzazzjoni ta 'OpenShift hija diġà disponibbli fil-verżjoni Tech Preview bħala parti minn OpenShift 3.11 u ogħla. Sidien ta' abbonament eżistenti ta' OpenShift jistgħu jużaw il-virtwalizzazzjoni ta' OpenShift kompletament mingħajr ħlas u mingħajr ebda passi addizzjonali. Fiż-żmien ta’ din il-kariga, OpenShift 4.4 u OpenShift virtwalizzazzjoni 2.3 huma kurrenti; jekk qed tuża verżjonijiet preċedenti, għandek taġġorna biex tikseb l-aħħar karatteristiċi. Verżjoni appoġġjata bis-sħiħ tal-virtwalizzazzjoni OpenShift għandha tiġi rilaxxata fit-tieni nofs tal-2020.

Għal aktar informazzjoni, jekk jogħġbok irreferi għal Dokumentazzjoni OpenShift għall-istruzzjonijiet ta 'installazzjoni, inklużi Sezzjoni tas-setup Multus, li tipprovdi informazzjoni dwar it-twaqqif ta' netwerks esterni.

Sors: www.habr.com

Żid kumment