OpenShift virtualizasiyası: konteynerlər, KVM və virtual maşınlar

OpenShift virtualizasiyası (yuxarı layihə - Kubernetes: KubeVirt, bax. burada и burada), əvvəllər Konteynerə əsaslanan Virtuallaşdırma, Kubernetes-in əsas obyektləri kimi virtual maşınları (VM) yerləşdirmək və idarə etmək üçün hazırlanmış OpenShift platformasının bir xüsusiyyəti olaraq təqdim edildi. Texnologiyadakı fundamental fərqlərə görə bu tip tapşırıq texniki cəhətdən çətindir. Bu məqsədə çatmaq üçün Red Hat Enterprise-ə əsaslanan tanış texnologiyalardan istifadə edilmişdir. Linux və uzun illərdir bizimlə olan və effektivliyini sübut edən KVM.

OpenShift virtualizasiyası: konteynerlər, KVM və virtual maşınlar

Bu yazıda biz OpenShift virtualizasiyasının texniki aspektlərinə baxacağıq ki, bu da VM-lərin və konteynerlərin onları vahid bir qurum kimi idarə edən vahid platforma daxilində birgə mövcud olmasını mümkün edir.

Hesablama tapşırıqları

Konteynerlər mexanizmlərdən istifadə edir Linux- proseslərin təcrid olunması və resursların idarə olunması üçün ad boşluqları və cqruplar kimi əsas xüsusiyyətlər. Proseslər adətən Python və ya Java tətbiqləri və ya icra edilə bilən fayllar kimi düşünülür, lakin əslində onlar bash, Emacs və ya vim kimi istənilən proses ola bilər.

Virtual maşın nədir? Hipervizor baxımından bu da bir prosesdir. Ancaq ərizə prosesi deyil, müəyyən bir VM-nin icrasına cavabdeh olan KVM prosesi.

OpenShift virtualizasiyası: konteynerlər, KVM və virtual maşınlar

Konteyner şəkli KVM virtual maşını üçün lazım olan bütün alətləri, kitabxanaları və faylları ehtiva edir. Çalışan VM-nin podunu yoxlasaq, orada köməkçiləri və qemu-kvm proseslərini görəcəyik. Bundan əlavə, biz qemu-img, qemu-nbd və virsh kimi virtual maşınları idarə etmək üçün KVM alətlərinə çıxışımız var.

OpenShift virtualizasiyası: konteynerlər, KVM və virtual maşınlar

Virtual maşın pod olduğundan, o, avtomatik olaraq Kubernetes-də podun bütün funksiyalarını miras alır. VM podları, adi podlar kimi, planlayıcı sxemlərə və ləkələr, dözümlülüklər, yaxınlıq və anti-yaxınlıq kimi meyarlara tabedir. Siz həmçinin yüksək əlçatanlığın üstünlüklərini əldə edirsiniz və s. Bununla belə, bir mühüm fərq var: adi podlar adi mənada ev sahibindən ev sahibinə köçmür. Bir qovşaq oflayn olarsa, onun üzərindəki pod bağlanır və klasterdəki başqa bir node üçün təyin edilir. Virtual maşın vəziyyətində isə canlı miqrasiya görəcəyimizi gözləyirik.

Bu boşluğu aradan qaldırmaq üçün işçi qovşaqları arasında VM-lərin canlı miqrasiyasını işə salmaq, izləmək və idarə etmək üçün cavabdeh olan canlı miqrasiya mexanizmini təsvir etmək üçün xüsusi resurs tərifi (CDR) yaradılmışdır.

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

Bir qovşaq deaktiv edildikdə, miqrasiya tapşırıqları avtomatik olaraq Live Miqrasiyanı çıxarma strategiyası kimi təyin edilmiş virtual maşınlar üçün yaradılır. Beləliklə, klaster qovşaqları arasında hərəkət edərkən virtual maşınların davranışına nəzarət edə bilərsiniz. Siz həm Canlı Miqrasiyanı konfiqurasiya edə, həm də bütün digər podlar kimi VM-ni idarə edə bilərsiniz.

Şəbəkə

İstənilən Kubernetes sistemi proqram təminatı SDN şəbəkələrindən istifadə edərək qovşaqlar və podlar arasında əlaqəni təmin edir. OpenShift istisna deyil və 3-cü versiyadan başlayaraq bunun üçün standart olaraq OpenShiftSDN-dən istifadə edir. Bundan əlavə, OpenShift 4-də Multus adlı daha bir yeni funksiya var ki, bu da birdən çox şəbəkəni əlçatan etməyə və onlara eyni vaxtda podları qoşmağa imkan verir.

OpenShift virtualizasiyası: konteynerlər, KVM və virtual maşınlar

Multus istifadə edərək, administrator əlavə CNI şəbəkələri təyin edə bilər ki, bunlar daha sonra xüsusi Klaster Şəbəkə Operatoru istifadə edərək klasterdə yerləşdirilir və konfiqurasiya edilir. Podlar daha sonra bu şəbəkələrdən birinə və ya bir neçəsinə, adətən standart OpenShiftSDN və əlavə interfeysə qoşulur. SR-IOV cihazları, standart Linux Körpü, MACVLAN və IPVLAN cihazları VM tərəfindən lazım olduqda istifadə edilə bilər. Aşağıdakı şəkildə eth1 interfeysindəki körpü şəbəkəsi üçün Multus CNI-nin necə konfiqurasiya ediləcəyi göstərilir:

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 virtualizasiyasına gəldikdə, bu o deməkdir ki, VM SDN-dən yan keçməklə birbaşa xarici şəbəkəyə qoşula bilər. Bu, Red Hat Virtualization və ya VMware vSphere-dən OpenShift-ə köçmüş virtual maşınlar üçün vacibdir, çünki ikinci OSI qatına çıxışınız varsa, şəbəkə parametrlərində heç bir dəyişiklik olmayacaq. Bu həm də o deməkdir ki, VM-nin SDN-dən yan keçən şəbəkə ünvanı ola bilər. Beləliklə, biz ixtisaslaşmış şəbəkə adapterlərindən səmərəli istifadə edə bilərik və ya şəbəkə üzərindən birbaşa yaddaş sisteminə qoşula bilərik...

OpenShift virtualizasiya virtual maşınlarının yaradılması və şəbəkəyə qoşulması haqqında daha çox məlumat əldə edə bilərsiniz burada. Bundan əlavə, nmstate operatoruOpenShift virtualizasiyasının bir hissəsi kimi yerləşdirilən , hipervizorlar altında istifadə olunan fiziki qovşaqlarda şəbəkə konfiqurasiyaları yaratmaq və idarə etmək üçün başqa tanış üsul təklif edir.

saxlama

OpenShift virtualizasiyası daxilində virtual maşın disklərinin qoşulması və idarə edilməsi Kubernetes StorageClasses, PersistentVolumeClaims (PVC) və PersistentVolume (PV) kimi Kubernetes konsepsiyalarından, həmçinin Kubernetes mühiti üçün standart saxlama protokollarından istifadə etməklə həyata keçirilir. Bu, Kubernetes administratorlarına və tətbiq qruplarına həm konteynerləri, həm də virtual maşınları idarə etmək üçün ümumi, tanış üsul verir. Virtuallaşdırma mühitlərinin bir çox idarəçiləri üçün bu konsepsiya tanış səslənə bilər, çünki o, OpenStack və bir çox digər bulud platformalarında istifadə olunan VM konfiqurasiya faylları və diskləri ayırmaq üçün eyni prinsipdən istifadə edir.

Bununla belə, biz sadəcə olaraq hər dəfə VM üçün yeni disk yarada bilmirik, çünki hipervizordan OpenShift-ə köçən zaman məlumatları yadda saxlamalıyıq. Bəli, hətta biz yeni VM yerləşdirsək də, onu sıfırdan yaratmaqdansa, şablondan etmək həmişə daha sürətli olur. Beləliklə, mövcud diskləri idxal etmək üçün funksionallığa ehtiyacımız var.

Bu tapşırığı asanlaşdırmaq üçün OpenShift virtualizasiyası Konteynerləşdirilmiş Məlumat İdxalçısı (CDI) layihəsini tətbiq edir ki, bu da bir çox mənbədən disklərin disk şəkillərinin idxalını PVC girişinin yaradılmasına qədər azaldır.

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

Aşağıdakı şəkildə göstərilən hərəkətlərin ardıcıllığını işə salaraq CDI-ni aktivləşdirən bu girişdir:

OpenShift virtualizasiyası: konteynerlər, KVM və virtual maşınlar

CDI tamamlandıqdan sonra, PVC istifadəyə hazır və standart OpenShift formatına çevrilmiş virtual maşın diskini ehtiva edəcəkdir...
OpenShift virtualizasiyası ilə işləyərkən konteynerlər üçün davamlı saxlama funksiyasını həyata keçirən Ceph fayl sisteminə əsaslanan Red Hat həlli olan OpenShift Konteyner Saxlama (OCS) də faydalıdır. Standart PVC giriş metodlarına əlavə olaraq - RWO (blok) və RWX (fayl) - OCS xam blok cihazları üçün RWX təmin edir, bu da yüksək performans tələbləri olan tətbiqlər üçün blok girişini paylaşmaq üçün çox faydalıdır. Bundan əlavə, OCS tətbiqlərə obyekt məlumatlarının saxlanmasından birbaşa istifadə etməyə imkan verən yeni Object Bucket Claim standartını dəstəkləyir.

Konteynerlərdə virtual maşınlar

Onun necə işlədiyini yoxlamaq istəyirsinizsə, bilin ki, OpenShift virtualizasiyası OpenShift 3.11 və daha yüksək versiyaların bir hissəsi kimi Tech Preview versiyasında artıq mövcuddur. Mövcud OpenShift abunəsinin sahibləri OpenShift virtualizasiyasından tamamilə pulsuz və heç bir əlavə addım atmadan istifadə edə bilərlər. Bu yazı zamanı OpenShift 4.4 və OpenShift virtualizasiya 2.3 hazırdır; əvvəlki versiyalardan istifadə edirsinizsə, ən son funksiyaları əldə etmək üçün təkmilləşdirməlisiniz. OpenShift virtualizasiyasının tam dəstəklənən versiyası 2020-ci ilin ikinci yarısında buraxılmalıdır.

Əlavə məlumat üçün baxın OpenShift sənədləri quraşdırma təlimatları üçün, o cümlədən Çoxlu quraşdırma bölməsi, xarici şəbəkələrin qurulması haqqında məlumat verir.

Mənbə: www.habr.com

DDoS mühafizəsi, VPS VDS serverləri olan saytlar üçün etibarlı hostinq alın 🔥 DDoS qorunması, VPS VDS serverləri ilə etibarlı veb sayt hostinqi alın | ProHoster