OpenShift virtualizacija: spremnici, KVM i virtualni strojevi

OpenShift virtualizacija (upstream projekt - Kubernetes: KubeVirt, vidi. здесь и здесь), nee Kontejnerska izvorna virtualizacija, predstavljena je kao funkcionalnost platforme OpenShift, koja je dizajnirana za implementaciju i upravljanje virtualnim strojevima (VM) kao osnovnim Kubernetes entitetima. Ovakav zadatak tehnički je zahtjevan zbog temeljnih razlika u tehnologiji. Kako bismo ostvarili ovaj cilj koristili smo poznate tehnologije temeljene na Red Hat Enterprise Linuxu i KVM-u, koje su s nama dugi niz godina i dokazale su svoju učinkovitost.

OpenShift virtualizacija: spremnici, KVM i virtualni strojevi

U ovom ćemo članku pogledati tehničke aspekte OpenShift virtualizacije koji omogućuju koegzistiranje VM-ova i spremnika unutar jedne platforme koja njima upravlja kao jednom cjelinom.

Računski zadaci

Spremnici koriste mehanizme jezgre Linuxa kao što su prostori imena i cgrupe za izolaciju procesa i upravljanje resursima. Obično se pod procesima podrazumijevaju Python, Java aplikacije ili izvršne datoteke, ali zapravo to mogu biti bilo koji procesi, kao što su bash, Emacs ili vim.

Što je virtualni stroj? Sa stajališta hipervizora, ovo je također proces. Ali ne proces aplikacije, već KVM proces odgovoran za izvršavanje određenog VM-a.

OpenShift virtualizacija: spremnici, KVM i virtualni strojevi

Slika spremnika sadrži sve alate, biblioteke i datoteke potrebne za KVM virtualni stroj. Ako pregledamo pod pokrenutog VM-a, tamo ćemo vidjeti pomoćnike i qemu-kvm procese. Osim toga, imamo pristup KVM alatima za upravljanje virtualnim strojevima kao što su qemu-img, qemu-nbd i virsh.

OpenShift virtualizacija: spremnici, KVM i virtualni strojevi

Budući da je virtualni stroj pod, on automatski nasljeđuje sve funkcije pod-a u Kubernetesu. VM grupe, baš kao i obične grupe, podliježu shemama planera i kriterijima kao što su kvarovi, tolerancije, afinitet i anti-afinitet. Također dobivate prednosti visoke dostupnosti itd. Međutim, postoji jedna važna razlika: obične mahune ne migriraju od domaćina do domaćina u uobičajenom smislu. Ako se čvor prekine s mrežom, modul na njemu se prekida i ponovno dodjeljuje drugom čvoru u klasteru. A u slučaju virtualnog stroja, očekujemo da ćemo vidjeti živu migraciju.

Kako bi se riješio ovaj nedostatak, stvorena je prilagođena definicija resursa (CDR) koja opisuje mehanizam migracije uživo koji je odgovoran za pokretanje, nadzor i upravljanje migracijama uživo VM-ova između radnih čvorova.

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

Kada je čvor deaktiviran, automatski se stvaraju zadaci migracije za one virtualne strojeve koji imaju Live Migration postavljen kao svoju strategiju izbacivanja. Na taj način možete kontrolirati ponašanje virtualnih strojeva prilikom prelaska između čvorova klastera. Možete i konfigurirati Live Migration i upravljati VM-om, kao i svim ostalim podovima.

Mreža

Svaki Kubernetes sustav omogućuje komunikaciju između čvorova i podova pomoću softverskih SDN mreža. OpenShift nije iznimka i, počevši od verzije 3, za to koristi OpenShiftSDN prema zadanim postavkama. Osim toga, OpenShift 4 ima još jednu novu značajku pod nazivom Multus, koja vam omogućuje da učinite dostupnim više mreža i povežete podove na njih istovremeno.

OpenShift virtualizacija: spremnici, KVM i virtualni strojevi

Koristeći Multus, administrator može definirati dodatne CNI mreže, koje će zatim biti postavljene i konfigurirane na klasteru od strane posebnog mrežnog operatera klastera. Podovi se zatim povezuju na jednu ili više tih mreža, obično na standardni OpenShiftSDN i dodatno sučelje. SR-IOV uređaji, standardni Linux Bridge, MACVLAN i IPVLAN uređaji mogu se koristiti ako to treba vašem VM-u. Slika u nastavku pokazuje kako postaviti Multius CNI za mrežu mosta na eth1 sučelju:

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

U odnosu na OpenShift virtualizaciju, to znači da se VM može izravno povezati s vanjskom mrežom, zaobilazeći SDN. Ovo je važno za virtualne strojeve migrirane na OpenShift iz Red Hat Virtualization ili VMware vSphere, budući da ako imate pristup drugom OSI sloju, neće biti promjena mrežnih postavki. To također znači da VM može imati mrežnu adresu koja zaobilazi SDN. Tako možemo učinkovito koristiti specijalizirane mrežne adaptere ili se preko mreže izravno povezati sa sustavom za pohranu...

Možete saznati više o tome kako stvoriti i povezati OpenShift virtualizacijske virtualne strojeve s mrežom здесь... Osim, nmstate operator, postavljen kao dio OpenShift virtualizacije, nudi još jedan poznati način za stvaranje i upravljanje mrežnim konfiguracijama na fizičkim čvorovima koji se koriste pod hipervizorima.

Skladištenje

Povezivanje i upravljanje diskovima virtualnog stroja unutar OpenShift virtualizacije izvodi se korištenjem Kubernetes koncepata kao što su StorageClasses, PersistentVolumeClaims (PVC) i PersistentVolume (PV), kao i protokola za pohranu standarda za Kubernetes okruženje. To Kubernetes administratorima i aplikacijskim timovima daje uobičajeni, poznati način upravljanja i spremnicima i virtualnim strojevima. Mnogim administratorima virtualizacijskih okruženja ovaj koncept može zvučati poznato jer koristi isti princip odvajanja konfiguracijskih datoteka i diskova VM-a koji se koristi u OpenStacku i mnogim drugim platformama u oblaku.

Međutim, ne možemo jednostavno svaki put stvoriti novi disk za VM, budući da prilikom prelaska s hipervizora na OpenShift moramo spremiti podatke. Da, čak i kada implementiramo novi VM, uvijek je brže to učiniti iz predloška nego stvoriti ga od nule. Dakle, trebamo funkcionalnost za uvoz postojećih diskova.

Kako bi se pojednostavio ovaj zadatak, OpenShift virtualizacija implementira projekt Containerized Data Importer (CDI), koji smanjuje uvoz disk slika diskova iz više izvora na stvaranje PVC unosa.

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

Upravo ovaj unos aktivira CDI, pokrećući niz radnji prikazanih na slici ispod:

OpenShift virtualizacija: spremnici, KVM i virtualni strojevi

Nakon što CDI završi, PVC će sadržavati disk virtualnog stroja spreman za upotrebu i pretvoren u standardni OpenShift format...
Kada radite s OpenShift virtualizacijom, OpenShift Container Storage (OCS), Red Hat rješenje temeljeno na Ceph datotečnom sustavu koje implementira funkciju trajne pohrane za spremnike, također je korisno. Uz standardne PVC metode pristupa - RWO (blok) i RWX (datoteka) - OCS nudi RWX za neobrađene blok uređaje, što je vrlo korisno za dijeljenje blok pristupa za aplikacije s visokim zahtjevima za performansama. Osim toga, OCS podržava novi standard Object Bucket Claim, koji aplikacijama omogućuje izravnu upotrebu pohrane podataka o objektima.

Virtualni strojevi u kontejnerima

Ako ste zainteresirani provjeriti kako to radi, znajte da je OpenShift virtualizacija već dostupna u verziji Tech Preview kao dio OpenShift 3.11 i novije verzije. Vlasnici postojeće OpenShift pretplate mogu koristiti OpenShift virtualizaciju potpuno besplatno i bez dodatnih koraka. U vrijeme objavljivanja ovog posta, OpenShift 4.4 i OpenShift virtualizacija 2.3 su aktualni; ako koristite prethodne verzije, trebali biste izvršiti nadogradnju kako biste dobili najnovije značajke. Potpuno podržana verzija OpenShift virtualizacije trebala bi biti objavljena u drugoj polovici 2020.

Za više informacija obratite se OpenShift dokumentacija za upute za instalaciju, uključujući Odjeljak za višestruko postavljanje, koji pruža informacije o postavljanju vanjskih mreža.

Izvor: www.habr.com

Dodajte komentar