Virtualizácia OpenShift (upstream projekt - Kubernetes: KubeVirt, viď.
V tomto článku sa pozrieme na technické aspekty virtualizácie OpenShift, ktoré umožňujú koexistenciu virtuálnych počítačov a kontajnerov v rámci jednej platformy, ktorá ich spravuje ako jeden celok.
Výpočtové úlohy
Kontajnery používajú mechanizmy jadra Linuxu, ako sú menné priestory a skupiny cgroups, na izoláciu procesov a správu zdrojov. Procesmi sa zvyčajne rozumejú Python, Java aplikácie alebo spustiteľné súbory, ale v skutočnosti to môžu byť akékoľvek procesy, ako bash, Emacs alebo vim.
Čo je virtuálny stroj? Z pohľadu hypervízora je to tiež proces. Nie však proces aplikácie, ale proces KVM zodpovedný za spustenie konkrétneho VM.
Obraz kontajnera obsahuje všetky nástroje, knižnice a súbory potrebné pre virtuálny stroj KVM. Ak skontrolujeme pod bežiaceho VM, uvidíme tam pomocníkov a procesy qemu-kvm. Okrem toho máme prístup k nástrojom KVM na správu virtuálnych strojov, ako sú qemu-img, qemu-nbd a virsh.
Keďže virtuálny počítač je modul, automaticky zdedí všetky funkcie modulu v Kubernetes. VM moduly, rovnako ako bežné moduly, podliehajú plánovacím schémam a kritériám, ako sú kontaminácie, tolerancie, afinita a anti-afinita. Získate tiež výhody vysokej dostupnosti atď. Je tu však jeden dôležitý rozdiel: bežné struky nemigrujú z hostiteľa na hostiteľa v obvyklom zmysle. Ak uzol prejde do režimu offline, modul na ňom sa ukončí a znova sa pridelí inému uzlu v klastri. A v prípade virtuálneho počítača očakávame živú migráciu.
Na vyriešenie tejto medzery bola vytvorená definícia vlastného zdroja (CDR), ktorá popisuje mechanizmus živej migrácie, ktorý je zodpovedný za inicializáciu, monitorovanie a správu živých migrácií virtuálnych počítačov medzi pracovnými uzlami.
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstanceMigration
metadata:
name: migration-job
spec:
vmiName: fedora
Keď je uzol deaktivovaný, automaticky sa vytvoria úlohy migrácie pre tie virtuálne počítače, ktoré majú nastavenú migráciu v reálnom čase ako stratégiu vysťahovania. Týmto spôsobom môžete ovládať správanie virtuálnych počítačov pri pohybe medzi uzlami klastra. Môžete nakonfigurovať Live Migration a spravovať VM, ako všetky ostatné moduly.
Sieť
Akýkoľvek systém Kubernetes poskytuje komunikáciu medzi uzlami a modulmi pomocou softvérových sietí SDN. OpenShift nie je výnimkou a od verzie 3 na to štandardne používa OpenShiftSDN. Okrem toho má OpenShift 4 ďalšiu novú funkciu s názvom Multus, ktorá vám umožňuje sprístupniť viacero sietí a pripojiť k nim moduly súčasne.
Pomocou Multus môže správca definovať ďalšie siete CNI, ktoré potom nasadí a nakonfiguruje v klastri špeciálny operátor klastrovej siete. Moduly sú potom pripojené k jednej alebo viacerým z týchto sietí, zvyčajne k štandardnému OpenShiftSDN a ďalšiemu rozhraniu. Zariadenia SR-IOV, štandardné Linux Bridge, MACVLAN a IPVLAN zariadenia môžu byť použité, ak to váš VM potrebuje. Obrázok nižšie ukazuje, ako nastaviť Multus CNI pre mostovú sieť na rozhraní 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
Vo vzťahu k virtualizácii OpenShift to znamená, že virtuálny počítač môže byť pripojený k externej sieti priamo, čím sa obíde SDN. To je dôležité pre virtuálne stroje migrované na OpenShift z Red Hat Virtualization alebo VMware vSphere, pretože ak máte prístup k druhej vrstve OSI, nedôjde k žiadnym zmenám v nastaveniach siete. To tiež znamená, že VM môže mať sieťovú adresu, ktorá obchádza SDN. Môžeme tak efektívne využívať špecializované sieťové adaptéry, alebo sa pripojiť priamo k úložnému systému cez sieť...
Môžete sa dozvedieť viac o tom, ako vytvoriť a pripojiť virtualizačné virtuálne stroje OpenShift k sieti
Skladovanie
Pripojenie a správa diskov virtuálnych strojov v rámci virtualizácie OpenShift sa vykonáva pomocou konceptov Kubernetes, ako sú StorageClasses, PersistentVolumeClaims (PVC) a PersistentVolume (PV), ako aj štandardných protokolov ukladania pre prostredie Kubernetes. To dáva správcom a aplikačným tímom Kubernetes bežný, známy spôsob správy kontajnerov aj virtuálnych počítačov. A pre mnohých správcov virtualizačných prostredí môže znieť tento koncept povedome, pretože využíva rovnaký princíp oddeľovania konfiguračných súborov VM a diskov, aký sa používa v OpenStack a mnohých iných cloudových platformách.
Nemôžeme však vždy jednoducho vytvoriť nový disk pre VM, pretože pri migrácii z hypervízora na OpenShift musíme uložiť dáta. Áno, aj keď nasadíme nový VM, je vždy rýchlejšie to urobiť zo šablóny, ako ju vytvoriť od začiatku. Preto potrebujeme funkcionalitu na import existujúcich diskov.
Na zjednodušenie tejto úlohy virtualizácia OpenShift nasadzuje projekt Containerized Data Importer (CDI), ktorý obmedzuje importovanie diskových obrazov diskov z viacerých zdrojov na vytváranie záznamu 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
Je to táto položka, ktorá aktivuje CDI a spúšťa postupnosť akcií zobrazených na obrázku nižšie:
Po dokončení CDI bude PVC obsahovať disk virtuálneho stroja pripravený na použitie a skonvertovaný do štandardného formátu OpenShift...
Pri práci s virtualizáciou OpenShift je užitočné aj OpenShift Container Storage (OCS), riešenie Red Hat založené na súborovom systéme Ceph, ktoré implementuje funkciu trvalého úložiska pre kontajnery. Okrem štandardných metód prístupu z PVC - RWO (blok) a RWX (súbor) - OCS poskytuje RWX pre zariadenia so surovým blokom, čo je veľmi užitočné na zdieľanie blokového prístupu pre aplikácie s vysokými požiadavkami na výkon. Okrem toho OCS podporuje nový štandard Object Bucket Claim, ktorý umožňuje aplikáciám priamo využívať ukladanie údajov o objektoch.
Virtuálne stroje v kontajneroch
Ak máte záujem skontrolovať, ako to funguje, tak vedzte, že virtualizácia OpenShift je už dostupná vo verzii Tech Preview ako súčasť OpenShift 3.11 a vyššej. Majitelia existujúceho predplatného OpenShift môžu využívať virtualizáciu OpenShift úplne zadarmo a bez akýchkoľvek ďalších krokov. V čase tohto príspevku sú aktuálne OpenShift 4.4 a OpenShift virtualizácia 2.3; ak používate predchádzajúce verzie, mali by ste inovovať, aby ste získali najnovšie funkcie. Plne podporovaná verzia virtualizácie OpenShift by mala byť vydaná v druhej polovici roku 2020.
Viac informácií nájdete na
Zdroj: hab.com