Виртуализатсияи OpenShift (лоиҳаи болоӣ - Kubernetes: KubeVirt, нигаред
Дар ин мақола, мо ҷанбаҳои техникии виртуализатсияи OpenShift-ро дида мебароем, ки имкон медиҳад VM ва контейнерҳо дар як платформаи ягона, ки онҳоро ҳамчун як воҳиди ягона идора мекунанд, якҷоя зиндагӣ кунанд.
Вазифаҳои ҳисоббарорӣ
Контейнерҳо барои ҷудо кардани равандҳо ва идоракунии захираҳо механизмҳои ядрои Linux, ба монанди фазоҳои номҳо ва гурӯҳҳоро истифода мебаранд. Одатан равандҳо ҳамчун барномаҳои Python, Java ё файлҳои иҷрошаванда фаҳмида мешаванд, аммо дар асл онҳо метавонанд ҳама гуна равандҳо бошанд, ба монанди bash, Emacs ё vim.
Мошини виртуалӣ чист? Аз нуқтаи назари гипервизор, ин ҳам раванд аст. Аммо на раванди дархост, балки раванди KVM барои иҷрои VM-и мушаххас масъул аст.
Тасвири контейнер дорои тамоми асбобҳо, китобхонаҳо ва файлҳои барои мошини виртуалии KVM лозим аст. Агар мо поди VM-ро тафтиш кунем, мо дар он чо ёрдамчиён ва процессхои qemu-kvm-ро мебинем. Илова бар ин, мо ба асбобҳои KVM барои идоракунии мошинҳои виртуалӣ ба монанди qemu-img, qemu-nbd ва virsh дастрасӣ дорем.
Азбаски мошини маҷозӣ подкаст аст, он ба таври худкор тамоми функсияҳои подкастро дар Кубернетес мерос мегирад. Подшоҳҳои VM, ба монанди подкҳои муқаррарӣ, ба схемаҳо ва меъёрҳои банақшагирӣ, аз қабили доғҳо, таҳаммулпазирӣ, наздикӣ ва зиддиҳамбастагӣ қарор доранд. Шумо инчунин бартариҳои дастрасии баланд ва ғайра мегиред. Бо вуҷуди ин, як фарқияти муҳим вуҷуд дорад: қуттиҳои муқаррарӣ ба маънои муқаррарӣ аз мизбон ба мизбон муҳоҷират намекунанд. Агар гиреҳ офлайн шавад, подкоҳи он қатъ карда мешавад ва ба гиреҳи дигари кластер таъин карда мешавад. Ва дар мавриди мошини маҷозӣ, мо интизорем, ки муҳоҷирати зиндаро бубинем.
Барои бартараф кардани ин норасоӣ, таърифи захираҳои фармоишӣ (CDR) барои тавсифи механизми муҳоҷирати зинда, ки барои оғоз, назорат ва идоракунии муҳоҷирати зиндаи VMҳо байни гиреҳҳои коргар масъул аст, сохта шудааст.
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstanceMigration
metadata:
name: migration-job
spec:
vmiName: fedora
Вақте ки гиреҳ ғайрифаъол карда мешавад, вазифаҳои муҳоҷират ба таври худкор барои он мошинҳои виртуалӣ, ки Муҳоҷирати Зиндагӣ ҳамчун стратегияи ихроҷи онҳо таъин шудаанд, эҷод карда мешаванд. Бо ин роҳ шумо метавонед рафтори мошинҳои виртуалиро ҳангоми ҳаракат байни гиреҳҳои кластер назорат кунед. Шумо ҳам метавонед Мигратсияи Liveро танзим кунед ва VM-ро ба мисли ҳама подкастҳои дигар идора кунед.
Шабака
Ҳама гуна системаи Kubernetes иртибот байни гиреҳҳо ва подкҳоро бо истифода аз шабакаҳои нармафзори SDN таъмин мекунад. OpenShift истисно нест ва аз версияи 3 сар карда, барои ин OpenShiftSDN-ро бо нобаёнӣ истифода мебарад. Илова бар ин, OpenShift 4 боз як хусусияти нав бо номи Multus дорад, ки ба шумо имкон медиҳад шабакаҳои сершуморро дастрас кунед ва ҳамзамон подкҳоро ба онҳо пайваст кунед.
Бо истифода аз Multus, администратор метавонад шабакаҳои иловагии CNI-ро муайян кунад, ки баъдан аз ҷониби Оператори махсуси Шабакаи Кластер дар кластер ҷойгир ва танзим карда мешавад. Пас аз он, поддонҳо ба як ё якчанд ин шабакаҳо пайваст мешаванд, одатан OpenShiftSDN стандартӣ ва интерфейси иловагӣ. Дастгоҳҳои SR-IOV, стандартии Linux Bridge, дастгоҳҳои MACVLAN ва IPVLAN ҳама метавонанд истифода шаванд, агар VM-и шумо ба он ниёз дошта бошад. Дар расми зер нишон дода шудааст, ки чӣ тавр Multus CNI барои шабакаи пул дар интерфейси 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
Дар робита ба виртуализатсияи OpenShift, ин маънои онро дорад, ки VM метавонад мустақиман ба шабакаи беруна пайваст шуда, аз SDN гузашт. Ин барои мошинҳои маҷозӣ, ки аз Red Hat Virtualization ё VMware vSphere ба OpenShift кӯчонида шудаанд, муҳим аст, зеро агар шумо ба қабати дуюми OSI дастрасӣ дошта бошед, дар танзимоти шабака тағирот ба амал намеояд. Ин инчунин маънои онро дорад, ки VM метавонад суроғаи шабака дошта бошад, ки SDN-ро гузарад. Ҳамин тариқ, мо метавонем адаптерҳои махсуси шабакавиро самаранок истифода барем ё мустақиман ба системаи нигоҳдорӣ тавассути шабака пайваст шавем...
Шумо метавонед дар бораи чӣ гуна эҷод ва пайваст кардани мошинҳои виртуалии OpenShift ба шабака маълумоти бештар гиред
Нигоҳдорӣ
Пайвастшавӣ ва идоракунии дискҳои мошини виртуалӣ дар доираи виртуализатсияи OpenShift бо истифода аз консепсияҳои Kubernetes ба монанди StorageClasses, PersistentVolumeClaims (PVC) ва PersistentVolume (PV), инчунин протоколҳои нигаҳдории стандартӣ барои муҳити Kubernetes анҷом дода мешавад. Ин ба маъмурон ва гурӯҳҳои барномавии Kubernetes роҳи маъмул ва шиноси идоракунии ҳам контейнерҳо ва ҳам мошинҳои виртуалиро медиҳад. Ва барои бисёре аз маъмурони муҳитҳои виртуализатсия, ин консепсия метавонад шинос бошад, зеро он ҳамон принсипи ҷудо кардани файлҳои конфигуратсияи VM ва дискҳоро, ки дар OpenStack ва бисёр платформаҳои абрии дигар истифода мешаванд, истифода мебарад.
Аммо, мо наметавонем ҳар дафъа диски навро барои VM эҷод кунем, зеро ҳангоми гузаштан аз гипервизор ба OpenShift, мо бояд маълумотро захира кунем. Бале, ҳатто вақте ки мо VM-и навро ҷойгир мекунем, он ҳамеша аз қолаб иҷро кардани он тезтар аст, назар ба сохтани он аз сифр. Ҳамин тариқ, мо барои ворид кардани дискҳои мавҷуда функсия лозим аст.
Барои содда кардани ин вазифа, виртуализатсияи OpenShift лоиҳаи Containerized Data Importer (CDI) -ро истифода мебарад, ки воридоти тасвирҳои диски дискҳоро аз сарчашмаҳои гуногун то эҷоди вуруди 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
Маҳз ин сабт аст, ки CDI-ро фаъол карда, пайдарпайии амалҳои дар расми зер нишон додашударо оғоз мекунад:
Пас аз анҷоми CDI, PVC диски мошини виртуалиро дар бар мегирад, ки барои истифода омода аст ва ба формати стандартии OpenShift табдил дода мешавад...
Ҳангоми кор бо виртуализатсияи OpenShift, OpenShift Container Storage (OCS), як ҳалли Red Hat дар асоси системаи файлии Ceph, ки функсияҳои нигоҳдории доимиро барои контейнерҳо амалӣ мекунад, низ муфид аст. Илова ба усулҳои стандартии дастрасии PVC - RWO (блок) ва RWX (файл) - OCS RWX-ро барои дастгоҳҳои блоки хом таъмин мекунад, ки барои мубодилаи дастрасии блок барои замимаҳои дорои талаботи баланди иҷроиш хеле муфид аст. Илова бар ин, OCS стандарти нави Object Bucket Claim -ро дастгирӣ мекунад, ки ба барномаҳо имкон медиҳад, ки бевосита нигаҳдории додаҳои объектиро истифода баранд.
Мошинҳои виртуалӣ дар контейнерҳо
Агар шумо ба тафтиш кардани он, ки чӣ тавр кор мекунад, таваҷҷӯҳ дошта бошед, пас бидонед, ки виртуализатсияи OpenShift аллакай дар версияи пешнамоиши техникӣ ҳамчун як қисми OpenShift 3.11 ва навтар дастрас аст. Соҳибони обунаи мавҷудаи OpenShift метавонанд виртуализатсияи OpenShift-ро комилан ройгон ва бидуни қадамҳои иловагӣ истифода баранд. Дар замони интишор, OpenShift 4.4 ва OpenShift virtualization 2.3 ҷорӣ мебошанд; Агар шумо версияҳои қаблиро истифода баред, шумо бояд навсозӣ кунед, то хусусиятҳои навтаринро ба даст оред. Версияи пурра дастгирӣшудаи виртуализатсияи OpenShift бояд дар нимаи дуюми соли 2020 бароварда шавад.
Барои маълумоти иловагӣ ба руҷӯъ кунед
Манбаъ: will.com