OpenShift виртуалчлал (дээд урсгалын төсөл - Kubernetes: KubeVirt, үзнэ үү.
Энэ нийтлэлд бид OpenShift виртуалчлалын техникийн талыг авч үзэх бөгөөд энэ нь VM болон контейнеруудыг нэг байгууллага болгон удирддаг нэг платформ дотор зэрэгцэн орших боломжийг олгодог.
Тооцооллын даалгавар
Контейнерууд процессуудыг тусгаарлах, нөөцийг удирдахын тулд нэрийн орон зай, бүлгүүд гэх мэт Linux цөмийн механизмуудыг ашигладаг. Процессууд нь ихэвчлэн Python, Java програмууд эсвэл гүйцэтгэх файлууд гэж ойлгогддог боловч үнэндээ bash, Emacs эсвэл vim гэх мэт ямар ч процесс байж болно.
Виртуал машин гэж юу вэ? Гипервизорын үүднээс энэ нь бас процесс юм. Гэхдээ програмын процесс биш, харин тодорхой VM-ийг гүйцэтгэх үүрэгтэй KVM процесс юм.
Контейнерын зураг нь KVM виртуал машинд шаардлагатай бүх хэрэгсэл, номын сан, файлуудыг агуулдаг. Хэрэв бид ажиллаж байгаа VM-ийн подыг шалгавал тэнд туслахууд болон qemu-kvm процессуудыг харах болно. Нэмж дурдахад, бид qemu-img, qemu-nbd, virsh зэрэг виртуал машинуудыг удирдах KVM хэрэгслүүдэд хандах боломжтой.
Виртуал машин нь pod учраас Кубернетес дэх подын бүх функцийг автоматаар өвлөн авдаг. VM pods нь ердийн подволкуудын нэгэн адил хуваарийн схем болон бохирдол, хүлцэл, ойр дотно байдал, эсрэг хандлага зэрэг шалгуурт хамаарна. Та мөн өндөр хүртээмжтэй байх гэх мэт давуу талыг авах болно. Гэсэн хэдий ч нэг чухал ялгаа бий: ердийн хонхорцог нь ердийн утгаараа хостоос хост руу шилждэггүй. Хэрэв зангилаа офлайн болвол түүн дээрх pod нь дуусгавар болж кластерын өөр зангилаа руу дахин хуваарилагдана. Виртуал машины хувьд бид шууд шилжих хөдөлгөөнийг харах болно гэж найдаж байна.
Энэ цоорхойг арилгахын тулд ажилчдын зангилаа хоорондын VM-ийн шууд шилжилтийг эхлүүлэх, хянах, удирдах үүрэгтэй амьд шилжих механизмыг тайлбарлах тусгай нөөцийн тодорхойлолтыг (CDR) үүсгэсэн.
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstanceMigration
metadata:
name: migration-job
spec:
vmiName: fedora
Зангилаа идэвхгүй болсон үед шууд шилжих хөдөлгөөнийг нүүлгэх стратеги болгон тохируулсан виртуал машинуудад шилжих ажлууд автоматаар үүсгэгдэнэ. Ингэснээр та кластерийн зангилаа хооронд шилжих үед виртуал машинуудын үйлдлийг хянах боломжтой. Та Live Migration-ийг тохируулж, бусад бүх pods-ын нэгэн адил VM-г удирдах боломжтой.
Сүлжээ
Аливаа Kubernetes систем нь програм хангамжийн SDN сүлжээг ашиглан зангилаа ба хонгилын хоорондох холбоог хангадаг. OpenShift нь үл хамаарах зүйл биш бөгөөд 3-р хувилбараас эхлэн үүнд зориулж OpenShiftSDN-г ашигладаг. Нэмж дурдахад, OpenShift 4 нь Multus хэмээх өөр нэг шинэ функцтэй бөгөөд энэ нь олон сүлжээг ашиглах боломжтой болгож, тэдгээрт нэгэн зэрэг pods холбох боломжийг олгодог.
Multus-ийг ашигласнаар администратор нэмэлт CNI сүлжээг тодорхойлж болох бөгөөд дараа нь тусгай Cluster Network Operator-ээр кластер дээр байрлуулж, тохируулах болно. Дараа нь хонхорцог нь эдгээр сүлжээнүүдийн нэг буюу хэд хэдэн сүлжээнд, ихэвчлэн стандарт OpenShiftSDN болон нэмэлт интерфейстэй холбогддог. Хэрэв таны VM хэрэгтэй бол SR-IOV төхөөрөмжүүд, стандарт Linux Bridge, MACVLAN болон IPVLAN төхөөрөмжүүдийг ашиглаж болно. Доорх зураг нь eth1 интерфейс дээрх гүүрний сүлжээнд Multus CNI-г хэрхэн тохируулахыг харуулж байна:
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 виртуалчлалын хүрээнд виртуал машины дискүүдийг холбох, удирдах нь StorageClasses, PersistentVolumeClaims (PVC) болон PersistentVolume (PV) зэрэг Kubernetes концепцууд болон Kubernetes орчны стандарт хадгалах протоколуудыг ашиглан хийгддэг. Энэ нь Kubernetes-ийн администраторууд болон програмын багуудад чингэлэг болон виртуал машиныг удирдах нийтлэг, танил аргыг өгдөг. Виртуалчлалын орчны олон администраторуудын хувьд энэ ойлголт нь OpenStack болон бусад олон клоуд платформ дээр ашиглагддаг VM тохиргооны файлууд болон дискүүдийг салгах ижил зарчмыг ашигладаг тул танил сонсогдож магадгүй юм.
Гэсэн хэдий ч бид гипервизороос OpenShift руу шилжих үед өгөгдлийг хадгалах шаардлагатай байдаг тул VM-д зориулж шинэ диск үүсгэж болохгүй. Тийм ээ, бид шинэ 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 виртуалчлалтай ажиллахдаа чингэлэгт зориулсан байнгын хадгалах функцийг хэрэгжүүлдэг Ceph файлын систем дээр суурилсан Red Hat шийдэл болох OpenShift Container Storage (OCS) нь бас хэрэгтэй. Стандарт PVC хандалтын аргуудаас гадна RWO (блок) ба RWX (файл) - OCS нь түүхий блок төхөөрөмжид RWX-ийг өгдөг бөгөөд энэ нь гүйцэтгэлийн өндөр шаардлага бүхий програмуудад блок хандалтыг хуваалцахад маш их хэрэгтэй байдаг. Нэмж дурдахад OCS нь шинэ Object Bucket Claim стандартыг дэмждэг бөгөөд энэ нь програмуудад объектын өгөгдөл хадгалах газрыг шууд ашиглах боломжийг олгодог.
Контейнер дэх виртуал машинууд
Хэрэв та энэ нь хэрхэн ажилладагийг шалгахыг сонирхож байгаа бол OpenShift виртуалчлал нь OpenShift 3.11 ба түүнээс дээш хувилбаруудын нэг хэсэг болох Tech Preview хувилбарт аль хэдийн бэлэн болсон гэдгийг мэдэж аваарай. Одоо байгаа OpenShift захиалгын эзэмшигчид OpenShift виртуалчлалыг ямар ч нэмэлт алхамгүйгээр бүрэн үнэ төлбөргүй ашиглах боломжтой. Энэ нийтлэлийг оруулах үед OpenShift 4.4 болон OpenShift виртуалчлалын 2.3 нь одоо байгаа бөгөөд хэрэв та өмнөх хувилбаруудыг ашиглаж байгаа бол хамгийн сүүлийн үеийн боломжуудыг авахын тулд шинэчлэх хэрэгтэй. OpenShift виртуалчлалын бүрэн дэмжигдсэн хувилбарыг 2020 оны хоёрдугаар хагаст гаргах ёстой.
Дэлгэрэнгүй мэдээлэл авахыг хүсвэл холбогдоно уу
Эх сурвалж: www.habr.com