Rook - Kubernetes์šฉ ์…€ํ”„ ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

Rook - Kubernetes์šฉ ์…€ํ”„ ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

29์›” XNUMX์ผ, Kubernetes, Prometheus ๋ฐ ์ปจํ…Œ์ด๋„ˆ ๋ฐ ํด๋ผ์šฐ๋“œ ๋„ค์ดํ‹ฐ๋ธŒ ์„ธ๊ณ„์˜ ๊ธฐํƒ€ ์˜คํ”ˆ ์†Œ์Šค ์ œํ’ˆ์„ ์ง€์›ํ•˜๋Š” ์กฐ์ง์ธ CNCF(Cloud Native Computing Foundation)์˜ ๊ธฐ์ˆ ์œ„์›ํšŒ๋Š” ะพะฑัŠัะฒะธะป ํ”„๋กœ์ ํŠธ ์Šน์ธ์— ๋Œ€ํ•ด ์‚ฌ๊ธฐ๊พผ ๊ทธ๋“ค์˜ ๋Œ€์—ด์— ๋“ค์–ด๊ฐ‘๋‹ˆ๋‹ค. โ€œKubernetes์˜ ๋ถ„์‚ฐ ์Šคํ† ๋ฆฌ์ง€ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐโ€์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ๋Š” ์ ˆํ˜ธ์˜ ๊ธฐํšŒ์ž…๋‹ˆ๋‹ค.

์–ด๋–ค ์ข…๋ฅ˜์˜ ๋ฃจํฌ?

์‚ฌ๊ธฐ๊พผ Go๋กœ ์ž‘์„ฑ๋œ ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค(๋ฐฐํฌ์ž ๋ฌด๋ฃŒ Apache License 2.0์— ๋”ฐ๋ผ), ๋ฐ์ดํ„ฐ ์›จ์–ดํ•˜์šฐ์Šค์— ์ž๋™ํ™”๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ž๊ฐ€ ๊ด€๋ฆฌ, ์ž๊ฐ€ ํ™•์žฅ, ์ž๊ฐ€ ์น˜์œ . ์ด๋ฅผ ์œ„ํ•ด Rook์€ ๋ฐฐํฌ, ๋ถ€ํŠธ์ŠคํŠธ๋ž˜ํ•‘, ๊ตฌ์„ฑ, ํ”„๋กœ๋น„์ €๋‹, ํ™•์žฅ, ์—…๋ฐ์ดํŠธ, ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜, ์žฌํ•ด ๋ณต๊ตฌ, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ์ž๋™ํ™”ํ•ฉ๋‹ˆ๋‹ค(Kubernetes ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์˜ ๊ฒฝ์šฐ).

์ด ํ”„๋กœ์ ํŠธ๋Š” ์•ŒํŒŒ ๋‹จ๊ณ„์— ์žˆ์œผ๋ฉฐ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ Ceph ๋ถ„์‚ฐ ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ์„ ์กฐ์ •ํ•˜๋Š” ๋ฐ ํŠนํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์ž๋Š” ๋˜ํ•œ ๋‹ค๋ฅธ ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ์„ ์ง€์›ํ•  ๊ณ„ํš์„ ๋ฐœํ‘œํ–ˆ์ง€๋งŒ ๋‹ค์Œ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ ๋ฐ ๊ธฐ์ˆ  ์žฅ์น˜

Kubernetes ๋‚ด๋ถ€์—์„œ Rook์˜ ์ž‘์—…์€ ํŠน์ˆ˜ ์—ฐ์‚ฐ์ž๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. (Kubernetes Operator์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ด ๊ธฐ์‚ฌ), ์Šคํ† ๋ฆฌ์ง€ ๊ตฌ์„ฑ์„ ์ž๋™ํ™”ํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ, ๋ฃจํฌ ์šด์˜์ž ์ €์žฅ์†Œ์˜ ๋ฐฐํฌ ๋ฐ ํ›„์† ์œ ์ง€ ๊ด€๋ฆฌ์— ํ•„์š”ํ•œ ๋ชจ๋“  ๊ฒƒ์„ ํฌํ•จํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์ธ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ์šด์˜์ž์˜ ์ฑ…์ž„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Ceph ์Šคํ† ๋ฆฌ์ง€ ๋ฐ๋ชฌ์šฉ DaemonSet ์ƒ์„ฑ (ceph-osd) ๊ฐ„๋‹จํ•œ RADOS ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • Ceph ๋ชจ๋‹ˆํ„ฐ๋ง์„ ์œ„ํ•œ ํฌ๋“œ ์ƒ์„ฑ (์—์„œ ์„ธํ”„๋ชฌ, ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋Ÿผ์˜ ๊ฒฝ์šฐ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ 3๊ฐœ์˜ ๋ณต์‚ฌ๋ณธ์ด ๋ฐฐํฌ๋˜๊ณ , ๊ทธ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ๋–จ์–ด์ง€๋ฉด ์ƒˆ ๋ณต์‚ฌ๋ณธ์ด ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.;
  • CRD ๊ด€๋ฆฌ(์‚ฌ์šฉ์ž ์ •์˜ ๋ฆฌ์†Œ์Šค ์ •์˜) ์ž์‹ ์„ ์œ„ํ•ด ๋ฌด๋ฆฌ, ์Šคํ† ๋ฆฌ์ง€ ํ’€, ๊ฐ์ฒด ์ €์žฅ์†Œ (๊ฐ์ฒด์— ๋Œ€ํ•ด PUT/GET์„ ์ˆ˜ํ–‰ํ•˜๋Š” HTTP ์š”์ฒญ์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ฆฌ์†Œ์Šค ๋ฐ ์„œ๋น„์Šค ์„ธํŠธ - S3 ๋ฐ Swift API์™€ ํ˜ธํ™˜๋จ)๊ณผ ํŒŒ์ผ ์‹œ์Šคํ…œ;
  • ํ•„์š”ํ•œ ๋ชจ๋“  ์„œ๋น„์Šค๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํฌ๋“œ๋ฅผ ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • Rook ์—์ด์ „ํŠธ ์ƒ์„ฑ.

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

Rook - Kubernetes์šฉ ์…€ํ”„ ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ
์ „์ฒด Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์ฒด๊ณ„์—์„œ Rook ๊ตฌ์„ฑ ์š”์†Œ์˜ ์œ„์น˜ ๋ฐ ์—ญํ• 

Rook์€ ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  1. ์ฐจ๋‹จํ•˜๋‹ค (๋ธ”๋ก, StorageClass) โ€” ์ €์žฅ์†Œ๋ฅผ ๋‹จ์ผ ๋‚œ๋กœ์— ์žฅ์ฐฉํ•ฉ๋‹ˆ๋‹ค.
  2. ๋ฌผ์ฒด (๋ชฉ์ , ObjectStore) - Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด๋ถ€ ๋ฐ ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(S3 API๋ฅผ ํ†ตํ•ด).
  3. ๊ณต์œ  ํŒŒ์ผ ์‹œ์Šคํ…œ (๊ณต์œ  ํŒŒ์ผ ์‹œ์Šคํ…œ, Filesystem)์€ ์—ฌ๋Ÿฌ Pod์—์„œ ์ฝ๊ณ  ์“ฐ๊ธฐ ์œ„ํ•ด ๋งˆ์šดํŠธํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

Rook์˜ ๋‚ด๋ถ€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๋ชฝ์Šค โ€” Ceph ๋ชจ๋‹ˆํ„ฐ๋ง์šฉ ํฌ๋“œ(์ด๋ฏธ ์–ธ๊ธ‰ํ•œ ceph-mon ํฌํ•จ)
  • OSD - ceph-osd ๋ฐ๋ชฌ(๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€ ๋ฐ๋ชฌ)์ด ํฌํ•จ๋œ ํฌ๋“œ
  • M.G.R. - ์•…๋งˆ๊ฐ€ ์žˆ๋Š” ๊ผฌํˆฌ๋ฆฌ ceph-mgr ์™ธ๋ถ€ ์‹œ์Šคํ…œ(๋ชจ๋‹ˆํ„ฐ๋ง/์ œ์–ด)์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ธฐ๋Šฅ ๋ฐ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” (Ceph Manager)
  • RGW (์„ ํƒ ๊ณผ๋ชฉ) - ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ํฌํ•จ๋œ ํฌ๋“œ
  • MDS (์„ ํƒ ๊ณผ๋ชฉ) - ๊ณต์œ  ํŒŒ์ผ ์‹œ์Šคํ…œ์ด ์žˆ๋Š” ํฌ๋“œ.

Rook - Kubernetes์šฉ ์…€ํ”„ ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

๋ชจ๋“  Rook ๋ฐ๋ชฌ(Mons, OSD, MGR, RGW, MDS)์€ ๋‹จ์ผ ๋ฐ”์ด๋„ˆ๋ฆฌ(rook) ์ปจํ…Œ์ด๋„ˆ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

Rook ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ๊ฐ„๋žตํ•œ ์†Œ๊ฐœ๋ฅผ ์œ„ํ•ด ์ด ์งง์€(12๊ฐœ ์Šฌ๋ผ์ด๋“œ)๋„ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ์ถœ Bassam Tabbara(Quantum Corp์˜ CTO)๊ฐ€ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฃจํฌ ์šด์˜

Rook Operator๋Š” Kubernetes ๋ฒ„์ „ 1.6 ์ด์ƒ์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. (๊ทธ๋ฆฌ๊ณ  ๋ถ€๋ถ„์ ์œผ๋กœ ์ด์ „ K8s ๋ฆด๋ฆฌ์Šค - 1.5.2). ๊ทธ์˜ ์„ค์น˜ ะฒ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค ๊ทธ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค :

cd cluster/examples/kubernetes
kubectl create -f rook-operator.yaml
kubectl create -f rook-cluster.yaml

๋˜ํ•œ, Rook ์˜คํผ๋ ˆ์ดํ„ฐ๋„ ์ค€๋น„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ—ฌ๋ฆ„ ์ฐจํŠธ, ๋•๋ถ„์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค์น˜๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

helm repo add rook-alpha https://charts.rook.io/alpha
helm install rook-alpha/rook

์†Œ๋Ÿ‰ ๊ฐ€๋Šฅ ์„ค์ • ์˜ต์…˜ (์˜ˆ๋ฅผ ๋“ค์–ด ์ง€์›์„ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. RBAC(์ด ๊ธฐ๋Šฅ์ด ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ) helm install ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํ†ตํ•ด --set key=value[,key=value] (๋˜๋Š” ๋ณ„๋„์˜ YAML ํŒŒ์ผ์— ์ €์žฅํ•˜๊ณ  ๋‹ค์Œ์„ ํ†ตํ•ด ์ „์†ก) -f values.yaml).

Rook ์˜คํผ๋ ˆ์ดํ„ฐ๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์—์ด์ „ํŠธ์™€ ํ•จ๊ป˜ ํฌ๋“œ๋ฅผ ์‹œ์ž‘ํ•œ ํ›„ ๋‚จ์€ ๊ฒƒ์€ Rook ํด๋Ÿฌ์Šคํ„ฐ ์ž์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ๋ฟ์ž…๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ตฌ์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค(rook-cluster.yaml):

apiVersion: v1
kind: Namespace
metadata:
  name: rook
---
apiVersion: rook.io/v1alpha1
kind: Cluster
metadata:
  name: rook
  namespace: rook
spec:
  dataDirHostPath: /var/lib/rook
  storage:
    useAllNodes: true
    useAllDevices: false
    storeConfig:
      storeType: bluestore
      databaseSizeMB: 1024
      journalSizeMB: 1024

์ฃผ์˜: ์†์„ฑ์— ํŠน๋ณ„ํ•œ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. dataDirHostPath, ์žฌ๋ถ€ํŒ… ํ›„ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ €์žฅํ•˜๋ ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ ๊ฐ’์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Kubernetes ํ˜ธ์ŠคํŠธ์—์„œ Rook ๋ฐ์ดํ„ฐ์˜ ์˜๊ตฌ ์ €์žฅ ์œ„์น˜๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ์ž‘์„ฑ์ž๋Š” ์ด ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ตœ์†Œ 5GB์˜ ์—ฌ์œ  ๋””์Šคํฌ ๊ณต๊ฐ„์„ ํ™•๋ณดํ•  ๊ฒƒ์„ โ€‹โ€‹๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๋‚จ์€ ๊ฒƒ์€ ์‹ค์ œ๋กœ ๊ตฌ์„ฑ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํฌ๋“œ๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ(๋„ค์ž„์ŠคํŽ˜์ด์Šค)์— ์ƒ์„ฑ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. rook):

kubectl create -f rook-cluster.yaml
kubectl -n rook get pod
NAME                              READY     STATUS    RESTARTS   AGE
rook-api-1511082791-7qs0m         1/1       Running   0          5m
rook-ceph-mgr0-1279756402-wc4vt   1/1       Running   0          5m
rook-ceph-mon0-jflt5              1/1       Running   0          6m
rook-ceph-mon1-wkc8p              1/1       Running   0          6m
rook-ceph-mon2-p31dj              1/1       Running   0          6m
rook-ceph-osd-0h6nb               1/1       Running   0          5m

์—…๊ทธ๋ ˆ์ด๋“œ Rook ํด๋Ÿฌ์Šคํ„ฐ(์ƒˆ ๋ฒ„์ „๊นŒ์ง€)๋Š” ์ด ๋‹จ๊ณ„์—์„œ ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ํŠน์ • ์ˆœ์„œ๋กœ ์ˆœ์ฐจ์ ์œผ๋กœ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•˜๋Š” ์ ˆ์ฐจ์ด๋ฉฐ, ํ˜„์žฌ Rook ์„ค์น˜๊ฐ€ ์™„์ „ํžˆ "์ •์ƒ"์ธ์ง€ ํ™•์ธํ•œ ํ›„์—๋งŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ. Rook ๋ฒ„์ „ 0.5.0์„ 0.5.1๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์˜ˆ๋ฅผ ์‚ฌ์šฉํ•œ ์ž์„ธํ•œ ๋‹จ๊ณ„๋ณ„ ์ง€์นจ์€ ๋‹ค์Œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ๋ฌธ์„œ.

์ง€๋‚œ 11์›” Rook ๋ธ”๋กœ๊ทธ์—์„œ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋น„๊ต ๊ณต์—ฐ EBS์™€ ํ•จ๊ป˜ ๊ทธ ๊ฒฐ๊ณผ๋Š” ์ฃผ๋ชฉํ•  ๋งŒํ•˜๋ฉฐ, ๊ฐ„๋‹จํžˆ ์š”์•ฝํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

Rook - Kubernetes์šฉ ์…€ํ”„ ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ
Rook - Kubernetes์šฉ ์…€ํ”„ ์„œ๋น„์Šค ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ

์ „๋ง

Rook์˜ ํ˜„์žฌ ์ƒํƒœ๋Š” ์•ŒํŒŒ์ด๋ฉฐ ํ˜„์žฌ๊นŒ์ง€์˜ ์ตœ์‹  ์ฃผ์š” ๋ฆด๋ฆฌ์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 0.6 ๋ฒ„์ „, 2017๋…„ XNUMX์›” ์ถœ์‹œ(ํ˜„์žฌ ์ˆ˜์ • - v0.6.2 - 14์›” 2018์ผ์— ๋‚˜์™”์Šต๋‹ˆ๋‹ค.) ์ด๋ฏธ XNUMX๋…„ ์ƒ๋ฐ˜๊ธฐ์—๋Š” ๋ฒ ํƒ€ ๋ฒ„์ „๊ณผ ์•ˆ์ • ๋ฒ„์ „(๊ณต์‹์ ์œผ๋กœ ํ”„๋กœ๋•์…˜์— ์‚ฌ์šฉํ•  ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์Œ) ๋“ฑ ๋ณด๋‹ค ์„ฑ์ˆ™ํ•œ ๋ฒ„์ „์ด ์ถœ์‹œ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋ฉ๋‹ˆ๋‹ค.

์— ๋”ฐ๋ฅด๋ฉด ๋กœ๋“œ๋งต ํ”„๋กœ์ ํŠธ์—์„œ ๊ฐœ๋ฐœ์ž๋Š” ์ตœ์†Œํ•œ ๋‹ค์Œ ๋‘ ๋ฆด๋ฆฌ์Šค์ธ 0.7์—์„œ Rook ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋น„์ „์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(์ค€๋น„ ์ƒํƒœ๋Š” GitHub ์ถ”์ ๊ธฐ์— ์žˆ์Šต๋‹ˆ๋‹ค). ์ถ”์ • ๋œ 60%) ๋ฐ 0.8. ์˜ˆ์ƒ๋˜๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ค‘์—๋Š” Ceph Block ๋ฐ Ceph Object์— ๋Œ€ํ•œ ์ง€์›์„ ๋ฒ ํƒ€ ๋ฒ„์ „ ์ƒํƒœ๋กœ ์ด์ „ํ•˜๊ณ , CephFS์— ๋Œ€ํ•œ ๋ณผ๋ฅจ์˜ ๋™์  ํ”„๋กœ๋น„์ €๋‹, ๊ณ ๊ธ‰ ๋กœ๊น… โ€‹โ€‹์‹œ์Šคํ…œ, ์ž๋™ํ™”๋œ ํด๋Ÿฌ์Šคํ„ฐ ์—…๋ฐ์ดํŠธ, ๋ณผ๋ฅจ์— ๋Œ€ํ•œ ์Šค๋ƒ…์ƒท ์ง€์› ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฃจํฌ๋ฅผ ์ˆซ์ž ์†์œผ๋กœ ๋ฐ๋ ค๊ฐ€์„ธ์š” CNCF ํ”„๋กœ์ ํŠธ (์ง€๊ธˆ๊นŒ์ง€๋Š” ๋งค์šฐ ์ดˆ๊ธฐ ๋‹จ๊ณ„์ธ "๊ฐœ์‹œ ์ˆ˜์ค€"์—์„œ ๋ง์ปค๋“œ ะธ ์ฝ”์–ดDNS)๋Š” ์ œํ’ˆ์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ๋†’์•„์ง€๋Š” ์ผ์ข…์˜ ๋ณด์ฆ์ž…๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ธ ๋ฒ„์ „์ด ์ถœ์‹œ๋˜๋ฉด ํด๋ผ์šฐ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ธ๊ณ„์—์„œ ์–ด๋–ป๊ฒŒ ๋ฐœํŒ์„ ๋งˆ๋ จํ•  ๊ฒƒ์ธ์ง€๊ฐ€ ๋” ๋ช…ํ™•ํ•ด์งˆ ๊ฒƒ์ด๋ฉฐ, ์ด๋Š” ํ™•์‹คํžˆ ์ƒˆ๋กœ์šด ํ…Œ์Šคํ„ฐ์™€ ์‚ฌ์šฉ์ž๋ฅผ Rook๋กœ ๋Œ์–ด๋“ค์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

PS

๋ธ”๋กœ๊ทธ์—์„œ๋„ ์ฝ์–ด๋ณด์„ธ์š”.

์ถœ์ฒ˜ : habr.com

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster