OpenShift ๊ฐ€์ƒํ™”: ์ปจํ…Œ์ด๋„ˆ, KVM ๋ฐ ๊ฐ€์ƒ ๋จธ์‹ 

OpenShift ๊ฐ€์ƒํ™”(์—…์ŠคํŠธ๋ฆผ ํ”„๋กœ์ ํŠธ - Kubernetes: KubeVirt, ์ฐธ์กฐ) ์—ฌ๊ธฐ์— ะธ ์—ฌ๊ธฐ์—), nee Container-Native Virtualization์€ OpenShift ํ”Œ๋žซํผ์˜ ๊ธฐ๋Šฅ์œผ๋กœ ๋„์ž…๋˜์—ˆ์œผ๋ฉฐ, ์ด๋Š” ๊ฐ€์ƒ ๋จธ์‹ (VM)์„ ๊ธฐ๋ณธ Kubernetes ์—”ํ„ฐํ‹ฐ๋กœ ๋ฐฐํฌํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์ž‘์—…์€ ๊ธฐ์ˆ ์˜ ๊ทผ๋ณธ์ ์ธ ์ฐจ์ด๋กœ ์ธํ•ด ๊ธฐ์ˆ ์ ์œผ๋กœ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ด ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” ์ˆ˜๋…„๊ฐ„ ์‚ฌ์šฉ๋˜์–ด ๊ทธ ํšจ๊ณผ๊ฐ€ ์ž…์ฆ๋œ Red Hat Enterprise Linux ๋ฐ KVM ๊ธฐ๋ฐ˜์˜ ์นœ์ˆ™ํ•œ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.

OpenShift ๊ฐ€์ƒํ™”: ์ปจํ…Œ์ด๋„ˆ, KVM ๋ฐ ๊ฐ€์ƒ ๋จธ์‹ 

์ด ๊ธฐ์‚ฌ์—์„œ๋Š” VM๊ณผ ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋‹จ์ผ ์—”ํ„ฐํ‹ฐ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋‹จ์ผ ํ”Œ๋žซํผ ๋‚ด์—์„œ ๊ณต์กดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” OpenShift ๊ฐ€์ƒํ™”์˜ ๊ธฐ์ˆ ์  ์ธก๋ฉด์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ณ„์‚ฐ ์ž‘์—…

์ปจํ…Œ์ด๋„ˆ๋Š” ๋„ค์ž„์ŠคํŽ˜์ด์Šค ๋ฐ cgroup๊ณผ ๊ฐ™์€ Linux ์ปค๋„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฒฉ๋ฆฌํ•˜๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ”„๋กœ์„ธ์Šค๋Š” Python, Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋˜๋Š” ์‹คํ–‰ ํŒŒ์ผ๋กœ ์ดํ•ด๋˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” bash, Emacs ๋˜๋Š” vim๊ณผ ๊ฐ™์€ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์ƒ ๋จธ์‹ ์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ํ•˜์ดํผ๋ฐ”์ด์ €์˜ ๊ด€์ ์—์„œ ๋ณด๋ฉด ์ด ์—ญ์‹œ ํ•˜๋‚˜์˜ ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ํŠน์ • VM ์‹คํ–‰์„ ๋‹ด๋‹นํ•˜๋Š” KVM ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค.

OpenShift ๊ฐ€์ƒํ™”: ์ปจํ…Œ์ด๋„ˆ, KVM ๋ฐ ๊ฐ€์ƒ ๋จธ์‹ 

์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€์—๋Š” KVM ๊ฐ€์ƒ ๋จธ์‹ ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๋„๊ตฌ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰ ์ค‘์ธ VM์˜ ํฌ๋“œ๋ฅผ ๊ฒ€์‚ฌํ•˜๋ฉด ๋„์šฐ๋ฏธ์™€ qemu-kvm ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ qemu-img, qemu-nbd ๋ฐ virsh์™€ ๊ฐ™์€ ๊ฐ€์ƒ ๋จธ์‹  ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ KVM ๋„๊ตฌ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OpenShift ๊ฐ€์ƒํ™”: ์ปจํ…Œ์ด๋„ˆ, KVM ๋ฐ ๊ฐ€์ƒ ๋จธ์‹ 

๊ฐ€์ƒ ๋จธ์‹ ์€ ํฌ๋“œ์ด๋ฏ€๋กœ Kubernetes์—์„œ ํฌ๋“œ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ž๋™์œผ๋กœ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ํฌ๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ VM ํฌ๋“œ์—๋Š” ์˜ค์—ผ, ํ—ˆ์šฉ, ์„ ํ˜ธ๋„, ๋ฐ˜์นœํ™”์„ฑ๊ณผ ๊ฐ™์€ ์Šค์ผ€์ค„๋Ÿฌ ๊ตฌ์„ฑํ‘œ ๋ฐ ๊ธฐ์ค€์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ณ ๊ฐ€์šฉ์„ฑ ๋“ฑ์˜ ์ด์ ๋„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•œ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ํฌ๋“œ๋Š” ์ผ๋ฐ˜์ ์ธ ์˜๋ฏธ์—์„œ ํ˜ธ์ŠคํŠธ์—์„œ ํ˜ธ์ŠคํŠธ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๊ฐ€ ์˜คํ”„๋ผ์ธ ์ƒํƒœ๊ฐ€ ๋˜๋ฉด ํ•ด๋‹น ๋…ธ๋“œ์˜ Pod๊ฐ€ ์ข…๋ฃŒ๋˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ๋‹ค์‹œ ํ• ๋‹น๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์ƒ ๋จธ์‹ ์˜ ๊ฒฝ์šฐ ๋ผ์ด๋ธŒ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๋‚˜ํƒ€๋‚  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๊ฒฉ์ฐจ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž‘์—…์ž ๋…ธ๋“œ ๊ฐ„ VM์˜ ์‹ค์‹œ๊ฐ„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์ดˆ๊ธฐํ™”, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์„ค๋ช…ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค ์ •์˜(CDR)๊ฐ€ ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๋…ธ๋“œ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜๋ฉด ์ œ๊ฑฐ ์ „๋žต์œผ๋กœ ์‹ค์‹œ๊ฐ„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์„ค์ •๋œ ๊ฐ€์ƒ ๋จธ์‹ ์— ๋Œ€ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ์ž‘์—…์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ ๊ฐ„์„ ์ด๋™ํ•  ๋•Œ ๊ฐ€์ƒ ๋จธ์‹ ์˜ ๋™์ž‘์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ํฌ๋“œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์‹ค์‹œ๊ฐ„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๊ตฌ์„ฑํ•˜๊ณ  VM์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋„คํŠธ์›Œํฌ

๋ชจ๋“  Kubernetes ์‹œ์Šคํ…œ์€ ์†Œํ”„ํŠธ์›จ์–ด SDN ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋…ธ๋“œ์™€ ํฌ๋“œ ๊ฐ„์˜ ํ†ต์‹ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. OpenShift๋„ ์˜ˆ์™ธ๋Š” ์•„๋‹ˆ๋ฉฐ ๋ฒ„์ „ 3๋ถ€ํ„ฐ ์ด๋ฅผ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ OpenShiftSDN์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ OpenShift 4์—๋Š” Multus๋ผ๋Š” ๋˜ ๋‹ค๋ฅธ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ  ์—ฌ๊ธฐ์— ํฌ๋“œ๋ฅผ ๋™์‹œ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OpenShift ๊ฐ€์ƒํ™”: ์ปจํ…Œ์ด๋„ˆ, KVM ๋ฐ ๊ฐ€์ƒ ๋จธ์‹ 

๊ด€๋ฆฌ์ž๋Š” Multus๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€ CNI ๋„คํŠธ์›Œํฌ๋ฅผ ์ •์˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด ๋„คํŠธ์›Œํฌ๋Š” ํŠน์ˆ˜ ํด๋Ÿฌ์Šคํ„ฐ ๋„คํŠธ์›Œํฌ ์šด์˜์ž์— ์˜ํ•ด ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌ ๋ฐ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ํฌ๋“œ๋Š” ์ด๋Ÿฌํ•œ ๋„คํŠธ์›Œํฌ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ(์ผ๋ฐ˜์ ์œผ๋กœ ํ‘œ์ค€ OpenShiftSDN ๋ฐ ์ถ”๊ฐ€ ์ธํ„ฐํŽ˜์ด์Šค)์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. VM์— ํ•„์š”ํ•œ ๊ฒฝ์šฐ SR-IOV ์žฅ์น˜, ํ‘œ์ค€ Linux ๋ธŒ๋ฆฌ์ง€, 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 ๊ฐ€์ƒํ™”์™€ ๊ด€๋ จํ•˜์—ฌ ์ด๋Š” SDN์„ ์šฐํšŒํ•˜์—ฌ VM์„ ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Red Hat Virtualization ๋˜๋Š” VMware vSphere์—์„œ OpenShift๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋œ ๊ฐ€์ƒ ๋จธ์‹ ์˜ ๊ฒฝ์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ OSI ๊ณ„์ธต์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๋„คํŠธ์›Œํฌ ์„ค์ •์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ๋˜ํ•œ VM์— SDN์„ ์šฐํšŒํ•˜๋Š” ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŠน์ˆ˜ ๋„คํŠธ์›Œํฌ ์–ด๋Œ‘ํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ์— ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

OpenShift ๊ฐ€์ƒํ™” ๊ฐ€์ƒ ๋จธ์‹ ์„ ์ƒ์„ฑํ•˜๊ณ  ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—. ๋˜ํ•œ, nmstate ์—ฐ์‚ฐ์žOpenShift ๊ฐ€์ƒํ™”์˜ ์ผ๋ถ€๋กœ ๋ฐฐํฌ๋œ ๋Š” ํ•˜์ดํผ๋ฐ”์ด์ €์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฌผ๋ฆฌ์  ๋…ธ๋“œ์—์„œ ๋„คํŠธ์›Œํฌ ๊ตฌ์„ฑ์„ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์นœ์ˆ™ํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ €์žฅ

OpenShift ๊ฐ€์ƒํ™” ๋‚ด์—์„œ ๊ฐ€์ƒ ๋จธ์‹  ๋””์Šคํฌ ์—ฐ๊ฒฐ ๋ฐ ๊ด€๋ฆฌ๋Š” StorageClasses, PertantVolumeClaim(PVC) ๋ฐ PertantVolume(PV)๊ณผ ๊ฐ™์€ Kubernetes ๊ฐœ๋…๊ณผ Kubernetes ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ํ‘œ์ค€ ์Šคํ† ๋ฆฌ์ง€ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” Kubernetes ๊ด€๋ฆฌ์ž์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํŒ€์—๊ฒŒ ์ปจํ…Œ์ด๋„ˆ์™€ ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋ชจ๋‘ ๊ด€๋ฆฌํ•˜๋Š” ๊ณตํ†ต์ ์ด๊ณ  ์นœ์ˆ™ํ•œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งŽ์€ ๊ฐ€์ƒํ™” ํ™˜๊ฒฝ ๊ด€๋ฆฌ์ž์—๊ฒŒ ์ด ๊ฐœ๋…์€ OpenStack ๋ฐ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ํด๋ผ์šฐ๋“œ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ๋˜๋Š” VM ๊ตฌ์„ฑ ํŒŒ์ผ๊ณผ ๋””์Šคํฌ๋ฅผ ๋ถ„๋ฆฌํ•˜๋Š” ๋™์ผํ•œ ์›์น™์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ต์ˆ™ํ•˜๊ฒŒ ๋“ค๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํ•˜์ดํผ๋ฐ”์ด์ €์—์„œ OpenShift๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•  ๋•Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํžˆ ๋งค๋ฒˆ VM์šฉ ์ƒˆ ๋””์Šคํฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ, ์ƒˆ VM์„ ๋ฐฐํฌํ•˜๋”๋ผ๋„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋งŒ๋“œ๋Š” ๊ฒƒ๋ณด๋‹ค ํ…œํ”Œ๋ฆฟ์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ๋” ๋น ๋ฆ…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์กด ๋””์Šคํฌ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ž‘์—…์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด OpenShift ๊ฐ€์ƒํ™”๋Š” CDI(Containerized Data Importer) ํ”„๋กœ์ ํŠธ๋ฅผ ๋ฐฐํฌํ•˜์—ฌ ์—ฌ๋Ÿฌ ์†Œ์Šค์—์„œ ๋””์Šคํฌ์˜ ๋””์Šคํฌ ์ด๋ฏธ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ž‘์—…์„ 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 ๋ฐ ๊ฐ€์ƒ ๋จธ์‹ 

CDI๊ฐ€ ์™„๋ฃŒ๋œ ํ›„ PVC์—๋Š” ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋œ ๊ฐ€์ƒ ๋จธ์‹  ๋””์Šคํฌ๊ฐ€ ํฌํ•จ๋˜๊ณ  ํ‘œ์ค€ OpenShift ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
OpenShift ๊ฐ€์ƒํ™” ์ž‘์—… ์‹œ ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ์˜๊ตฌ ์Šคํ† ๋ฆฌ์ง€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” Ceph ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ธฐ๋ฐ˜ Red Hat ์†”๋ฃจ์…˜์ธ OCS(OpenShift Container Storage)๋„ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํ‘œ์ค€ PVC ์•ก์„ธ์Šค ๋ฐฉ๋ฒ•์ธ RWO(๋ธ”๋ก) ๋ฐ RWX(ํŒŒ์ผ) ์™ธ์—๋„ OCS๋Š” ์›์‹œ ๋ธ”๋ก ์žฅ์น˜์šฉ RWX๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ณ ์„ฑ๋Šฅ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ธ”๋ก ์•ก์„ธ์Šค๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ OCS๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ฐœ์ฒด ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ƒˆ๋กœ์šด ๊ฐœ์ฒด ๋ฒ„ํ‚ท ํด๋ ˆ์ž„ ํ‘œ์ค€์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ปจํ…Œ์ด๋„ˆ์˜ ๊ฐ€์ƒ ๋จธ์‹ 

์ž‘๋™ ๋ฐฉ์‹์„ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด OpenShift 3.11 ์ด์ƒ์˜ ์ผ๋ถ€๋กœ Tech Preview ๋ฒ„์ „์—์„œ OpenShift ๊ฐ€์ƒํ™”๋ฅผ ์ด๋ฏธ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์„ ์•Œ์•„๋‘์‹ญ์‹œ์˜ค. ๊ธฐ์กด OpenShift ๊ตฌ๋… ์†Œ์œ ์ž๋Š” ์ถ”๊ฐ€ ๋‹จ๊ณ„ ์—†์ด ์™„์ „ํžˆ ๋ฌด๋ฃŒ๋กœ OpenShift ๊ฐ€์ƒํ™”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒŒ์‹œ๋ฌผ์ด ๊ฒŒ์‹œ๋˜๋Š” ์‹œ์ ์—๋Š” OpenShift 4.4 ๋ฐ OpenShift Virtualization 2.3์ด ์ตœ์‹  ๋ฒ„์ „์ด๋ฏ€๋กœ ์ด์ „ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ตœ์‹  ๊ธฐ๋Šฅ์„ ์–ป์œผ๋ ค๋ฉด ์—…๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์™„์ „ํžˆ ์ง€์›๋˜๋Š” OpenShift ๊ฐ€์ƒํ™” ๋ฒ„์ „์€ 2020๋…„ ํ•˜๋ฐ˜๊ธฐ์— ์ถœ์‹œ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์˜คํ”ˆ์‹œํ”„ํŠธ ๋ฌธ์„œ ๋‹ค์Œ์„ ํฌํ•จํ•œ ์„ค์น˜ ์ง€์นจ ๋ฉ€ํ‹ฐ ์„ค์ • ์„น์…˜, ์™ธ๋ถ€ ๋„คํŠธ์›Œํฌ ์„ค์ •์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€