OpenShift ä»®æ³å (ã¢ããã¹ããªãŒã ãããžã§ã¯ã - Kubernetes: KubeVirt ãåç §)ã О ïŒæ§ç§°ïŒã³ã³ãããã€ãã£ãä»®æ³åïŒã¯ãKubernetesã®äžæ žãšãªããšã³ãã£ãã£ãšããŠä»®æ³ãã·ã³ïŒVMïŒããããã€ããã³ç®¡çããããã«èšèšãããOpenShiftãã©ãããã©ãŒã ã®æ©èœãšããŠå°å ¥ãããŸããããã®çš®ã®ã¿ã¹ã¯ã¯ãæè¡çãªæ ¹æ¬çãªéãããæè¡çã«å°é£ã§ãããã®ç®æšãéæããããã«ãRed Hat EnterpriseãããŒã¹ã«ããäœ¿ãæ £ãããã¯ãããžãŒã䜿çšãããŸããã Linux ãããŠKVMã¯ãé·å¹Žã«ãããåœç€Ÿã§äœ¿çšãããŠããããã®æå¹æ§ãå®èšŒãããŠããŸãã

ãã®èšäºã§ã¯ãVM ãšã³ã³ãããåäžã®ãšã³ãã£ãã£ãšããŠç®¡çããåäžã®ãã©ãããã©ãŒã å
ã§å
±åãããããšãå¯èœã«ãã OpenShift ä»®æ³åã®æè¡çåŽé¢ã«ã€ããŠèª¬æããŸãã
èšç®ã¿ã¹ã¯
ã³ã³ããã¯ã¡ã«ããºã ã䜿çšãã Linux- ããã»ã¹åé¢ãšãªãœãŒã¹ç®¡çã®ããã®åå空éãcgroupãªã©ã®ã³ã¢æ©èœãããã»ã¹ã¯éåžžãPythonãJavaã®ã¢ããªã±ãŒã·ã§ã³ãŸãã¯å®è¡ãã¡ã€ã«ãšããŠèããããŸãããå®éã«ã¯ãbashãEmacsãvimãªã©ãããããããã»ã¹ã察象ãšãªããŸãã
ä»®æ³ãã·ã³ãšã¯äœã§ãã?ãã€ããŒãã€ã¶ãŒã®èгç¹ããã¯ããããããã»ã¹ã§ãããã ããã¢ããªã±ãŒã·ã§ã³ ããã»ã¹ã§ã¯ãªããç¹å®ã® VM ã®å®è¡ãæ åœãã KVM ããã»ã¹ã§ãã

ã³ã³ãã㌠ã€ã¡ãŒãžã«ã¯ãKVM ä»®æ³ãã·ã³ã«å¿ èŠãªãã¹ãŠã®ããŒã«ãã©ã€ãã©ãªãããã³ãã¡ã€ã«ãå«ãŸããŠããŸããå®è¡äžã® VM ã®ããããæ€æ»ãããšããã«ããŒãš qemu-kvm ããã»ã¹ãããããšãããããŸããããã«ãqemu-imgãqemu-nbdãvirsh ãªã©ã®ä»®æ³ãã·ã³ã管çããããã® KVM ããŒã«ã«ãã¢ã¯ã»ã¹ã§ããŸãã

ä»®æ³ãã·ã³ã¯ãããã§ãããããKubernetes ã®ãããã®ãã¹ãŠã®æ©èœãèªåçã«ç¶æ¿ããŸãã VM ãããã¯ãéåžžã®ããããšåæ§ã«ãã¹ã±ãžã¥ãŒã© ã¹ããŒã ãšããã€ã³ãã蚱容ãã¢ãã£ããã£ãã¢ã³ãã¢ãã£ããã£ãªã©ã®åºæºã®åœ±é¿ãåããŸããé«å¯çšæ§ãªã©ã®ã¡ãªãããåŸãããŸãããã ããéèŠãªéãã 1 ã€ãããŸããããã¯ãéåžžã®ãããã¯éåžžã®æå³ã§ãã¹ããããã¹ããžç§»è¡ããªããšããããšã§ããããŒãããªãã©ã€ã³ã«ãªããšããã®ããŒãäžã®ãããã¯çµäºãããã¯ã©ã¹ã¿ãŒå ã®å¥ã®ããŒãã«åå²ãåœãŠãããŸãããŸããä»®æ³ãã·ã³ã®å Žåã¯ãã©ã€ã ãã€ã°ã¬ãŒã·ã§ã³ãè¡ãããããšãäºæ³ãããŸãã
ãã®ã®ã£ããã«å¯ŸåŠããããã«ãã¯ãŒã«ãŒ ããŒãéã® VM ã®ã©ã€ã ãã€ã°ã¬ãŒã·ã§ã³ã®åæåãç£èŠã管çãæ åœããã©ã€ã ãã€ã°ã¬ãŒã·ã§ã³ ã¡ã«ããºã ãèšè¿°ããã«ã¹ã¿ã ãªãœãŒã¹å®çŸ© (CDR) ãäœæãããŸããã
apiVersion: kubevirt.io/v1alpha3
kind: VirtualMachineInstanceMigration
metadata:
name: migration-job
spec:
vmiName: fedora
ããŒããéã¢ã¯ãã£ãåããããšããšãã¯ã·ã§ã³æŠç¥ãšããŠã©ã€ã ãã€ã°ã¬ãŒã·ã§ã³ãèšå®ãããŠããä»®æ³ãã·ã³ã«å¯ŸããŠç§»è¡ã¿ã¹ã¯ãèªåçã«äœæãããŸãããã®ããã«ããŠãã¯ã©ã¹ã¿ãŒ ããŒãéãç§»åãããšãã®ä»®æ³ãã·ã³ã®åäœãå¶åŸ¡ã§ããŸããä»ã®ãã¹ãŠã®ããããšåæ§ã«ãã©ã€ã ãã€ã°ã¬ãŒã·ã§ã³ã®æ§æãš VM ã®ç®¡çã®äž¡æ¹ãè¡ãããšãã§ããŸãã
СеÑÑ
ãã¹ãŠã® Kubernetes ã·ã¹ãã ã¯ããœãããŠã§ã¢ SDN ãããã¯ãŒã¯ã䜿çšããŠããŒããšãããéã®éä¿¡ãæäŸããŸãã OpenShift ãäŸå€ã§ã¯ãªããããŒãžã§ã³ 3 以éã§ã¯ãããã©ã«ãã§ OpenShiftSDN ã䜿çšããŸããããã«ãOpenShift 4 ã«ã¯ Multus ãšåŒã°ããå¥ã®æ°æ©èœããããè€æ°ã®ãããã¯ãŒã¯ãå©çšå¯èœã«ãããããã®ãããã¯ãŒã¯ã«ããããåæã«æ¥ç¶ã§ããŸãã

Multusã䜿çšãããšã管çè ã¯è¿œå ã®CNIãããã¯ãŒã¯ãå®çŸ©ã§ãããããã¯å°çšã®ã¯ã©ã¹ã¿ãããã¯ãŒã¯ãªãã¬ãŒã¿ã䜿çšããŠã¯ã©ã¹ã¿ã«ãããã€ããã³æ§æãããŸããPodã¯ããããã®ãããã¯ãŒã¯ã®1ã€ä»¥äžïŒéåžžã¯æšæºã®OpenShiftSDNãšè¿œå ã®ã€ã³ã¿ãŒãã§ã€ã¹ïŒã«æ¥ç¶ãããŸããSR-IOVããã€ã¹ãæšæº Linux VMã®å¿ èŠã«å¿ããŠãããªããžã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 ã«ç§»è¡ãããä»®æ³ãã·ã³ã«ãšã£ãŠéèŠã§ãã2 çªç®ã® OSI ã¬ã€ã€ãŒã«ã¢ã¯ã»ã¹ã§ããå Žåããããã¯ãŒã¯èšå®ã¯å€æŽãããªãããã§ããããã¯ãVM ã SDN ããã€ãã¹ãããããã¯ãŒã¯ ã¢ãã¬ã¹ãæã€å¯èœæ§ãããããšãæå³ããŸãããããã£ãŠãç¹æ®ãªãããã¯ãŒã¯ ã¢ããã¿ã广çã«äœ¿çšãããããããã¯ãŒã¯çµç±ã§ã¹ãã¬ãŒãž ã·ã¹ãã ã«çŽæ¥æ¥ç¶ãããã§ããŸãã
OpenShift ä»®æ³åä»®æ³ãã·ã³ãäœæããŠãããã¯ãŒã¯ã«æ¥ç¶ããæ¹æ³ã«ã€ããŠè©³ããåŠã¶ããšãã§ããŸãã ã å ããŠã ã¯ãOpenShift ä»®æ³åã®äžéšãšããŠãããã€ããããã€ããŒãã€ã¶ãŒã®äžã§äœ¿çšãããç©çããŒãäžã§ãããã¯ãŒã¯æ§æãäœæããã³ç®¡çããããã®ãã 1 ã€ã®äœ¿ãæ £ããæ¹æ³ãæäŸããŸãã
ã¹ãã¬ãŒãž
OpenShift ä»®æ³åå ã§ã®ä»®æ³ãã·ã³ ãã£ã¹ã¯ã®æ¥ç¶ãšç®¡çã¯ãStorageClassesãPersistent VolumeClaims (PVC)ãPersistent Volume (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 㯠raw ããã㯠ããã€ã¹çšã® RWX ãæäŸããŸããããã¯ãé«ããã©ãŒãã³ã¹èŠä»¶ãæã€ã¢ããªã±ãŒã·ã§ã³ã®ããã㯠ã¢ã¯ã»ã¹ãå
±æããã®ã«éåžžã«åœ¹ç«ã¡ãŸããããã«ãOCS ã¯ãã¢ããªã±ãŒã·ã§ã³ããªããžã§ã¯ã ããŒã¿ ã¹ãã¬ãŒãžãçŽæ¥äœ¿çšã§ããããã«ããæ°ãã Object Bucket Claim æšæºããµããŒãããŠããŸãã
ã³ã³ããå ã®ä»®æ³ãã·ã³
OpenShift ä»®æ³åãã©ã®ããã«æ©èœãããã確èªãããå Žåã¯ãOpenShift ä»®æ³åã OpenShift 3.11 以éã®äžéšãšã㊠Tech Preview ããŒãžã§ã³ã§ãã§ã«å©çšå¯èœã§ããããšãç¥ã£ãŠãããŠãã ãããæ¢åã® OpenShift ãµãã¹ã¯ãªãã·ã§ã³ã®ææè ã¯ã远å ã®æé ãè¡ããã«å®å šã«ç¡æã§ OpenShift ä»®æ³åã䜿çšã§ããŸãããã®æçš¿ã®å ¬éæç¹ã§ã¯ãOpenShift 4.4 ããã³ OpenShift ä»®æ³å 2.3 ãææ°ã§ãã以åã®ããŒãžã§ã³ã䜿çšããŠããå Žåã¯ãã¢ããã°ã¬ãŒãããŠææ°ã®æ©èœãå ¥æããå¿ èŠããããŸãã OpenShift ä»®æ³åã®å®å šã«ãµããŒããããããŒãžã§ã³ã¯ã2020 幎åŸåã«ãªãªãŒã¹ãããäºå®ã§ãã
詳现ã«ã€ããŠã¯ããåãåãããã ãã ã€ã³ã¹ããŒã«æé ã«ã€ããŠã¯ã ãå€éšãããã¯ãŒã¯ã®èšå®ã«é¢ããæ
å ±ãæäŸããŸãã
åºæïŒ habr.com
