OpenShift ቨርቹዋል፡ ኮንቴይነሮች፣ KVM እና ምናባዊ ማሽኖች

OpenShift virtualization (የላይኛው ፕሮጀክት - Kubernetes፡ KubeVirt፣ ተመልከት። እዚህ и እዚህ, nee Container-native Virtualization, እንደ መሰረታዊ የኩበርኔትስ አካላት ቨርቹዋል ማሽኖችን (VMs) ለማሰማራት እና ለማስተዳደር የተነደፈው የOpenShift መድረክ ተግባር ሆኖ አስተዋወቀ። ይህ ዓይነቱ ተግባር በቴክኖሎጂ መሠረታዊ ልዩነቶች ምክንያት ቴክኒካል ፈታኝ ነው። ይህንን ግብ ለማሳካት ለብዙ አመታት ከእኛ ጋር የቆዩ እና ውጤታማነታቸውን ያረጋገጡትን በ Red Hat Enterprise Linux እና KVM ላይ የተመሰረቱ የታወቁ ቴክኖሎጂዎችን ተጠቅመንበታል።

OpenShift ቨርቹዋል፡ ኮንቴይነሮች፣ KVM እና ምናባዊ ማሽኖች

በዚህ ጽሑፍ ውስጥ፣ ቪኤም እና ኮንቴይነሮች እንደ አንድ አካል በሚያስተዳድራቸው በአንድ መድረክ ውስጥ አብረው እንዲኖሩ የሚያስችለውን የ OpenShift ቨርችዋል ቴክኒካል ገጽታዎችን እንመለከታለን።

የሂሳብ ስራዎች

ሂደቶችን ለመለየት እና ሀብቶችን ለማስተዳደር ኮንቴይነሮች እንደ የስም ቦታዎች እና ስብስቦች ያሉ የሊኑክስ ኮርነል ስልቶችን ይጠቀማሉ። አብዛኛውን ጊዜ ሂደቶች እንደ Python፣ Java አፕሊኬሽኖች ወይም ተፈጻሚነት ያላቸው ፋይሎች ይገነዘባሉ፣ ግን እንደ እውነቱ ከሆነ እንደ bash፣ Emacs ወይም vim ያሉ ማንኛውም ሂደቶች ሊሆኑ ይችላሉ።

ምናባዊ ማሽን ምንድን ነው? ከሃይፐርቫይዘር እይታ አንጻር ይህ እንዲሁ ሂደት ነው. ግን የማመልከቻው ሂደት አይደለም, ነገር ግን የተወሰነ VMን የማስፈጸም ሃላፊነት ያለው የ KVM ሂደት ነው.

OpenShift ቨርቹዋል፡ ኮንቴይነሮች፣ KVM እና ምናባዊ ማሽኖች

የመያዣው ምስል ለ KVM ቨርቹዋል ማሽን የሚያስፈልጉትን ሁሉንም መሳሪያዎች፣ ቤተ-መጻሕፍት እና ፋይሎች ይዟል። የሚሄድ ቪኤምን ፖድ ከመረመርን እዚያ ረዳቶችን እና qemu-kvm ሂደቶችን እናያለን። በተጨማሪም፣ እንደ qemu-img፣ qemu-nbd እና virsh ያሉ ቨርቹዋል ማሽኖችን ለማስተዳደር የKVM መሳሪያዎች አለን።

OpenShift ቨርቹዋል፡ ኮንቴይነሮች፣ KVM እና ምናባዊ ማሽኖች

ቨርቹዋል ማሽን ፖድ ስለሆነ በኩበርኔትስ ውስጥ ያሉትን ሁሉንም የፖድ ተግባራት በራስ-ሰር ይወርሳል። ቪኤም ፖድዎች፣ ልክ እንደ መደበኛ ፖድዎች፣ የጊዜ ሰሌዳ አዘጋጅ መርሃ ግብሮች እና እንደ ታይትስ፣ መቻቻል፣ ዝምድና እና ፀረ-ተዛማጅነት ባሉ መመዘኛዎች ተገዢ ናቸው። እንዲሁም ከፍተኛ ተገኝነት ወዘተ ጥቅሞችን ያገኛሉ። ሆኖም ግን, አንድ አስፈላጊ ልዩነት አለ: መደበኛ ፓዶች በተለመደው ስሜት ከአስተናጋጅ ወደ አስተናጋጅ አይሰደዱም. አንድ መስቀለኛ መንገድ ከመስመር ውጭ ከሄደ በላዩ ላይ ያለው ፖድ ይቋረጣል እና በክላስተር ውስጥ ወዳለ ሌላ መስቀለኛ መንገድ ይመደባል። እና በቨርቹዋል ማሽን ሁኔታ፣ የቀጥታ ፍልሰትን ለማየት እንጠብቃለን።

ይህንን ክፍተት ለመቅረፍ፣ በሠራተኛ ኖዶች መካከል የቪኤምኤስ የቀጥታ ፍልሰትን የማስጀመር፣ የመቆጣጠር እና የማስተዳደር ኃላፊነት ያለውን የቀጥታ ፍልሰት ዘዴን ለመግለጽ ብጁ የመረጃ ፍቺ (ሲዲአር) ተፈጠረ።

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

አንድ መስቀለኛ መንገድ ሲቦዝን የቀጥታ ማይግሬሽን የማስለቀቂያ ስልታቸው አድርገው ለተቀመጡት ምናባዊ ማሽኖች የፍልሰት ስራዎች በራስ ሰር ይፈጠራሉ። በዚህ መንገድ በክላስተር ኖዶች መካከል በሚንቀሳቀሱበት ጊዜ የቨርቹዋል ማሽኖችን ባህሪ መቆጣጠር ይችላሉ። ሁለታችሁም የቀጥታ ፍልሰትን ማዋቀር እና VMን ማስተዳደር ትችላላችሁ፣ ልክ እንደሌሎች ፖዶች።

አውታረ መረብ

ማንኛውም የኩበርኔትስ ሲስተም የሶፍትዌር SDN ኔትወርኮችን በመጠቀም በመስቀለኛ መንገድ እና በፖድ መካከል ግንኙነትን ይሰጣል። OpenShift የተለየ አይደለም እና ከስሪት 3 ጀምሮ OpenShiftSDNን ለዚህ በነባሪነት ይጠቀማል። በተጨማሪም OpenShift 4 ማልተስ የሚባል ሌላ አዲስ ባህሪ ያለው ሲሆን ይህም በርካታ ኔትወርኮች እንዲገኙ እና ፖዶችን በአንድ ጊዜ እንዲያገናኙ ያስችላቸዋል።

OpenShift ቨርቹዋል፡ ኮንቴይነሮች፣ KVM እና ምናባዊ ማሽኖች

ማልተስን በመጠቀም አስተዳዳሪው ተጨማሪ የCNI አውታረ መረቦችን ሊገልጽ ይችላል፣ ከዚያም በልዩ ክላስተር ኔትወርክ ኦፕሬተር በክላስተር ላይ ይሰራጫል እና ይዋቀራል። ፖድዎቹ ከእነዚህ አውታረ መረቦች ውስጥ ወደ አንድ ወይም ከዚያ በላይ ይገናኛሉ፣ ብዙውን ጊዜ መደበኛው OpenShiftSDN እና ተጨማሪ በይነገጽ። የ SR-IOV መሳሪያዎች፣ መደበኛ ሊኑክስ ብሪጅ፣ MACVLAN እና IPVLAN መሳሪያዎች ሁሉም የእርስዎ ቪኤም የሚያስፈልገው ከሆነ መጠቀም ይችላሉ። ከታች ያለው ምስል 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 ኤስዲኤንን በማለፍ ከውጪ አውታረ መረብ ጋር በቀጥታ መገናኘት ይችላል። ይህ ወደ OpenShift ከ Red Hat Virtualization ወይም VMware vSphere ለተሰደዱ ቨርቹዋል ማሽኖች አስፈላጊ ነው፣ ምክንያቱም ሁለተኛው የ OSI ንብርብር መዳረሻ ካሎት በአውታረ መረብ ቅንብሮች ላይ ምንም ለውጥ አይኖርም። ይህ ማለት VM ኤስዲኤንን የሚያልፍ የአውታረ መረብ አድራሻ ሊኖረው ይችላል። ስለዚህ, ልዩ የአውታረ መረብ አስማሚዎችን በብቃት መጠቀም እንችላለን, ወይም በአውታረ መረቡ ላይ በቀጥታ ከማከማቻ ስርዓቱ ጋር መገናኘት እንችላለን.

የOpenShift virtualization ምናባዊ ማሽኖችን ከአውታረ መረቡ ጋር እንዴት መፍጠር እና ማገናኘት እንደሚችሉ የበለጠ ማወቅ ይችላሉ። እዚህ... በተጨማሪም ፣ nmstate ከዋኝእንደ የOpenShift ቨርቹዋል ስራ አካል ሆኖ በሃይፐርቫይዘሮች ስር ጥቅም ላይ በሚውሉ ፊዚካል ኖዶች ላይ የአውታረ መረብ ውቅሮችን ለመፍጠር እና ለማስተዳደር ሌላ የታወቀ መንገድ ያቀርባል።

ማከማቻ

በOpenShift virtualization ውስጥ የቨርቹዋል ማሽን ዲስኮችን ማገናኘት እና ማስተዳደር የሚከናወነው እንደ StorageClasses፣ PersistentVolumeClaims (PVC) እና PersistentVolume (PV) ያሉ የ Kubernetes ፅንሰ ሀሳቦችን እንዲሁም የ Kubernetes አካባቢ የማከማቻ ፕሮቶኮሎችን በመጠቀም ነው። ይህ ለኩበርኔትስ አስተዳዳሪዎች እና አፕሊኬሽን ቡድኖች ሁለቱንም ኮንቴይነሮች እና ቨርቹዋል ማሽኖችን የሚያስተዳድሩበት የተለመደ፣ የታወቀ መንገድ ይሰጣል። እና ለብዙ የቨርቹዋልላይዜሽን አካባቢዎች አስተዳዳሪዎች ይህ ጽንሰ-ሀሳብ የተለመደ ሊመስል ይችላል ምክንያቱም በ OpenStack እና በሌሎች በርካታ የደመና መድረኮች ውስጥ ጥቅም ላይ የሚውሉትን የVM ውቅር ፋይሎችን እና ዲስኮችን የመለየት ተመሳሳይ መርህ ይጠቀማል።

ሆኖም ከሃይፐርቫይዘር ወደ OpenShift ስንሰደድ ውሂቡን ማስቀመጥ ስለሚያስፈልገን በቀላሉ ለቪኤም ሁልጊዜ አዲስ ዲስክ መፍጠር አንችልም። አዎ፣ አዲስ ቪኤም ስናሰማራ እንኳን፣ ከባዶ ከመፍጠር ይልቅ ከአብነት ለመስራት ምንጊዜም ፈጣን ነው። ስለዚህ, ነባር ዲስኮችን ለማስገባት ተግባራዊነት እንፈልጋለን.

ይህንን ተግባር ለማቃለል OpenShift ቨርቹዋልላይዜሽን ኮንቴይነር ዳታ አስመጪ (ሲዲአይ) ፕሮጄክትን ያሰማራቸዋል ይህም የዲስክ ምስሎችን ከብዙ ምንጮች ወደ የ 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ን የሚያነቃው ይህ ግቤት ነው።

OpenShift ቨርቹዋል፡ ኮንቴይነሮች፣ KVM እና ምናባዊ ማሽኖች

ሲዲአይ ከተጠናቀቀ በኋላ PVC ለአገልግሎት ዝግጁ የሆነውን ቨርቹዋል ማሽን ዲስክ ይይዛል እና ወደ መደበኛው የOpenShift ቅርጸት ይቀየራል።
ከOpenShift ቨርቹዋል ጋር ሲሰራ፣ ለኮንቴይነሮች ቀጣይነት ያለው የማጠራቀሚያ ተግባርን በሚተገበረው በሴፍ ፋይል ስርዓት ላይ የተመሰረተ የ Red Hat መፍትሄ OpenShift Container Storage (OCS) ጠቃሚ ነው። ከመደበኛው የ PVC መዳረሻ ዘዴዎች በተጨማሪ - RWO (ብሎክ) እና RWX (ፋይል) - OCS ለጥሬ የማገጃ መሳሪያዎች RWX ያቀርባል, ይህም ከፍተኛ አፈፃፀም መስፈርቶች ላላቸው መተግበሪያዎች የማገጃ መዳረሻን ለማጋራት በጣም ጠቃሚ ነው. በተጨማሪም OCS አዲሱን የ Object Bucket Claim መስፈርት ይደግፋል፣ ይህም አፕሊኬሽኖች የነገር መረጃ ማከማቻን በቀጥታ እንዲጠቀሙ ያስችላቸዋል።

በመያዣዎች ውስጥ ምናባዊ ማሽኖች

እንዴት እንደሚሰራ ለመፈተሽ ፍላጎት ካሎት፣ እንግዲያውስ OpenShift virtualization አስቀድሞ በቴክ ቅድመ እይታ ስሪት እንደ OpenShift 3.11 እና ከዚያ በላይ እንደሚገኝ ይወቁ። የነባር የOpenShift ደንበኝነት ምዝገባ ባለቤቶች የOpenShift virtualization ሙሉ በሙሉ ከክፍያ ነፃ እና ያለ ምንም ተጨማሪ እርምጃዎች መጠቀም ይችላሉ። ይህ ጽሑፍ በሚታተምበት ጊዜ OpenShift 4.4 እና OpenShift virtualization 2.3 ወቅታዊ ናቸው፤የቀደሙት ስሪቶችን የምትጠቀም ከሆነ የቅርብ ጊዜዎቹን ባህሪያት ለማግኘት ማሻሻል አለብህ። ሙሉ በሙሉ የሚደገፍ የOpenShift ቨርቹዋልነት ስሪት በ2020 ሁለተኛ አጋማሽ ላይ መልቀቅ አለበት።

ለበለጠ መረጃ እባክዎን ያነጋግሩ OpenShift ሰነድ የመጫኛ መመሪያዎችን ጨምሮ ብዙ ማዋቀር ክፍልውጫዊ አውታረ መረቦችን ስለማዘጋጀት መረጃ የሚሰጥ።

ምንጭ: hab.com

አስተያየት ያክሉ