Docs Menu

MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—… ๊ตฌ์„ฑ

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

Kubernetes Operator๊ฐ€ MongoDB ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋Š” MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ์—ฐ์†์ ์ด๊ณ  ์ž๋™ํ™”๋œ ๋ฐฑ์—…์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB database ๋ฆฌ์†Œ์Šค ๋ฐฐํฌ์„œ๋ฒ„ ์ค‘์— MongoDB ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ฐฑ์—…์„ ์ด๋ฏธ ๊ตฌ์„ฑํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ ์ ˆ์ฐจ๋ฅผ ์™„๋ฃŒํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

MongoDB ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ฐฑ์—…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ๊ณ ๋ ค ์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  • Kubernetes Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ• ๋‹น ๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ํ• ๋‹น ๋ ˆ์ด๋ธ”์— ๋Œ€ํ•ด Kubernetes ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์„ค์ •ํ•œ ๊ฐ’์ด Ops Manager UI์— ์ •์˜๋œ ๊ฐ’์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. Kubernetes Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•˜์ง€ ์•Š์€ ํ• ๋‹น ๋ ˆ์ด๋ธ”์€ Ops Manager UI์— ์„ค์ •๋œ ๊ฐ’์„ ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • Kubernetes Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋ƒ…์ƒท ์ผ์ • ํ•„๋“œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ํ•„๋“œ์— ๋Œ€ํ•ด Kubernetes ๊ตฌ์„ฑ ํŒŒ์ผ์— ์„ค์ •ํ•œ ๊ฐ’์ด Ops Manager UI์— ์ •์˜๋œ ๊ฐ’์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. Kubernetes Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ค์ •ํ•˜์ง€ ์•Š์€ ์Šค๋ƒ…์ƒท ์ผ์ • ํ•„๋“œ๋Š” Ops Manager UI์— ์„ค์ •๋œ ๊ฐ’์„ ๊ณ„์† ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ์‹œ

    • Kubernetes Operator์—์„œ backup.snapshotSchedule.snapshotIntervalHours=6์„(๋ฅผ) ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    • UI์—์„œ ๋‹ค์Œ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

      • Snapshot Inverval: 10

      • ์Šค๋ƒ…์ƒท ๋ณด์กด ์ผ์ˆ˜: 5์ผ

    Ops Manager๋Š” ๋ฐฐํฌ์— ๋‹ค์Œ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • Snapshot Inverval: 6

    • ์Šค๋ƒ…์ƒท ๋ณด์กด ์ผ์ˆ˜: 5์ผ

  • Kubernetes Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฐํฌ์— ๋ฐฑ์—…์„ ํ™œ์„ฑํ™”ํ–ˆ์ง€๋งŒ Kubernetes Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋ƒ…์ƒท ์ผ์ •์„ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ Ops Manager๋Š” Ops Manager UI์—์„œ ์„ค์ •ํ•œ ์Šค๋ƒ…์ƒท ์ผ์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • MongoDB deployment์˜ ๋ฐฑ์—…์„ ํ™œ์„ฑํ™”ํ–ˆ์ง€๋งŒ ์Šค๋ƒ…์ƒท ์ผ์ •์„ ์ „ํ˜€ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ Ops Manager๋Š” ๊ธฐ๋ณธ ์Šค๋ƒ…์ƒท ์ผ์ •์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

MongoDB ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์—ฐ์† ๋ฐฑ์—…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์ž‘์—…์„ ์™„๋ฃŒํ•˜์„ธ์š”.

1

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฐํฌ์˜ ๊ตฌ์„ฑ ํŒŒ์ผ์— spec.backup.mode ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜๊ณ  ๋‹ค์Œ ๋ณต์ œ๋ณธ ์„ธํŠธ ์˜ˆ์™€ ๊ฐ™์ด ํ•ด๋‹น ๊ฐ’์„ enabled(์œผ)๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-replica-set>
6spec:
7 members: 3
8 version: "6.0.0-ent"
9 type: ReplicaSet
10 opsManager:
11 configMapRef:
12 name: <my-project>
13 credentials: <my-credentials>
14 backup:
15 # Sets labels for the Backup Daemon.
16 assignmentLabels: ["test1", "test2"]
17 mode: enabled

๊ตฌ์„ฑ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ํŽธ์ง‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฐฐํฌ ๋˜๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

2

๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์‚ฌ์–‘ ํŒŒ์ผ์— ๋‹ค์Œ ์Šค๋ƒ…์ƒท ์ผ์ • ์„ค์ • ์ค‘ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. Operator๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์Šค๋ƒ…์ƒท ์ผ์ • ํ•„๋“œ๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ MongoDB Ops Manager ๊ฐ€ ์Šค๋ƒ…์ƒท ์ผ์ •์„ ๊ฒฐ์ •ํ•˜๋Š” Kubernetes ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด ๊ณ ๋ ค ์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

3

๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์‚ฌ์–‘ ํŒŒ์ผ์— spec.backup.assignmentLabels ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ํ• ๋‹น ๋ ˆ์ด๋ธ”์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ฐฑ์—… ์ €์žฅ์†Œ๊ฐ€ ํŠน์ • ํ”„๋กœ์ ํŠธ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”์ง€ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. Kubernetes Operator์—์„œ ๋ ˆ์ด๋ธ”์„ ์„ค์ •ํ•˜๋ฉด MongoDB Ops Manager ์—์„œ ์„ค์ •ํ•œ ๋ ˆ์ด๋ธ”์ด ์žฌ์ •์˜๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ณ ๋ ค ์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด ์ ˆ์ฐจ ์•ž๋ถ€๋ถ„์˜ ํ• ๋‹น ๋ ˆ์ด๋ธ”์ด ์žˆ๋Š” ์‚ฌ์–‘ ํŒŒ์ผ์˜ ์˜ˆ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

4

๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ๋ฐฑ์—… ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค:

kubectl get mdb <resource-name> -n <metadata.namespace> -o yaml

status.backup.statusname ํ•„๋“œ๋Š” ๋ฐฑ์—…์˜ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ฐฑ์—…์„ ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ์ƒํƒœ์— STARTED ์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ