Docs Menu
Docs Home
/
MongoDB Enterprise Kubernetes ์—ฐ์‚ฐ์ž
/

Ops Manager ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘

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

  • ์˜ˆ์‹œ
  • MongoDB Ops Manager ํ•„์ˆ˜ ์„ค์ •
  • MongoDB Ops Manager ์„ ํƒ์  ์„ค์ •
  • ์™ธ๋ถ€ ์—ฐ๊ฒฐ ์„ค์ •
  • ๋ฐฑ์—… ์„ค์ •
  • S3 ์„ค์ •
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•„์ˆ˜ ์„ค์ •
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒ์  ์„ค์ •
  • Prometheus ์„ค์ •
  • ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ์„ค์ •
  • MongoDB Ops Manager ํ•„์ˆ˜ ์„ค์ •
  • MongoDB Ops Manager ์„ ํƒ์  ์„ค์ •
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ•„์ˆ˜ ์„ค์ •
  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒ์  ์„ค์ •

MongoDB MongoDB Enterprise Kubernetes Operator ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ Kubernetes MongoDB Ops Manager Operator ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์“ฐ๊ธฐ (write) ์‚ฌ์–‘ ํŒŒ์ผ์—์„œ ์ปจํ…Œ์ด๋„ˆํ™”๋œ MongoDB Ops Manager ๋ฐฐํฌ์„œ๋ฒ„ ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

MongoDB Ops Manager ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘์„ ๋งŒ๋“ค๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธ ํ•œ ํ›„ MongoDB Enterprise Kubernetes Operator ์— ์ด ์‚ฌ์–‘์„ Kubernetes ํ™˜๊ฒฝ์— ์ ์šฉ ํ•˜๋„๋ก ์ง€์‹œํ•ฉ๋‹ˆ๋‹ค. Kubernetes Operator๋Š” ์— ํ•„์š”ํ•œ ์„œ๋น„์Šค ๋ฐ Kubernetes MongoDB Ops Manager MongoDB Ops Manager ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•œ ๋‹ค์Œ, ์™€ ํ•ด๋‹น ์ง€์› ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ™˜๊ฒฝ์˜ Kubernetes ์ปจํ…Œ์ด๋„ˆ์— ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

๊ฐ MongoDB Ops Manager ๋ฆฌ์†Œ์Šค๋Š” ๊ฐ์ฒด ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.YAML ์˜ ์‚ฌ์–‘์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ์˜ ํŠน์„ฑ ๋ฐ ์„ค์ •์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์—์„œ๋Š” Ops Manager ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

1apiVersion: mongodb.com/v1
2kind: MongoDBOpsManager
3metadata:
4 name: om
5spec:
6 topology: SingleCluster # optional, SingleCluster by default
7 opsManagerURL: https://link.to.configured.load-balancer.example.com # optional OM URL for the operator
8replicas: 1
9version: "6.0.18"
10 adminCredentials: ops-manager-admin-secret
11 configuration:
12 mms.fromEmailAddr: admin@example.com
13 mms.security.allowCORS: "false"
14 security:
15 tls:
16 ca: issuer-ca
17 backup:
18 enabled: true
19 encryption:
20 kmip:
21 server:
22 url: kmip.corp.mongodb.com:5696
23 ca: mongodb-kmip-certificate-authority-pem
24 headDB:
25 storage: "30Gi"
26 labelSelector:
27 matchLabels:
28 app: my-app
29 opLogStores:
30 - name: oplog1
31 # Sets labels for the oplog store.
32 assignmentLabels: ["test1", "test2"]
33 mongodbResourceRef:
34 name: my-oplog-db
35 mongodbUserRef:
36 name: my-oplog-user
37 s3Stores:
38 - name: s3store1
39 # Sets labels for the S3 store.
40 assignmentLabels: ["test1", "test2"]
41
42 mongodbResourceRef:
43 name: my-s3-metadata-db
44 mongodbUserRef:
45 name: my-s3-store-user
46 s3SecretRef:
47 name: my-s3-credentials
48 pathStyleAccessEnabled: true
49 s3BucketEndpoint: s3.region.amazonaws.com
50 s3BucketName: my-bucket
51 applicationDatabase:
52 passwordSecretKeyRef:
53 name: om-db-user-secret
54 key: password
55 members: 3
56 topology: SingleCluster
57 version: "6.0.5-ubi8"
58 security:
59 tls:
60 ca: issuer-ca
61 secretRef:
62 prefix: appdb
1apiVersion: mongodb.com/v1
2kind: MongoDBOpsManager
3metadata:
4 name: om
5spec:
6 topology: MultiCluster # optional, SingleCluster by default
7 opsManagerURL: https://link.to.configured.lb.example.com # optional OM URL for the operator
8 clusterSpecList: # optional ClusterSpecOMItem list, the type is different than ClusterSpecItem for AppDB and MongoDB
9 - clusterName: cluster-1 # required
10 replicas: 1 # required, OM application replicas
11 # optional parameters to override those defined at MongoDBOpsManager level
12 clusterDomain: cluster-1.example.com # optional, default cluster.local
13 jvmParameters: ["-Xmx4352m","-Xms4352m"]
14 externalConnectivity: # optional to override
15 type: LoadBalancer
16 port: 9090
17 annotations:
18 key: value
19 statefulSet: # StatefulSetSpecWrapper override
20 spec: {}
21 metadata: {}
22 configuration:
23 automation.versions.source: mongodb
24 mms.adminEmailAddr: cloud-manager-support@mongodb.com
25 backup: # MongoDBOpsManagerBackup, optional, we only support a subset of fields
26 members: 1 # backup daemon replicas, optional, default=1
27 assignmentLabels: [] # assignment labels to override
28 jvmParameters: ["-Xmx4352m","-Xms4352m"] # optional
29 statefulSet: # mdbc.StatefulSetConfiguration, optional to override for backup daemon
30 spec: {}
31 metadata: {}
32 - clusterName: cluster-2
33 replicas: 1
34
35 ....
36
37replicas: 1
38 version: "6.0.18"
39 adminCredentials: ops-manager-admin-secret
40 configuration:
41 mms.fromEmailAddr: admin@example.com
42 mms.security.allowCORS: "false"
43 backup:
44 enabled: true
45 encryption:
46 kmip:
47 server:
48 url: kmip.corp.mongodb.com:5696
49 ca: mongodb-kmip-certificate-authority-pem
50 headDB:
51 storage: "30Gi"
52 labelSelector:
53 matchLabels:
54 app: my-app
55 opLogStores:
56 - name: oplog1
57 # Sets labels for the oplog store.
58 assignmentLabels: ["test1", "test2"]
59 mongodbResourceRef:
60 name: my-oplog-db
61 mongodbUserRef:
62 name: my-oplog-user
63 s3Stores:
64 - name: s3store1
65 # Sets labels for the S3 store.
66 assignmentLabels: ["test1", "test2"]
67
68 mongodbResourceRef:
69 name: my-s3-metadata-db
70 mongodbUserRef:
71 name: my-s3-store-user
72 s3SecretRef:
73 name: my-s3-credentials
74 pathStyleAccessEnabled: true
75 s3BucketEndpoint: s3.region.amazonaws.com
76 s3BucketName: my-bucket
77 security:
78 tls:
79 ca: issuer-ca
80 applicationDatabase:
81 passwordSecretKeyRef:
82 name: om-db-user-secret
83 key: password
84 version: "6.0.5-ubi8"
85 topology: MultiCluster
86 clusterSpecList:
87 - clusterName: cluster1.example.com
88 members: 4
89 - clusterName: cluster2.example.com
90 members: 3
91 - clusterName: cluster3.example.com
92 members: 2
93 security:
94 tls:
95 ca: issuer-ca
96 secretRef:
97 prefix: appdb

์ด ์„น์…˜์—์„œ๋Š” ๋ชจ๋“  Ops Manager ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์„ค์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

apiVersion

์œ ํ˜•: ๋ฌธ์ž์—ด

ํ•„์ˆ˜. MongoDB Kubernetes ๋ฆฌ์†Œ์Šค ์Šคํ‚ค๋งˆ์˜ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

kind

์œ ํ˜•: ๋ฌธ์ž์—ด

ํ•„์ˆ˜. ์ƒ์„ฑํ•  MongoDB Kubernetes ๋ฆฌ์†Œ์Šค์˜ ์ข…๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ MongoDBOpsManager ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

metadata.name

์œ ํ˜•: ๋ฌธ์ž์—ด

ํ•„์ˆ˜. ์ƒ์„ฑ ์ค‘์ธ MongoDB Kubernetes ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

๋ฆฌ์†Œ์Šค ์ด๋ฆ„์€ 44์ž ์ด๋‚ด์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.version

์œ ํ˜•: ๋ฌธ์ž์—ด

ํ•„์ˆ˜. ์ด MongoDB Kubernetes ๋ฆฌ์†Œ์Šค์— ์„ค์น˜ํ•˜๋ ค๋Š” Ops Manager์˜ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.

spec.adminCredentials

์œ ํ˜•: ๋ฌธ์ž์—ด

ํ•„์ˆ˜. ์‹œํฌ๋ฆฟ ์˜ ์ด๋ฆ„ Kubernetes MongoDB Ops Manager ๊ด€๋ฆฌ์ž ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ์ƒ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. MongoDB Ops Manager ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐํฌํ•  ๋•Œ Kubernetes Operator๋Š” ์ด๋Ÿฌํ•œ ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ฐ€์ง„ ์‚ฌ์šฉ์ž๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋‹จ์ผ ํด๋Ÿฌ์Šคํ„ฐ Kubernetes ๋ฐฐํฌ์— ์‹œํฌ๋ฆฟ์ด ์ €์žฅ๋˜์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด ๋ชจ๋“  ์‹œํฌ๋ฆฟ ์„ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์‹œํฌ๋ฆฟ ์ €์žฅ ๋„๊ตฌ . ์—ฌ๋Ÿฌ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ๋ฐฐํฌ๋Š” HashiCorp Vault ์™€ ๊ฐ™์€ ๋น„๋ฐ€ ์ €์žฅ ๋„๊ตฌ์— ๋น„๋ฐ€์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์„ ์ง€์› ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. .

๊ด€๋ฆฌ ์‚ฌ์šฉ์ž์—๊ฒŒ๋Š” ์ „์—ญ ์†Œ์œ ์ž ์—ญํ• ์ด ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค.

spec.replicas

์œ ํ˜•: integer

์กฐ๊ฑด๋ถ€. ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ MongoDB Ops Manager ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. spec.topology ์— SingleCluster ์„ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ํ—ˆ์šฉ๋˜๋Š” ์ตœ์†Œ ๊ฐ’์€ 1 ์ž…๋‹ˆ๋‹ค.

spec.topology ์— MultiCluster ์„ ์ง€์ •ํ•˜๋ฉด ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

MongoDB Ops Manager ๋ฆฌ์†Œ์Šค๋Š” ๋‹ค์Œ ์„ค์ •์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

spec.backup.logging.logBackAccessRef

์œ ํ˜•: ๋ฌธ์ž์—ด

MongoDB Ops Manager ๋ฐฑ์—… ๋กœ๊ทธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • logback-access.xml ํŒŒ์ผ ์ด ํฌํ•จ๋œ ConfigMap์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค.

ConfigMap์˜ ํ‚ค๋Š” MongoDB Ops Manager ํŒŒ๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’ ํŒŒ์ผ ์„ ๋Œ€์ฒดํ•˜๋„๋ก logback-access.xml ์˜ ์ด๋ฆ„๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ๋‚ด์šฉ ์€ CRD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MongoDB Ops Manager ๋กœ๊ทธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.backup.logging.logBackRef

์œ ํ˜•: ๋ฌธ์ž์—ด

์‚ฌ์šฉ์ž ์ง€์ • logback.xml ํŒŒ์ผ ์ด ํฌํ•จ๋œ ConfigMap์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ ์€ ๋กœ๊ทธ ๋กœํ…Œ์ด์…˜ ์ •์ฑ…, ๋กœ๊ทธ ์ˆ˜์ค€ ๋ฐ ๊ธฐํƒ€ ๋กœ๊น… ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•˜์—ฌ MongoDB Ops Manager ๋ฐฑ์—…์— ๋Œ€ํ•œ ์ผ๋ฐ˜์ ์ธ ๋กœ๊น… ๋™์ž‘์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

ConfigMap์˜ ํ‚ค๋Š” MongoDB Ops Manager ํŒŒ๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’ ํŒŒ์ผ ์„ ๋Œ€์ฒดํ•˜๋„๋ก logback-access.xml ์˜ ์ด๋ฆ„๊ณผ ์ •ํ™•ํžˆ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•™์Šต ๋‚ด์šฉ ์€ CRD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MongoDB Ops Manager ๋กœ๊ทธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.logging.logBackAccessRef

์œ ํ˜•: ๋ฌธ์ž์—ด

MongoDB Ops Manager ๋กœ๊ทธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • logback-access.xml ํŒŒ์ผ ์ด ํฌํ•จ๋œ ConfigMap์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค.

MongoDB Ops Manager ํŒŒ๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’ ํŒŒ์ผ ์„ ๋Œ€์ฒดํ•˜๋ ค๋ฉด ConfigMap์˜ ํ‚ค๋Š” ์ •ํ™•ํžˆ logback-access.xml ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ๋‚ด์šฉ ์€ CRD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MongoDB Ops Manager ๋กœ๊ทธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.logging.logBackRef

์œ ํ˜•: ๋ฌธ์ž์—ด

์‚ฌ์šฉ์ž ์ง€์ • logback.xml ํŒŒ์ผ ์ด ํฌํ•จ๋œ ConfigMap์— ๋Œ€ํ•œ ์ฐธ์กฐ์ž…๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ ์€ ๋กœ๊ทธ ๋กœํ…Œ์ด์…˜ ์ •์ฑ…, ๋กœ๊ทธ ์ˆ˜์ค€ ๋ฐ ๊ธฐํƒ€ ๋กœ๊น… ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ํฌํ•จํ•˜์—ฌ MongoDB Ops Manager ์˜ ์ผ๋ฐ˜์ ์ธ ๋กœ๊น… ๋™์ž‘์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

MongoDB Ops Manager ํŒŒ๋“œ์˜ ๊ธฐ๋ณธ๊ฐ’ ํŒŒ์ผ ์„ ๋Œ€์ฒดํ•˜๋ ค๋ฉด ConfigMap์˜ ํ‚ค๋Š” ์ •ํ™•ํžˆ logback.xml ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ๋‚ด์šฉ ์€ CRD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MongoDB Ops Manager ๋กœ๊ทธ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.opsManagerURL

์œ ํ˜•: ๋ฌธ์ž์—ด

์„ ํƒ ์‚ฌํ•ญ. Operator์˜ URL MongoDB Ops Manager ๋ฆฌ์†Œ์Šค (์˜ˆ:Kubernetes https://link.to.configured.lb.example.com)์ž…๋‹ˆ๋‹ค.

  • ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ƒ๋žตํ•˜๋Š” ๊ฒฝ์šฐ, Kubernetes Operator๋Š” MongoDB Ops Manager ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์Œ URL ์„ MongoDB Ops Manager ์ธ์Šคํ„ด์Šค์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: <om-name>-svc.{namespace}.svc.cluster.local. MongoDB Ops Manager์šฉ ํ—ค๋“œ๋ฆฌ์Šค ์„œ๋น„์Šค์˜ FQDN ์ž…๋‹ˆ๋‹ค.

  • ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜๋ฉด ์ด URL์„ ๋‹ค๋ฅธ URL๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์šฉ MongoDB ๋ฐฐํฌ ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ์—์ด์ „ํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ • ๋ฐฐํฌ ์— ๋Œ€ํ•œ ConfigMap์— ์ง€์ •ํ•œ URL๊ณผ spec.opsManagerURL ๋ฅผ ํ˜ผ๋™ํ•˜์ง€ ๋งˆ์„ธ์š”. Kubernetes Operator๋Š” spec.opsManagerURL ๊ฐ€ ์žˆ์–ด์•ผ MongoDB Ops Manager ์ธ์Šคํ„ด์Šค์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๊ณ  MongoDB Ops Manager ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฐํฌ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Kubernetes Operator๋Š” spec.opsManagerURL ์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ spec.opsManagerURL ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉ์ž ์ง€์ • URL ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

  • ์—ฌ๋Ÿฌ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— MongoDB Ops Manager๋ฅผ ๋ฐฐํฌํ•˜๊ณ  MongoDB Ops Manager ํ˜ธ์ŠคํŒ… ํŒŒ๋“œ์—์„œ ๊ธฐ๋ณธ URL ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ. ์˜ˆ๋ฅผ ๋“ค์–ด, Kubernetes Operator๋ฅผ ๋ฐฐํฌํ•œ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— MongoDB Ops Manager๋ฅผ ๋ฐฐํฌํ•˜๋Š” ๊ฒฝ์šฐ, MongoDB Ops Manager ์„œ๋น„์Šค์˜ FQDN ์— ์•ก์„ธ์Šคํ•˜์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ง€์ • URL์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

spec.clusterDomain

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes๋Š” ๊ฐ Pod ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.FQDN . Kubernetes Operator๋Š” ๊ฐ Pod ์˜ FQDN์„ clusterDomain ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ณต๋œ ์„(๋ฅผ) ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Kubernetes๋Š” ์ด๋Ÿฌํ•œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ฟผ๋ฆฌํ•˜๋Š” API ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

spec.clusterName

์ค‘์š”

spec.clusterName์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋Œ€์‹  spec.clusterDomain๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes๋Š” ๊ฐ Pod ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.FQDN . Kubernetes Operator๋Š” ๊ฐ Pod ์˜ FQDN์„ clusterName ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ณต๋œ ์„(๋ฅผ) ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Kubernetes๋Š” ์ด๋Ÿฌํ•œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ฟผ๋ฆฌํ•˜๋Š” API ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

spec.configuration

์œ ํ˜•: ์ปฌ๋ ‰์…˜

MongoDB Ops Manager ๊ตฌ์„ฑ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์†์„ฑ ์ด๋ฆ„ ๋ฐ ์„ค๋ช…์€ MongoDB Ops Manager ๊ตฌ์„ฑ ์„ค์ • ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๊ฐ ์†์„ฑ์€ string ์œ ํ˜•์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

Ops Manager๊ฐ€ ๋ฐฐํฌ๋œ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์— ๋ฐฐํฌ๋œ MongoDB ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ mms.centralUrl ์„ค์ •์„ spec.configuration ์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Ops Manager๊ฐ€ Kubernetes cluster ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜๋Š” URL๋กœ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

ํ•™์Šต ๋‚ด์šฉ์€ ์™ธ๋ถ€ MongoDB ๋ฐฐํฌ ๊ด€๋ฆฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.configuration.mms.featureFlag.automation.verifyDownloads

์œ ํ˜•: ๋ฌธ์ž์—ด

enabled ๋กœ ์„ค์ •ํ•˜๋ฉด MongoDB Agent๋Š” Ops Manager ์ธ์Šคํ„ด์Šค๊ฐ€ managedํ•˜๋Š” ๋ชจ๋“  MongoDB ๋ฐฐํฌ์— ๋Œ€ํ•œ ์„œ๋ช… ํŒŒ์ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•œ ์ƒํƒœ์—์„œ MongoDB Agent๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ํ˜„์žฌ ๋ฒ„์ „์˜ MongoDB Agent์—๋Š” ์ƒˆ MongoDB Agent ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ์„œ๋ช… ํŒŒ์ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ MongoDB ์„œ๋ช… ํ™•์ธ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.configuration.mms.featureFlag.backup.queryable

์œ ํ˜•: ๋ถ€์šธ

์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—…์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋ฉด false ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

spec.configuration.mms.featureFlag.backup.wt.queryable

์œ ํ˜•: ๋ถ€์šธ

WiredTiger๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฟผ๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋ฐฑ์—… ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด false ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

spec.configuration.mms.mongoDbUsage.defaultUsageType

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes ์„œ๋น„์Šค์˜ ๊ธฐ๋ณธ ์„œ๋ฒ„ ์œ ํ˜•์ž…๋‹ˆ๋‹ค.

ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ PRODUCTION_SERVER, TEST_SERVER, DEV_SERVER ๋ฐ RAM_POOL ์ž…๋‹ˆ๋‹ค.

spec.jvmParameters

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

์„ ํƒ ์‚ฌํ•ญ. container์—์„œ Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ „๋‹ฌ๋˜๋Š” JVM ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค. ์ œ๊ณต๋œ ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋ณธ JVM ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋Œ€์ฒดํ•ฉ๋‹ˆ๋‹ค.

์ด Kubernetes ์—ฐ์‚ฐ์ž ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ ๋นˆ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

spec:
jvmParameters: ["-XX:+HeapDumpOnOutOfMemoryError","-XX:HeapDumpPath=/tmp"]

์ค‘์š”

JVM ๋ฉ”๋ชจ๋ฆฌ ํž™(Memory Heap) ๊ฐ’ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ฑ…์ž„์€ ๋ณธ์ธ์ด ๊ฐ์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Kubernetes ์—ฐ์‚ฐ์ž๋Š” container์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ JVM ๋ฉ”๋ชจ๋ฆฌ ํž™ ๊ฐ’์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. -Xms ๋ฐ -Xmx ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด Ops Manager์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

spec.security.certsSecretPrefix

์œ ํ˜•: ๋ฌธ์ž์—ด

์‹œํฌ๋ฆฟ ์— ์ ‘๋‘์‚ฌ๋กœ Kubernetes ๋ถ™์ผ ํ…์ŠคํŠธ MongoDB Ops Manager์˜ TLS ํ‚ค ๋ฐ ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋œ ์‚ฌ์šฉ์ž ์ƒ์„ฑ.

์‹œํฌ๋ฆฟ ์ด๋ฆ„์„ <prefix>-<metadata.name>-cert ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

HTTPS ๋ฅผ ํ†ตํ•ด ์‹คํ–‰๋˜๋„๋ก Ops Manager ์ธ์Šคํ„ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด Ops Manager ๋ฆฌ์†Œ์Šค ๋ฐฐํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.security.tls.ca

ConfigMap ์˜ ์ด๋ฆ„ ์—ฌ๊ธฐ์—๋Š” MongoDB Ops Kubernetes Manager์šฉ ์‚ฌ์šฉ์ž ์ง€์ • CA ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š”

์‚ฌ์šฉ์ž ์ง€์ • CA ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ spec.security.tls.ca MongoDB Ops Manager TLS ์ธ์ฆ์„œ์— ์„œ๋ช…ํ•˜๋Š” ๊ฒฝ์šฐ ์ด(๊ฐ€) ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Kubernetes ์—ฐ์‚ฐ์ž๋Š” ConfigMap์—์„œ Ops Manager ๋ฆฌ์†Œ์Šค mms-ca.crt ์— ๋Œ€ํ•œ ์ธ์ฆ์„œ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด CA ๋Š” ๋‹ค์Œ์„ ์ถฉ์กฑํ•˜๋Š” ์ธ์ฆ์„œ์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ํด๋ผ์ด์–ธํŠธ๊ฐ€ Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ๋“œ MongoDB Ops Manager์˜ ์—์ด์ „ํŠธ ์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋  ๋•Œ Ops Manager๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด downloads.mongodb.com ์—์„œ ์‚ฌ์šฉ์ž ์ง€์ • CA ํŒŒ์ผ๊ณผ ์ „์ฒด TLS ์ธ์ฆ์„œ ์ฒด์ธ์„ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.security.tls.enabled

์ค‘์š”

spec.security.tls.enabled ๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ฑฐ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. TLS ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด spec.security.certsSecretPrefix ์„ค์ •์— ๋Œ€ํ•œ ๊ฐ’์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ์™€ Ops Manager ๊ฐ„์˜ TLS ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค.

spec.statefulSet.spec

์œ ํ˜•: ์ปฌ๋ ‰์…˜

StatefulSet ์‚ฌ์–‘ MongoDB Enterprise Kubernetes Operator ๊ฐ€ MongoDB Ops Manager๋ฅผ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š”

์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” spec.statefulSet.spec 1 ํ•„๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜๋ ค๋ฉด StatefulSetSpec v ์•ฑ ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Kubernetes ๋ฌธ์„œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

spec.statefulSet.spec.template

์œ ํ˜•: ์ปฌ๋ ‰์…˜

ํ…œํ”Œ๋ฆฟ Kubernetes StatefulSet MongoDB Enterprise Kubernetes Operator ์˜ Pods ๊ฐ€ MongoDB Ops Manager๋ฅผ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š”

spec.statefulSet.spec.template.metadata

์œ ํ˜•: ์ปฌ๋ ‰์…˜

StatefulSet ์˜ Kubernetes Pods์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ MongoDB Enterprise Kubernetes Operator ๊ฐ€ MongoDB Ops Manager๋ฅผ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š”

์— ์ถ”๊ฐ€ํ•  spec.statefulSet.spec.template.metadata์ˆ˜ ์žˆ๋Š” ํ•„๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜๋ ค๋ฉด Kubernetes ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.statefulSet.spec.template.spec

์œ ํ˜•: ์ปฌ๋ ‰์…˜

Kubernetes StatefulSet MongoDB Enterprise Kubernetes Operator ์˜ ์‚ฌ์–‘ ๊ฐ€ MongoDB Ops Manager๋ฅผ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š”

์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ์˜ ์ „์ฒด ๋ชฉ๋ก์„ spec.statefulSet.spec.template.spec ๊ฒ€ํ† ํ•˜๋ ค๋ฉด Kubernetes ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ์˜ˆ์‹œ spec.statefulSet.spec.template.spec ๋Š” MongoDB Enterprise Kubernetes Operator๊ฐ€ ๋ฐฐํฌํ•˜๋Š” Ops Manager container ํ•œ ๊ฐœ์˜ ์ตœ์†Œ ๋ฐ ์ตœ๋Œ€ CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-ops-manager
resources:
requests:
cpu: "0.70"
memory: "6Gi"
limits:
cpu: "1"
memory: "7000M"
spec.statefulSet.spec.template.spec.containers

์œ ํ˜•: ์ปฌ๋ ‰์…˜

StatefulSet ์˜ Kubernetes Pods์— ์†ํ•œ ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก MongoDB Enterprise Kubernetes Operator ๊ฐ€ MongoDB Ops Manager๋ฅผ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š”

Ops Manager container์˜ ์‚ฌ์–‘์„ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ˆ์™€ ๊ฐ™์ด name ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ container์˜ ์ •ํ™•ํ•œ ์ด๋ฆ„์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

backup:
statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-ops-manager

์ฐธ๊ณ 

spec.statefulSet.spec.template.spec.containers ์— container๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด Kubernetes ์—ฐ์‚ฐ์ž๊ฐ€ container๋ฅผ Kubernetes ํŒŒ๋“œ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ๋Š” ํฌ๋“œ์˜ Ops Manager ์ปจํ…Œ์ด๋„ˆ์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

spec.statefulSet.spec.template.spec.containers.resources.requests.cpu

์œ ํ˜•: ๋ฌธ์ž์—ด

๋…ธ๋“œ ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œ CPU ์šฉ๋Ÿ‰ Kubernetes MongoDB Ops Manager๋ฅผ ํ˜ธ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญ๋œ ๊ฐ’์€ spec.statefulSet.spec.template.spec.containers.resources.limits.cpu ์ดํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.statefulSet.spec.template.spec.containers.resources.limits.cpu

์œ ํ˜•: ๋ฌธ์ž์—ด

๋…ธ๋“œ ์˜ ์ตœ๋Œ€ CPU ์šฉ๋Ÿ‰ MongoDB Ops Manager๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด ์ด ๊ฐ’์€ spec.statefulSet.spec.template.spec.containers.resources.requests.cpu ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

spec.statefulSet.spec.template.spec.containers.resources.requests.memory

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes ๋…ธ๋“œ Kubernetes ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰ ์—์„œ MongoDB Ops Manager๋ฅผ ํ˜ธ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ JEDEC ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์ •์ˆ˜์™€ ๊ทธ ๋’ค์— ์˜ค๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‹จ์œ„๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

Kubernetes์˜ Ops Manager์— 6๊ธฐ๊ฐ€๋ฐ”์ดํŠธ์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด ๊ฐ’์„ 6Gi ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

MongoDB๋Š” ์ด ๊ฐ’์„ ์ตœ์†Œ 5Gi ์ด์ƒ์œผ๋กœ ์„ค์ •ํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญ๋œ ๊ฐ’์€ spec.statefulSet.spec.template.spec.containers.resources.limits.memory ์ดํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.statefulSet.spec.template.spec.containers.resources.limits.memory

์œ ํ˜•: ๋ฌธ์ž์—ด

๋…ธ๋“œ ์˜ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰ MongoDB Ops Manager๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด ์ด ๊ฐ’์€ spec.statefulSet.spec.template.spec.containers.resources.requests.memory ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

Kubernetes Operator๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Java ํž™ ํฌ๊ธฐ์— ๋Œ€ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

์ด ๊ฐ’์„ 32GB ๋ฏธ๋งŒ์œผ๋กœ ์ œํ•œ

์ด ๊ฐ’์„ 32GB( 32Gi )๋ณด๋‹ค ํฐ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฐฑ์—… ์„œ๋น„์Šค์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณผ๋„ํ•œ ํž™์€ Ops Manager์—์„œ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ๋Š” MongoDB Ops Manager์˜ ์™ธ๋ถ€ ์—ฐ๊ฒฐ๊ณผ ๊ด€๋ จ๋œ ์„ ํƒ์  ์„ค์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops Manager ๋ฐฐํฌ์™€ ๊ด€๋ จ๋œ ์„ ํƒ์  ์™ธ๋ถ€ ์—ฐ๊ฒฐ ์„ค์ •์€ ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.externalConnectivity

์œ ํ˜•: ์ปฌ๋ ‰์…˜

MongoDB Ops Manager์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์—ฐ๊ฒฐ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ตฌ์„ฑ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ œ๊ณต๋œ ๊ฒฝ์šฐ Kubernetes Operator๋Š” Kubernetes ์„œ๋น„์Šค ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์ด Kubernetes MongoDB Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ œ๊ณต๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ, Kubernetes ์—ฐ์‚ฐ์ž๋Š” Kubernetes ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ˆ˜๋™์œผ๋กœ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์„ Kubernetes cluster์˜ Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ผ์šฐํŒ…ํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์‚ฌ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.externalConnectivity.type

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes ์„œ๋น„์Šค ServiceType ์™ธ๋ถ€์— MongoDB Ops Manager๋ฅผ Kubernetes ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

์ด spec.externalConnectivity.type ์žˆ๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜ ์ž…๋‹ˆ๋‹ค.

ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ LoadBalancer ๋ฐ NodePort ์ž…๋‹ˆ๋‹ค. cloud ๊ณต๊ธ‰์ž๊ฐ€ ์ง€์›ํ•˜๋Š” ๊ฒฝ์šฐ LoadBalancer ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋ฐฐํฌ์—๋Š” NodePort ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

spec.externalConnectivity.port

์œ ํ˜•: integer

Kubernetes ์„œ๋น„์Šค๊ฐ€ Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋…ธ์ถœํ•˜์—ฌ ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์— ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ํฌํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค.

  • spec.externalConnectivity.type ์ด NodePort ์ธ ๊ฒฝ์šฐ:

    • Kubernetes ์„œ๋น„์Šค๋Š” ์ด ํฌํŠธ๋ฅผ ํ†ตํ•ด Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์— ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

    • spec.externalConnectivity.port ๊ฐ’์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด Kubernetes ์„œ๋น„์Šค๋Š” ๊ธฐ๋ณธ ๋ฒ”์œ„ 30000~32767์—์„œ ๋ฌด์ž‘์œ„๋กœ ์„ ํƒ๋œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํฌํŠธ์—์„œ ํŠธ๋ž˜ํ”ฝ์„ MongoDB Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

      ์ฐธ๊ณ 

      ์ด ํฌํŠธ๋ฅผ ํ†ตํ•œ ํŠธ๋ž˜ํ”ฝ์„ ํ—ˆ์šฉํ•˜๋„๋ก ๋„คํŠธ์›Œํฌ ๋ฐฉํ™”๋ฒฝ์„ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • spec.externalConnectivity.type ์ด LoadBalancer ์ธ ๊ฒฝ์šฐ:

    • ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž๊ฐ€ ์ƒ์„ฑํ•˜๋Š” ๋ฐธ๋Ÿฐ์„œ ๋ฆฌ์†Œ์Šค๋Š” ์ด ํฌํŠธ๋ฅผ ํ†ตํ•ด Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

    • spec.externalConnectivity.port ๊ฐ’์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด Kubernetes ์„œ๋น„์Šค๋Š” ๊ธฐ๋ณธ HTTP (8080) ๋˜๋Š” HTTPS(8443) ํฌํŠธ๋ฅผ ํ†ตํ•ด MongoDB Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์— ๋…ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

spec.externalConnectivity.loadBalancerIP

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes ์—ฐ์‚ฐ์ž๊ฐ€ ์ƒ์„ฑํ•  ๋•Œ Kubernetes ์„œ๋น„์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” IP ์ฃผ์†Œ LoadBalancer ์ž…๋‹ˆ๋‹ค.

์ด ์„ค์ •์€ ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž๊ฐ€ ์ง€์›ํ•˜๊ณ  spec.externalConnectivity.type ์ด LoadBalancer ์ธ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ํ˜• LoadBalancer ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ Kubernetes ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.externalConnectivity.externalTrafficPolicy

์œ ํ˜•: ๋ฌธ์ž์—ด

Ops Manager Kubernetes ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์— ๋Œ€ํ•œ ๋ผ์šฐํŒ… ์ •์ฑ…์ž…๋‹ˆ๋‹ค. ์„œ๋น„์Šค๋Š” ์ด ์„ค์ •์˜ ๊ฐ’์— ๋”ฐ๋ผ ์™ธ๋ถ€ ํŠธ๋ž˜ํ”ฝ์„ ๋…ธ๋“œ ๋กœ์ปฌ ๋˜๋Š” cluster ์ „์ฒด ์—”๋“œํฌ์ธํŠธ๋กœ ๋ผ์šฐํŒ…ํ•ฉ๋‹ˆ๋‹ค.

ํ—ˆ์šฉ๋˜๋Š” ๊ฐ’์€ Cluster ๋ฐ Local ์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๊ฐ’์ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š”์ง€ ์•Œ์•„๋ณด๋ ค๋ฉด Kubernetes์˜ ์†Œ์Šค IP๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. Kubernetes ๋ฌธ์„œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

Cluster ์„ ์„ ํƒํ•˜๋ฉด Kubernetes ๋„คํŠธ์›Œํฌ ๊ฒฝ๊ณ„์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋„คํŠธ์›Œํฌ ํ™‰ ์ค‘์— ํด๋ผ์ด์–ธํŠธ์˜ Source-IP ๊ฐ€ ์†์‹ค๋ฉ๋‹ˆ๋‹ค.

spec.externalConnectivity.annotations

์œ ํ˜•: ์ปฌ๋ ‰์…˜

ํด๋ผ์šฐ๋“œ ๊ณต๊ธ‰์ž๋ณ„ ๊ตฌ์„ฑ ์„ค์ •์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ํ‚ค-๊ฐ’ ์Œ์ž…๋‹ˆ๋‹ค.

์ฃผ์„ ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ ๋ฐ Amazon Web Services์—์„œ TLS ์ง€์› ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. Kubernetes

์ด ์„น์…˜์—์„œ๋Š” MongoDB Ops Manager์˜ ๋ฐฑ์—…๊ณผ ๊ด€๋ จ๋œ ์„ ํƒ์  ์„ค์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops Manager ๋ฐฐํฌ์™€ ๊ด€๋ จ๋œ ์„ ํƒ์  ๋ฐฑ์—… ์„ค์ •์€ ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.backup.assignmentLabels

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

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

spec.backup.enabled

์œ ํ˜•: ๋ถ€์šธ

Ops Manager ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ๋ฐฑ์—…์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. false ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฐฑ์—…์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ true ์ž…๋‹ˆ๋‹ค.

spec.backup.encryption

์œ ํ˜•: ๊ฐ์ฒด

๋ฐฑ์—… ์•”ํ˜ธํ™” ๊ตฌ์„ฑ ์„ค์ •์ด ํฌํ•จ๋œ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

spec.backup.encryption.kmip

์œ ํ˜•: ๊ฐ์ฒด

KMIP ๋ฐฑ์—… ์•”ํ˜ธํ™” ๊ตฌ์„ฑ ์„ค์ •์„ ํฌํ•จํ•˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ์šด์˜ ๊ด€๋ฆฌ์ž๋ฅผ ์œ„ํ•œ KMIP ๋ฐฑ์—… ์•”ํ˜ธํ™” ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ 

์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ spec.credentials ๊ฐ’์œผ๋กœ ์—ฐ๊ฒฐ๋œ API ํ‚ค์— Global Owner ์—ญํ• ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.backup.encryption.kmip.server

์œ ํ˜•: ๊ฐ์ฒด

KMIP ๋ฐฑ์—… ์•”ํ˜ธํ™” ์„œ๋ฒ„ ๊ตฌ์„ฑ ์„ค์ •์„ ํฌํ•จํ•˜๋Š” ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

spec.backup.encryption.kmip.server.ca

์œ ํ˜•: ๋ฌธ์ž์—ด

KMIP ์ธ์ฆ์— ์‚ฌ์šฉํ•  CA ์ธ์ฆ์„œ(ca.pem)์— ๋Œ€ํ•œ ํ•ญ๋ชฉ์ด ํฌํ•จ๋œ ConfigMap์„ ์‹๋ณ„ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ด๋ธ”์ž…๋‹ˆ๋‹ค.

spec.backup.encryption.kmip.server.url

์œ ํ˜•: ๋ฌธ์ž์—ด

ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” KMIP ์„œ๋ฒ„์˜URL ์ž…๋‹ˆ๋‹ค(์˜ˆ: hostname.port 192.168.1.3:5696 ๋˜๋Š” my-kmip-server.mycorp.com:5696).

spec.backup.headDB

์œ ํ˜•: ์ปฌ๋ ‰์…˜

ํ—ค๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์— ๋Œ€ํ•œ ๊ตฌ์„ฑ ์„ค์ •์ž…๋‹ˆ๋‹ค. Kubernetes Operator๊ฐ€ Persistent Volume Claim ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ง€์ •๋œ ๊ตฌ์„ฑ์œผ๋กœ.

์Šค์นผ๋ผ
๋ฐ์ดํ„ฐ ์œ ํ˜•
์„ค๋ช…
labelSelector
๋ฌธ์ž์—ด
ํƒœ๊ทธํ•˜๊ธฐ ๋งˆ์šดํŠธ๋œ ๋ณผ๋ฅจ์„ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ฐ”์ธ๋”ฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
storage
๋ฌธ์ž์—ด

๋งˆ์šดํŠธํ•ด์•ผ ํ•˜๋Š” ์˜๊ตฌ ๋ณผ๋ฅจ ์˜ ์ตœ์†Œ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ์ •์ˆ˜ ๋’ค์— JEDEC ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์ €์žฅ ๋‹จ์œ„๋ฅผ ๋ถ™์—ฌ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ 30Gi ์ž…๋‹ˆ๋‹ค.

ํ•™์Šต ๋‚ด์šฉ์€ ๋ฐฑ์—… ๋””๋จผ ํ•˜๋“œ์›จ์–ด ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ๋ฅผ ์˜ˆ์‹œ ํ—ค๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์— 60 ๊ธฐ๊ฐ€๋ฐ”์ดํŠธ์˜ ์ €์žฅ ๊ณต๊ฐ„์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด ๊ฐ’์„ 60Gi ๋กœ ์„ค์ •ํ•˜๋‹ค ํ•ฉ๋‹ˆ๋‹ค.

storageClass
๋ฌธ์ž์—ด

์˜๊ตฌ ๋ณผ๋ฅจ ํด๋ ˆ์ž„ ์— ์ง€์ •๋œ ์Šคํ† ๋ฆฌ์ง€ ์œ ํ˜• . ์ด ์Šคํ† ๋ฆฌ์ง€ ์œ ํ˜•์„ StorageClass ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ์ฒด ์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์‚ฌ์–‘.

StorageClass ๋ฅผ ์„ค์ •ํ•ด์•ผ reclaimPolicy ํ•ฉ๋‹ˆ๋‹ค. ์œ ์ง€ํ•  . ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์˜๊ตฌ ๋ณผ๋ฅจ ํด๋ ˆ์ž„ ์ด ๋ฐœ์ƒํ•  ๋•Œ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

spec.backup.jvmParameters

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

์„ ํƒ ์‚ฌํ•ญ. container๋ฅผ ํ†ตํ•ด Ops Manager ๋ฐฑ์—… ์„œ๋น„์Šค์— ์ „๋‹ฌ๋œ JVM ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

์ด Kubernetes ์—ฐ์‚ฐ์ž ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์€ ๋นˆ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

spec:
backup:
jvmParameters: ["-XX:+UseStringCache"]

๊ฒฝ๊ณ 

JVM ๋ฉ”๋ชจ๋ฆฌ ํž™(Memory Heap) ๊ฐ’ ๋ณ€๊ฒฝ์— ๋Œ€ํ•œ ์ฑ…์ž„์€ ๋ณธ์ธ์ด ๊ฐ์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Kubernetes ์—ฐ์‚ฐ์ž๋Š” container์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐฑ์—… ์„œ๋น„์Šค์˜ JVM ๋ฉ”๋ชจ๋ฆฌ ํž™ ๊ฐ’์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. -Xms ๋ฐ -Xmx ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด Ops Manager์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

spec.backup.members

์œ ํ˜•: integer

์„ ํƒ ์‚ฌํ•ญ. Kubernetes์— ๋ฐฐํฌํ•  ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ 1 ์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—… ์„œ๋น„์Šค์˜ ๊ณ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•˜๋ ค๋ฉด MongoDB Ops Manager์— ์—ฌ๋Ÿฌ ๋ฐฑ์—… ๋ฐ๋ชฌ ์„ ๋ฐฐํฌํ•˜์„ธ์š”.

spec.backup.opLogStores

์œ ํ˜•: ์ปฌ๋ ‰์…˜

๋ฐฑ์—… ์„ ํ™œ์„ฑํ™” ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—… ์— ์‚ฌ์šฉ๋˜๋Š” oplog ์ €์žฅ์†Œ ์˜ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด ์˜ ๊ฐ ํ•ญ๋ชฉ์€ Kubernetes Operator๊ฐ€ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์— ๋ฐฐํฌํ•œ MongoDB database ๋ฆฌ์†Œ์Šค ๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

spec.backup.opLogStores.assignmentLabels

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

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

spec.backup.opLogStores.name

์œ ํ˜•: ๋ฌธ์ž์—ด

๋ฐฑ์—…์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. oplog ์Šคํ† ์–ด์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ค‘์š”

์ง€์ •ํ•œ ํ›„์—๋Š” oplog ์Šคํ† ์–ด์˜ ์ด๋ฆ„์„ ํŽธ์ง‘ํ•˜์ง€ ๋งˆ์„ธ์š”.

spec.backup.opLogStores.mongodbResourceRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

๋ฐฑ์—…์„ ํ™œ์„ฑํ™” ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. oplog ์Šฌ๋ผ์ด์Šค๋ฅผ ์ €์žฅ ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š” MongoDB ๋ฆฌ์†Œ์Šค ๋˜๋Š” MongoDBMultiCluster ๋ฆฌ์†Œ์Šค ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ๋ฆฌ์†Œ์Šค ๋Š” MongoDB Ops Manager ๋ฆฌ์†Œ์Šค ์™€ ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์— ๋ฐฐํฌ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Oplog ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” SCRAM ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

oplog ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ SCRAM ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • MongoDB ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ Ops Manager๋ฅผ oplog ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  • MongoDB Ops Manager ๋ฆฌ์†Œ์Šค ์ •์˜์—์„œ ์‚ฌ์šฉ์ž์˜ name ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ด๋ฆ„์„ ๊ฐ€์ง„ MongoDB database ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด backup ๋ฆฌ์†Œ์Šค๋Š” Pending ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. Kubernetes ์—ฐ์‚ฐ์ž๋Š” ์ด ์ด๋ฆ„์˜ MongoDB database ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๊นŒ์ง€ 10์ดˆ๋งˆ๋‹ค ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์ด ์„ค์ •์—์„œ ์ฐธ๊ณ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ณด์•ˆ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด Kubernetes ์—ฐ์‚ฐ์ž๊ฐ€ Ops Manager ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์กฐ์ •ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. Kubernetes ์—ฐ์‚ฐ์ž๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ Ops Manager ๊ตฌ์„ฑ์—์„œ mongoURI ๋ฐ ssl ํ”Œ๋ž˜๊ทธ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

spec.backup.opLogStores.mongodbUserRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

์—์„œ SCRAM ์ธ์ฆ์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค.Oplog Store Database ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์‚ฌ์šฉ์ž MongoDB Oplog Store Database ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค๋ฅผ MongoDB Ops Manager ๋ฆฌ์†Œ์Šค์™€ ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋‹ค์Œ ์—ญํ• ์„ ๋ชจ๋‘ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

spec.backup.blockStores

์œ ํ˜•: ์ปฌ๋ ‰์…˜

๋ธ”๋ก ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—…์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—…์— ์‚ฌ์šฉ๋˜๋Š” ๋ธ”๋ก ์ €์žฅ์†Œ ์˜ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ๋ฐฐ์—ด์˜ ๊ฐ MongoDB database ํ•ญ๋ชฉ์€ Kubernetes Kubernetes Operator๊ฐ€ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

spec.backup.blockStores.assignmentLabels

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

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

spec.backup.blockStores.name

์œ ํ˜•: ๋ฌธ์ž์—ด

๋ธ”๋ก ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—…์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ธ”๋ก ์ €์žฅ์†Œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ค‘์š”

์ผ๋‹จ ์ง€์ •ํ•œ ํ›„์—๋Š” ๋ธ”๋ก ์ €์žฅ์†Œ์˜ ์ด๋ฆ„์„ ํŽธ์ง‘ํ•˜์ง€ ๋งˆ์„ธ์š”.

spec.backup.blockStores.mongodbResourceRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

๋ธ”๋ก ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—…์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ธ”๋ก ์ €์žฅ์†Œ์— ๋Œ€ํ•ด ์ƒ์„ฑํ•˜๋Š” MongoDB database ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์†Œ์Šค๋ฅผ MongoDB Ops Manager ๋ฆฌ์†Œ์Šค์™€ ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ธ”๋ก ์ €์žฅ์†Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” SCRAM ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ธ”๋ก ์ €์žฅ์†Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ SCRAM ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Ops Manager๋ฅผ ๋ธ”๋ก ์ €์žฅ์†Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” MongoDB ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • MongoDB Ops Manager ๋ฆฌ์†Œ์Šค ์ •์˜์—์„œ ์‚ฌ์šฉ์ž์˜ name ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ด๋ฆ„์„ ๊ฐ€์ง„ MongoDB database ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด backup ๋ฆฌ์†Œ์Šค๋Š” Pending ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. Kubernetes ์—ฐ์‚ฐ์ž๋Š” ์ด ์ด๋ฆ„์˜ MongoDB database ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๊นŒ์ง€ 10์ดˆ๋งˆ๋‹ค ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์ด ์„ค์ •์—์„œ ์ฐธ๊ณ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ณด์•ˆ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด Kubernetes ์—ฐ์‚ฐ์ž๊ฐ€ Ops Manager ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์กฐ์ •ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. Kubernetes ์—ฐ์‚ฐ์ž๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ Ops Manager ๊ตฌ์„ฑ์—์„œ mongoURI ๋ฐ ssl ํ”Œ๋ž˜๊ทธ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

spec.backup.blockStores.mongodbUserRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

๋ธ”๋ก ์ €์žฅ์†Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ SCRAM ์ธ์ฆ์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ธ”๋ก ์ €์žฅ์†Œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” MongoDB ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค๋ฅผ MongoDB Ops Manager ๋ฆฌ์†Œ์Šค์™€ ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋‹ค์Œ ์—ญํ• ์„ ๋ชจ๋‘ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

spec.backup.queryableBackupSecretRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

๋ฐฐํฌ์˜ TLS ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ๋ฐฑ์—…์— ์•ก์„ธ์Šคํ•˜๊ณ  ์ฟผ๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  MongoDB Ops Manager์˜ queryable.pem ํŒŒ์ผ์ด ํฌํ•จ๋œ ์‹œํฌ๋ฆฟ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. PEM ํŒŒ์ผ์—๋Š” ์•ก์„ธ์Šคํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ณต๊ฐœ ํ‚ค ์ธ์ฆ์„œ ๋ฐ ๊ด€๋ จ ๋น„๊ณต๊ฐœ ํ‚ค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. MongoDB Ops Manager์—์„œ ๋ฐฑ์—… ์Šค๋ƒ…์ƒท์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—…์„ ์ฟผ๋ฆฌํ•˜๋ ค๋ฉด ์ด ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฐฑ์—…์€ ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š์ง€๋งŒ ์ฟผ๋ฆฌํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

spec.backup.statefulSet.spec

์œ ํ˜•: ์ปฌ๋ ‰์…˜

StatefulSet ์‚ฌ์–‘ ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด MongoDB Enterprise Kubernetes Operator๊ฐ€ ์ƒ์„ฑํ•˜๋Š”

์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” spec.backup.statefulSet.spec 1 ํ•„๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜๋ ค๋ฉด StatefulSetSpec v ์•ฑ ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Kubernetes ๋ฌธ์„œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

spec.backup.statefulSet.spec.template

์œ ํ˜•: ์ปฌ๋ ‰์…˜

ํ…œํ”Œ๋ฆฟ StatefulSet ์˜ Kubernetes Pods ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ๋ฅผ ์œ„ํ•ดMongoDB Enterprise Kubernetes Operator๊ฐ€ ์ƒ์„ฑํ•˜๋Š”

spec.backup.statefulSet.spec.template.metadata

์œ ํ˜•: ์ปฌ๋ ‰์…˜

StatefulSet ์˜ Kubernetes Pods์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐฑ์—… ๋ฐ๋ชฌ์„œ๋น„์Šค ๋ฅผ ์œ„ํ•ด MongoDB Enterprise Kubernetes Operator๊ฐ€ ์ƒ์„ฑํ•˜๋Š”

์— ์ถ”๊ฐ€ํ•  spec.backup.statefulSet.spec.template.metadata์ˆ˜ ์žˆ๋Š” ํ•„๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜๋ ค๋ฉด Kubernetes ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.backup.statefulSet.spec.template.spec

์œ ํ˜•: ์ปฌ๋ ‰์…˜

StatefulSet ์˜ Kubernetes ํŒŒ๋“œ ์‚ฌ์–‘ ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด MongoDB Enterprise Kubernetes Operator๊ฐ€ ์ƒ์„ฑํ•˜๋Š”

์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ•„๋“œ์˜ ์ „์ฒด ๋ชฉ๋ก์„ spec.backup.statefulSet.spec.template.spec ๊ฒ€ํ† ํ•˜๋ ค๋ฉด Kubernetes ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ์˜ˆ์‹œ spec.backup.statefulSet.spec.template.spec ๋Š” MongoDB Enterprise Kubernetes Operator๊ฐ€ ๋ฐฐํฌํ•˜๋Š” ํ•˜๋‚˜์˜ ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ์— ๋Œ€ํ•œ ์ตœ์†Œ ๋ฐ ์ตœ๋Œ€ CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-backup-daemon
resources:
requests:
cpu: "0.50"
memory: "4500M"
limits:
cpu: "1"
memory: "6000M"
spec.backup.statefulSet.spec.template.spec.containers

์œ ํ˜•: ์ปฌ๋ ‰์…˜

StatefulSet ์˜ Kubernetes Pods์— ์†ํ•œ ์ปจํ…Œ์ด๋„ˆ ๋ชฉ๋ก ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•ด MongoDB Enterprise Kubernetes Operator๊ฐ€ ์ƒ์„ฑํ•˜๋Š”

๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ์˜ ์‚ฌ์–‘์„ ์ˆ˜์ •ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ˆ์™€ ๊ฐ™์ด name ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…Œ์ด๋„ˆ์˜ ์ •ํ™•ํ•œ ์ด๋ฆ„์„ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

backup:
statefulSet:
spec:
template:
spec:
containers:
- name: mongodb-backup-daemon

์ฐธ๊ณ 

spec.backup.statefulSet.spec.template.spec.containers ์— ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด Kubernetes Operator๊ฐ€ ์ปจํ…Œ์ด๋„ˆ๋ฅผ Kubernetes pod์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ปจํ…Œ์ด๋„ˆ๋Š” ํฌ๋“œ์˜ ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ์ปจํ…Œ์ด๋„ˆ์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

spec.backup.statefulSet.spec.template.spec.containers.resources.requests.cpu

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes ๋…ธ๋“œ ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œ CPU ์šฉ๋Ÿ‰ ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญ๋œ ๊ฐ’์€ spec.backup.statefulSet.spec.template.spec.containers.resources.limits.cpu ์ดํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.backup.statefulSet.spec.template.spec.containers.resources.limits.cpu

์œ ํ˜•: ๋ฌธ์ž์—ด

๋…ธ๋“œ ์˜ ์ตœ๋Œ€ CPU ์šฉ๋Ÿ‰ ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด ์ด ๊ฐ’์€ spec.backup.statefulSet.spec.template.spec.containers.resources.requests.cpu ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

spec.backup.statefulSet.spec.template.spec.containers.resources.requests.memory

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes ๋…ธ๋“œ ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ์ตœ์†Œ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰ Kubernetes์—์„œ ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ JEDEC ํ‘œ๊ธฐ๋ฒ•์œผ๋กœ ์ •์ˆ˜์™€ ๊ทธ ๋’ค์— ์˜ค๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋‹จ์œ„๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์ด ๊ฐ’์„ ์ตœ์†Œ 4.5Gi ์ด์ƒ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. 4.5Gi ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์š”์ฒญ๋œ ๊ฐ’์€ spec.backup.statefulSet.spec.template.spec.containers.resources.limits.memory ์ดํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.backup.statefulSet.spec.template.spec.containers.resources.limits.memory

์œ ํ˜•: ๋ฌธ์ž์—ด

๋…ธ๋“œ ์˜ ์ตœ๋Œ€ ๋ฉ”๋ชจ๋ฆฌ ์šฉ๋Ÿ‰ ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ƒ๋žตํ•˜๋ฉด ์ด ๊ฐ’์€ spec.backup.statefulSet.spec.template.spec.containers.resources.requests.memory ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

Kubernetes Operator๋Š” ์ปจํ…Œ์ด๋„ˆ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Java ํž™ ํฌ๊ธฐ์— ๋Œ€ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

์ด ๊ฐ’์„ 32GB ๋ฏธ๋งŒ์œผ๋กœ ์ œํ•œ

์ด ๊ฐ’์„ 32GB( 32Gi )๋ณด๋‹ค ํฐ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ฐฑ์—… ์„œ๋น„์Šค์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณผ๋„ํ•œ ํž™์€ Ops Manager์—์„œ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๊ฒฐ๊ณผ๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Oplog ๋ฐ ๋ฐฑ์—… ์Šค๋ƒ…์ƒท์„ ์ €์žฅํ•˜๋Š” ๋ฐ S3 ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ง€์ • CA ์—์„œ ๋ฐœ๊ธ‰ํ•œ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ TLS ๋กœ S3 ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์„ ๋ณดํ˜ธํ•˜๋„๋ก Ops Manager๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์ง€์ • CA ํ‚ค๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋ฆฌ์†Œ์Šค ๋ฐฐํฌ ์˜ TLS-Encrypted Connection (HTTPS) ํƒญ ์— ์„ค๋ช…๋œ MongoDB Ops Manager ๋Œ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด TLS ๋ฅผ ๊ตฌ์„ฑํ•œ ConfigMap์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. spec.applicationDatabase.security.tls.ca ๋ฅผ ์ด ConfigMap์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

S3 ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋‘์— TLS ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ S3 ์—๋งŒ TLS๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘์— TLS ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ConfigMap์—์„œ ์ฐธ๊ณ  ๋™์ผํ•œ ca-pem ์—์„œ ๋‘ ๊ฐ€์ง€ ๋ชฉ์ ์— ๋งž๋Š” ์ธ์ฆ์„œ๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.

  • S3 ์—๋งŒ TLS ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด spec.security.applicationDatabase.certsSecretPrefix ConfigMap์— ๋ฅผ ์ •์˜ํ•˜์ง€ ๋งˆ์„ธ์š”.

spec.backup.s3OpLogStores.assignmentLabels

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

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

spec.backup.s3OpLogStores.customCertificate

์œ ํ˜•: ๋ถ€์šธ

๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  spec.backup.s3OpLogStores.customCertificateSecretRefs ์„(๋ฅผ) ์‚ฌ์šฉํ•˜์„ธ์š”.

AppDB ์ธ์ฆ์„œ( )๋ฅผappdb-ca S3 oplog ์Šคํ† ์–ด์˜ ์‚ฌ์šฉ์ž ์ง€์ • TLS ์ธ์ฆ์„œ๋กœ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ False ์ž…๋‹ˆ๋‹ค.

spec.backup.s3OpLogStores.customCertificateSecretRefs

์œ ํ˜•: ๊ฐ์ฒด ๋ฐฐ์—ด

Kubernetes ์‹œํฌ๋ฆฟ ์„ ์‚ฌ์šฉํ•˜๋Š” S3 oplog ์ €์žฅ์†Œ์˜ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ ๋ชฉ๋ก . ๊ธฐ๋ณธ64-์ธ์ฝ”๋”ฉ๋œ x์ž…๋‹ˆ๋‹ค.509 ์ธ์ฆ์„œ๊ฐ€ Kubernetes ์‹œํฌ๋ฆฟ ์— ์ด๋ฏธ ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ Java CertifcateFactory ์—์„œ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. . ํ•˜๋‚˜์˜ ์‹œํฌ๋ฆฟ ์ฒด์ธ์— ์—ฌ๋Ÿฌ ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์‹œํฌ๋ฆฟ์—์„œ ์ฒด์ธ์— ์—ฌ๋Ÿฌ ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ Kubernetes Operator๋Š” ์ฒด์ธ์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ฆ์„œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. customCertificate ์„ค์ •๋„ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ Kubernetes Operator๋Š” spec.applicationDatabase.security.tls.ca ๋ฅผ ๋ฐฑ์—…์šฉ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ชฉ๋ก์˜ ๊ฐ ํ•ญ๋ชฉ์€ name ๋ฐ key ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์‹œํฌ๋ฆฟ์„ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ Kubernetes Operator๋Š” ์ง€์ •๋œ ์‹œํฌ๋ฆฟ์— ์žˆ๋Š” ๋ชจ๋“  ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ์„ค์ •์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด Ops Manager๋Š” Ops Manager์—์„œ ์‚ฌ์šฉํ•˜๋Š” JVM ๊ธฐ๋ณธ ์‹ ๋ขฐ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

spec.backup.s3OpLogStores.customCertificateSecretRefs.name

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 oplog ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Kubernetes ์‹œํฌ๋ฆฟ ์—ฌ๊ธฐ์—๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

spec.configuration.mms.mongoDbUsage.defaultUsageType

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes ์„œ๋น„์Šค์˜ ๊ธฐ๋ณธ ์„œ๋ฒ„ ์œ ํ˜•์ž…๋‹ˆ๋‹ค.

spec.backup.s3OpLogStores.customCertificateSecretRefs.key

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 oplog ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹œํฌ๋ฆฟ ์˜ ํ‚ค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํŒŒ์ผ 64๊ธฐ๋ณธ ์ธ์ฝ”๋”ฉ๋œ x๋ฅผ509 ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ. ์ด ์„ค์ •์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด Kubernetes Operator๊ฐ€ S3 oplog ์ €์žฅ์†Œ ๋ฐฑ์—…์— ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

spec.backup.s3OpLogStores.irsaEnabled

์œ ํ˜•: ๋ถ€์šธ

์„œ๋น„์Šค ๊ณ„์ •์— Amazon Web Services IAM ์—ญํ• ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ Amazon Web Services EKS S3 oplog ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ False ์ž…๋‹ˆ๋‹ค. Amazon Web Services EKS๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ด ํ”Œ๋ž˜๊ทธ๋Š” ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. False๋กœ ์„ค์ •ํ•˜๋ฉด EKS์˜ ์„œ๋น„์Šค ๊ณ„์ •์— Amazon Web Services IAM ์—ญํ• ์„ ์‚ฌ์šฉํ•˜์—ฌ S3 oplog ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ ์€ EKS์˜ ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•œ IAM ์—ญํ• ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.backup.s3OpLogStores.name

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ oplog๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. S3 oplog ์ €์žฅ์†Œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

spec.backup.s3OpLogStores.mongodbResourceRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 oplog ์ €์žฅ์†Œ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š” MongoDB ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์†Œ์Šค๋Š” Ops Manager ๋ฆฌ์†Œ์Šค์™€ ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ S3 oplog ์ €์žฅ ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฅผ ์ €์žฅ ํ•˜๋ ค๋ฉด ์ด ์„ค์ •์„ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

์ด ์„ค์ •์„ ์ƒ๋žตํ•˜๋Š” ๊ฒฝ์šฐ spec.backup.s3OpLogStores.mongodbUserRef.name ์„ค์ •๋„ ์ƒ๋žตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Kubernetes Operator๋Š” SCRAM ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ๋‚ด๋ถ€์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ SCRAM ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Ops Manager๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” MongoDB ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • MongoDB Ops Manager ๋ฆฌ์†Œ์Šค ์ •์˜์—์„œ ์‚ฌ์šฉ์ž์˜ name ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

spec.backup.s3OpLogStores.mongodbUserRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 oplog ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฅผ ์ €์žฅ ํ•˜๊ธฐ ์œ„ํ•ด MongoDB database ๋ฆฌ์†Œ์Šค ๋ฅผ ๋งŒ๋“ค์—ˆ๊ณ  ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—์„œ SCRAM ์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. S3 oplog ์ €์žฅ ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” MongoDB ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค ๋ฅผ MongoDB Ops Manager ๋ฆฌ์†Œ์Šค ์™€ ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค ์— ๋‹ค์Œ ์—ญํ• ์„ ๋ชจ๋‘ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์ผ๋‹จ ์ง€์ •ํ•œ ํ›„์—๋Š” S3 ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ oplog ์Šคํ† ์–ด ์‚ฌ์šฉ์ž ์ด๋ฆ„์˜ ์ด๋ฆ„์„ ํŽธ์ง‘ํ•˜์ง€ ๋งˆ์„ธ์š”.

spec.backup.s3OpLogStores.s3SecretRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ oplog๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. accessKey ๋ฐ secretKey ํ•„๋“œ๊ฐ€ ํฌํ•จ๋œ ์‹œํฌ๋ฆฟ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ๋Š” ์ด๋Ÿฌํ•œ ํ•„๋“œ์˜ ๊ฐ’์„ ์ž๊ฒฉ ์ฆ๋ช…์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ Amazon Web Services S3 ๋˜๋Š” S3ํ˜ธํ™˜ ๋ฒ„ํ‚ท์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. S3 oplog ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ์‹œํฌ๋ฆฟ์— ๋‘ ํ‚ค๋ฅผ ๋ชจ๋‘ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.backup.s3OpLogStores.pathStyleAccessEnabled

์œ ํ˜•: ๋ถ€์šธ

๋ฒ„ํ‚ท ์—”๋“œํฌ์ธํŠธ URL์˜ ์Šคํƒ€์ผ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…
์˜ˆ์‹œ
true
๊ฒฝ๋กœ ์Šคํƒ€์ผ URL
s3.amazonaws.com/<bucket>
false
๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ ์Šคํƒ€์ผ URL
<bucket>.s3.amazonaws.com

์ฃผ์„ ์— ํ•™์Šต Amazon Web Services ๋ณด๊ธฐ ๋ฐ ์—์„œ TLS ์ง€์› ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.Kubernetes

๊ธฐ๋ณธ๊ฐ’์€ true ์ž…๋‹ˆ๋‹ค.

spec.backup.s3OpLogStores.s3BucketEndpoint

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ oplog๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. URL ์Šคํ† ์–ด๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” Amazon Web Services S3 ๋ฒ„ํ‚ท ๋˜๋Š” S3ํ˜ธํ™˜ ๋ฒ„ํ‚ท์˜ oplog ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์—”๋“œํฌ์ธํŠธ์˜ URL ์— ๋ฆฌ์ „์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ s3RegionOverride ํ•„๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

spec.backup.s3OpLogStores.s3BucketName

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ oplog๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ† ์–ด๋ฅผ3 ํ˜ธ์ŠคํŒ…ํ•˜๋Š” Amazon Web Services S ๋ฒ„ํ‚ท ๋˜๋Š” S3ํ˜ธํ™˜ ๋ฒ„ํ‚ท์˜ oplog ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

spec.backup.s3OpLogStores.s3RegionOverride

์œ ํ˜•: ๋ฌธ์ž์—ด

S3ํ˜ธํ™˜ ๋ฒ„ํ‚ท์ด ์žˆ๋Š” ๋ฆฌ์ „์ž…๋‹ˆ๋‹ค. ์ด ํ•„๋“œ๋Š” S3 oplog ์ €์žฅ์†Œ์˜ s3BucketEndpoint ๊ฐ€ ๋ฆฌ์ „ ๋ฒ”์œ„๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ „ ๋ฒ”์œ„ ์ง€์ •์€ ์—”๋“œํฌ์ธํŠธ์˜ URL ์— ๋ฆฌ์ „์ด ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ด ํ•„๋“œ๋ฅผ Amazon Web Services S3 ๋ฒ„ํ‚ท๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ S3 ๋ธ”๋ก ์ €์žฅ์†Œ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.backup.s3Stores.assignmentLabels

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

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

spec.backup.s3Stores.customCertificate

์œ ํ˜•: ๋ถ€์šธ

๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  spec.backup.s3Stores.customCertificateSecretRefs ์„(๋ฅผ) ์‚ฌ์šฉํ•˜์„ธ์š”.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ธ์ฆ์„œ( )๋ฅผappdb-ca S3 ๋ฐฑ์—…์˜ ์‚ฌ์šฉ์ž ์ง€์ • TLS ์ธ์ฆ์„œ๋กœ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋ž˜๊ทธ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ False ์ž…๋‹ˆ๋‹ค.

spec.backup.s3Stores.customCertificateSecretRefs

์œ ํ˜•: ๊ฐ์ฒด ๋ฐฐ์—ด

Kubernetes ์‹œํฌ๋ฆฟ ์„ ์‚ฌ์šฉํ•˜๋Š” S ์Šค๋ƒ…์ƒท3 ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ ๋ชฉ๋ก . ๊ธฐ๋ณธ64-์ธ์ฝ”๋”ฉ๋œ x์ž…๋‹ˆ๋‹ค.509 ์ธ์ฆ์„œ๊ฐ€ Kubernetes ์‹œํฌ๋ฆฟ ์— ์ด๋ฏธ ์กด์žฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๋ฉฐ Java CertifcateFactory ์—์„œ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. . ํ•˜๋‚˜์˜ ์‹œํฌ๋ฆฟ ์ฒด์ธ์— ์—ฌ๋Ÿฌ ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์‹œํฌ๋ฆฟ์—์„œ ์ฒด์ธ์— ์—ฌ๋Ÿฌ ์ธ์ฆ์„œ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ Kubernetes Operator๋Š” ์ฒด์ธ์˜ ์ฒซ ๋ฒˆ์งธ ์ธ์ฆ์„œ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. spec.backup.s3Stores.customCertificate ์„ค์ •๋„ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ์šฐ Kubernetes Operator๋Š” spec.applicationDatabase.security.tls.ca ๋ฅผ ๋ฐฑ์—…์šฉ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ชฉ๋ก์˜ ๊ฐ ํ•ญ๋ชฉ์€ name ๋ฐ key ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์‹œํฌ๋ฆฟ์„ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ Kubernetes Operator๋Š” ์ง€์ •๋œ ์‹œํฌ๋ฆฟ์„ ๋ชจ๋‘ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ์„ค์ •์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด Kubernetes ์—ฐ์‚ฐ์ž๋Š” Ops Manager์—์„œ ๋ฐฑ์—…์— ์‚ฌ์šฉํ•˜๋Š” JVM ๊ธฐ๋ณธ ์‹ ๋ขฐ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

spec.backup.s3Stores.customCertificateSecretRefs.name

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 oplog ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Kubernetes ์‹œํฌ๋ฆฟ ์—ฌ๊ธฐ์—๋Š” ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

spec.backup.s3Stores.customCertificateSecretRefs.key

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 oplog ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์‹œํฌ๋ฆฟ ์˜ ํ‚ค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํŒŒ์ผ 64๊ธฐ๋ณธ ์ธ์ฝ”๋”ฉ๋œ x๋ฅผ509 ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ์„œ. ์ด ์„ค์ •์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด Kubernetes Operator๋Š” S3 ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • ์ธ์ฆ์„œ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ MongoDB Ops Manager์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ JVM {Java ๊ฐ€์ƒ ๋จธ์‹ ) ์‹ ๋ขฐ ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

spec.backup.s3Stores.irsaEnabled

์œ ํ˜•: ๋ถ€์šธ

์„œ๋น„์Šค ๊ณ„์ •์— Amazon Web Services IAM ์—ญํ• ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ”Œ๋ž˜๊ทธ Amazon Web Services EKS S3 ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ False ์ž…๋‹ˆ๋‹ค. Amazon Web Services EKS๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ด ํ”Œ๋ž˜๊ทธ๋Š” ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. False ๋กœ ์„ค์ •ํ•˜๋ฉด EKS์˜ ์„œ๋น„์Šค ๊ณ„์ •์— Amazon Web Services IAM ์—ญํ• ์„ ์‚ฌ์šฉํ•˜์—ฌ S3 ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ ์€ EKS์˜ ์„œ๋น„์Šค ๊ณ„์ •์— ๋Œ€ํ•œ IAM ์—ญํ• ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.backup.s3Stores.name

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ oplog๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. S3 ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

์ค‘์š”

์ผ๋‹จ ์ง€์ •ํ•œ ํ›„์—๋Š” S3 ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ์˜ ์ด๋ฆ„์„ ํŽธ์ง‘ํ•˜์ง€ ๋งˆ์„ธ์š”. ๋ฐฑ์—…์—์„œ ์ด์ „ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋ณ€๊ฒฝ์ด ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์ธ ๋ณ€๊ฒฝ์˜ ๊ฒฐ๊ณผ๋Š” ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

spec.backup.s3Stores.mongodbResourceRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑํ•˜๋Š” MongoDB ๋ฆฌ์†Œ์Šค ๋˜๋Š” MongoDBMultiCluster ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์†Œ์Šค๋Š” Ops Manager ๋ฆฌ์†Œ์Šค์™€ ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ S3 ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ ์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฅผ ์ €์žฅ ํ•˜๋ ค๋ฉด ์ด ์„ค์ •์„ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

์ด ์„ค์ •์„ ์ƒ๋žตํ•˜๋Š” ๊ฒฝ์šฐ spec.backup.s3Stores.mongodbUserRef.name ์„ค์ •๋„ ์ƒ๋žตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Kubernetes Operator๋Š” SCRAM ์‚ฌ์šฉ์ž ์ธ์ฆ์„ ๋‚ด๋ถ€์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ SCRAM ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Ops Manager๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” MongoDB ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

  • MongoDB Ops Manager ๋ฆฌ์†Œ์Šค ์ •์˜์—์„œ ์‚ฌ์šฉ์ž์˜ name ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์ผ๋‹จ ์ง€์ •ํ•œ ํ›„์—๋Š” S3 ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ์˜ ์ด๋ฆ„์„ ํŽธ์ง‘ํ•˜์ง€ ๋งˆ์„ธ์š”. ๋ฐฑ์—…์—์„œ ์ด์ „ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋ณ€๊ฒฝ์ด ์‹คํŒจํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. ์„ฑ๊ณต์ ์ธ ๋ณ€๊ฒฝ์˜ ๊ฒฐ๊ณผ๋Š” ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ์ด๋ฆ„์„ ๊ฐ€์ง„ MongoDB database ๋ฆฌ์†Œ์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด backup ๋ฆฌ์†Œ์Šค๋Š” Pending ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. Kubernetes ์—ฐ์‚ฐ์ž๋Š” ์ด ์ด๋ฆ„์˜ MongoDB database ๋ฆฌ์†Œ์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๊นŒ์ง€ 10์ดˆ๋งˆ๋‹ค ์žฌ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์ด ์„ค์ •์—์„œ ์ฐธ๊ณ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋ณด์•ˆ ๋ณ€๊ฒฝ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด Kubernetes ์—ฐ์‚ฐ์ž๊ฐ€ Ops Manager ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์กฐ์ •ํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. Kubernetes ์—ฐ์‚ฐ์ž๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ธฐ๋ฐ˜์œผ๋กœ Ops Manager ๊ตฌ์„ฑ์—์„œ mongoURI ๋ฐ ssl ํ”Œ๋ž˜๊ทธ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

spec.backup.s3Stores.mongodbUserRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

|s3|๋ฅผ ์ €์žฅํ•  MongoDB database ๋ฆฌ์†Œ์Šค๋ฅผ ๋งŒ๋“  ๊ฒฝ์šฐ ํ•„์ˆ˜ ์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์Šค๋ƒ…์ƒท ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐ SCRAM ์ด ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. S3 ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” MongoDB ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ์ด ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค๋ฅผ MongoDB Ops Manager ๋ฆฌ์†Œ์Šค์™€ ๋™์ผํ•œ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์— ๋‹ค์Œ ์—ญํ• ์„ ๋ชจ๋‘ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์ผ๋‹จ ์ง€์ •ํ•œ ํ›„์—๋Š” S3 ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ ์‚ฌ์šฉ์ž ์ด๋ฆ„์˜ ์ด๋ฆ„์„ ํŽธ์ง‘ํ•˜์ง€ ๋งˆ์„ธ์š”.

spec.backup.s3Stores.s3SecretRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 ์ €์žฅ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—…์„ ํ™œ์„ฑํ™” ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. accessKey ๋ฐ secretKey ํ•„๋“œ๊ฐ€ ํฌํ•จ๋œ ์‹œํฌ๋ฆฟ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. ๋ฐฑ์—… ๋ฐ๋ชฌ ์„œ๋น„์Šค ๋Š” ์ด๋Ÿฌํ•œ ํ•„๋“œ์˜ ๊ฐ’์„ ์ž๊ฒฉ ์ฆ๋ช… ์œผ๋กœ ์•ก์„ธ์Šค ํ•˜์—ฌ Amazon Web Services S3 ๋˜๋Š” S3ํ˜ธํ™˜ ๋ฒ„ํ‚ท์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. ์‹œํฌ๋ฆฟ์— ๋‘ ํ‚ค ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ˆ„๋ฝ๋œ ๊ฒฝ์šฐ S3 ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

spec.backup.s3Stores.pathStyleAccessEnabled

์œ ํ˜•: ๋ถ€์šธ

๋ฒ„ํ‚ท ์—”๋“œํฌ์ธํŠธ URL์˜ ์Šคํƒ€์ผ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ฐ’
์„ค๋ช…
์˜ˆ์‹œ
true
๊ฒฝ๋กœ ์Šคํƒ€์ผ URL
s3.amazonaws.com/<bucket>
false
๊ฐ€์ƒ ํ˜ธ์ŠคํŠธ ์Šคํƒ€์ผ URL
<bucket>.s3.amazonaws.com

๊ธฐ๋ณธ๊ฐ’์€ true ์ž…๋‹ˆ๋‹ค.

spec.backup.s3Stores.s3BucketEndpoint

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 ์ €์žฅ ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—…์„ ํ™œ์„ฑํ™” ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์Šค๋ƒ…์ƒทURL ์ €์žฅ์†Œ ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” Amazon Web Services S3 ๋ฒ„ํ‚ท ๋˜๋Š” S ํ˜ธํ™˜ ๋ฒ„ํ‚ท์˜ ์ž…๋‹ˆ๋‹ค.3

์ฐธ๊ณ 

์—”๋“œํฌ์ธํŠธ์˜ URL ์— ๋ฆฌ์ „์ด ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ s3RegionOverride ํ•„๋“œ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

spec.backup.s3Stores.s3BucketName

์œ ํ˜•: ๋ฌธ์ž์—ด

S3 ์ €์žฅ์†Œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—…์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์Šค๋ƒ…์ƒท ์ €์žฅ์†Œ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” Amazon Web Services S3 ๋ฒ„ํ‚ท ๋˜๋Š” S3ํ˜ธํ™˜ ๋ฒ„ํ‚ท์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

spec.backup.s3Stores.s3RegionOverride

์œ ํ˜•: ๋ฌธ์ž์—ด

S3ํ˜ธํ™˜ ๋ฒ„ํ‚ท์ด ์žˆ๋Š” ๋ฆฌ์ „์ž…๋‹ˆ๋‹ค. S3 ์Šคํ† ์–ด์˜ s3BucketEndpoint ๊ฐ€ ๋ฆฌ์ „ ๋ฒ”์œ„๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ด ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์ „ ๋ฒ”์œ„ ์ง€์ •์€ ์—”๋“œํฌ์ธํŠธ์˜ URL ์— ๋ฆฌ์ „์ด ํฌํ•จ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

์ด ํ•„๋“œ๋ฅผ Amazon Web Services S3 ๋ฒ„ํ‚ท๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”. ์ž์„ธํ•œ ๋‚ด์šฉ์€ S3 ๋ธ”๋ก ์ €์žฅ์†Œ ๊ตฌ์„ฑ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด ์„น์…˜์—์„œ๋Š” ๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ MongoDB Ops Manager ์„ค์ • ์™ธ์— ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์„ค์ •์— ๋Œ€ํ•ด Ops Manager Application Database ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.version

์œ ํ˜•: ๋ฌธ์ž์—ด

ํ•„์ˆ˜. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์— MongoDB ์„ค์น˜๋œ MongoDB Ops Manager ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์˜ ํƒœ๊ทธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ˜ธํ™˜๋˜๋Š” ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ MongoDB ๋ฒ„์ „์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. . ์˜ˆ: 6.0.0-ubi8. Kubernetes Operator ๋ฒ„์ „ 1 ๋ถ€ํ„ฐ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.20, ํƒœ๊ทธ๊ฐ€ ๋” ์ด์ƒ -ent ๋กœ ๋๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ค‘์š”

ํ˜ธํ™˜๋˜๋Š” MongoDB Server ๋ฒ„์ „์„ ์„ ํƒํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

ํ˜ธํ™˜๋˜๋Š” ๋ฒ„์ „์€ MongoDB database ๋ฆฌ์†Œ์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ์ด๋ฏธ์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

์ด ๊ฐ’์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์šฉ MongoDB ์˜ ์ดํ›„ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๊ฒฝ์šฐ, ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ ๋ฒ„์ „ ์€ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋Š” MongoDB ๋ฒ„์ „์œผ๋กœ ์œ ์ง€๋˜์–ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ ๋ฒ„์ „ ์ด ์ƒˆ MongoDB ๋ฒ„์ „๊ณผ ์ผ์น˜ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด spec.applicationDatabase์•„๋ž˜์˜ featureCompatibilityVersion ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ˆ˜๋™์œผ๋กœ ์„ค์ •ํ•˜๋‹ค ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ๋Š” Ops Manager Application Database ์™€ ๊ด€๋ จ๋œ ์„ ํƒ์  ์„ค์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops Manager ๋ฐฐํฌ์™€ ๊ด€๋ จ๋œ ์„ ํƒ์  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ •์€ ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ์„ค์ •์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.applicationDatabase

์œ ํ˜•: ์ปฌ๋ ‰์…˜

MongoDB Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์†Œ์Šค ์ •์˜์ž…๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘์˜ ๋‹ค์Œ ์„ค์ •์€ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

spec.applicationDatabase.agent ๋ฐ spec.applicationDatabase.monitoringAgent ์—์„œ ์ž๋™ํ™” ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ฐ’์„ ๋ณ„๋„๋กœ ์ง€์ •ํ•˜์ง€ ์•Š๋Š” ํ•œ spec.applicationDatabase.agent ์•„๋ž˜์˜ ๋ชจ๋“  ์„ค์ •์€ ์ž๋™ํ™” ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ชจ๋‘์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.<component>.logRotate

์œ ํ˜•: ๊ฐ์ฒด

๊ตฌ์„ฑ ์š”์†Œ ๋ฅผ ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • mongod

  • backupAgent

  • monitoringAgent

ํ”„๋กœ์„ธ์Šค์˜ MongoDB ๋กœ๊ทธ๋ฅผ ์ˆœํ™˜์‹œํ‚ค๊ธฐ ์œ„ํ•œ MongoDB ๊ตฌ์„ฑ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์„ค์ •์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ํ˜ธ์ŠคํŠธ์˜ ์‹œ์Šคํ…œ ๋กœ๊ทธ ์‹œ์Šคํ…œ์— ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ๊ฒฝ์šฐ ์„ค์ •์„ ์‚ฌ์šฉํ•  agent.<component>.logRotate systemLog.destination ์ˆ˜ file ์—†์œผ๋ฏ€๋กœ ๋ฅผ ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.agent.<component>.logRotate

spec.applicationDatabase.agent.mongod.logRotate.numTotal

์œ ํ˜•: integer

๊ธฐ๋ณธ๊ฐ’: 0

MongoDB Ops Manager ๊ฐ€ ๋ณด๊ด€ํ•˜๋Š” ๋กœ๊ทธ ํŒŒ์ผ์˜ ์ด ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด MongoDB Ops Manager ๋Š” ๋‹ค๋ฅธ agent.<compenet>.logRotate ์„ค์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋กœํ…Œ์ด์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.mongod.logRotate.numUncompressed

์œ ํ˜•: integer

๊ธฐ๋ณธ๊ฐ’: 5

ํ˜„์žฌ ๋กœ๊ทธ ํŒŒ์ผ์„ ํฌํ•จํ•˜์—ฌ ์••์ถ•๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‘˜ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ด ๋กœ๊ทธ ํŒŒ์ผ ์ˆ˜์ž…๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.mongod.logRotate.percentOfDiskspace

์œ ํ˜•: ์ˆซ์ž

๊ธฐ๋ณธ๊ฐ’: 0.02

MongoDB Ops Manager ๊ฐ€ 10์ง„์ˆ˜๋กœ ํ‘œ์‹œ๋œ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ €์žฅ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด ๋””์Šคํฌ ๊ณต๊ฐ„์˜ ์ตœ๋Œ€ ๋ฐฑ๋ถ„์œจ์ž…๋‹ˆ๋‹ค. ์ด ์ œํ•œ์„ ์ดˆ๊ณผํ•˜๋ฉด MongoDB Ops Manager ๋Š” ์ด ์ œํ•œ์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์••์ถ•๋œ ๋กœ๊ทธ ํŒŒ์ผ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. MongoDB Ops Manager ๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๋กœ๊ทธ ํŒŒ์ผ์„ ๋จผ์ € ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.<component>.logRotate.sizeThresholdMB

์œ ํ˜•: ์ˆซ์ž

๊ตฌ์„ฑ ์š”์†Œ ๋ฅผ ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • mongod

  • backupAgent

  • monitoringAgent

๋กœ๊ทธ๋ฅผ ๋กœํ…Œ์ด์…˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. MongoDB Ops Manager ๊ฐ€ ๋กœ๊ทธ ํŒŒ์ผ์„ ๋กœํ…Œ์ด์…˜ํ•˜๊ธฐ ์ „์˜ ๊ฐœ๋ณ„ ๋กœ๊ทธ ํŒŒ์ผ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ(MB)์ž…๋‹ˆ๋‹ค. MongoDB Ops Manager ๋Š” ๋กœ๊ทธ ํŒŒ์ผ์ด ์ด sizeThresholdMB ๋˜๋Š” logRotate.timeThresholdHrs ์ œํ•œ์— ์ง€์ •๋œ ๊ฐ’์„ ์ถฉ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ์ฆ‰์‹œ ๋กœ๊ทธ ํŒŒ์ผ์„ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.<component>.logRotate.timeThresholdHrs

์œ ํ˜•: integer

๊ตฌ์„ฑ ์š”์†Œ ๋ฅผ ๋‹ค์Œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

  • mongod

  • backupAgent

  • monitoringAgent

๋กœ๊ทธ๋ฅผ ์ˆœํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜ ์‚ฌํ•ญ ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋กœํ…Œ์ด์…˜ ์ „ ๊ฐœ๋ณ„ ๋กœ๊ทธ ํŒŒ์ผ ์˜ ์ตœ๋Œ€ ๊ธฐ๊ฐ„(์‹œ๊ฐ„)์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„์€ ๋งˆ์ง€๋ง‰ ํšŒ์ „ ์ดํ›„์˜ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. MongoDB Ops Manager ๋Š” ๋กœ๊ทธ ํŒŒ์ผ์ด timeThresholdHrs ๋˜๋Š” logRotate.sizeThresholdM ์ œํ•œ์— ์ง€์ •๋œ ๊ฐ’์„ ์ถฉ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ์ฆ‰์‹œ ๋กœ๊ทธ ํŒŒ์ผ ์„ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.mongod.auditlogRotate

์œ ํ˜•: ๊ฐ์ฒด

ํ”„๋กœ์„ธ์Šค ์˜ MongoDB ๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ์ˆœํ™˜์‹œํ‚ค๊ธฐ ์œ„ํ•œ MongoDB ๊ตฌ์„ฑ ๊ฐ์ฒด ์ž…๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.mongod.auditlogRotate.numTotal

์œ ํ˜•: integer

๊ธฐ๋ณธ๊ฐ’: 0

MongoDB Ops Manager ๊ฐ€ ๋ณด๊ด€ํ•˜๋Š” ๊ฐ์‚ฌ ๋กœ๊ทธ ํŒŒ์ผ์˜ ์ด ๊ฐœ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’ ์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด MongoDB Ops Manager ๋Š” ๋‹ค๋ฅธ agent.mongod.auditlogRotate ์„ค์ •์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋กœํ…Œ์ด์…˜์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.mongod.auditlogRotate.numUncompressed

์œ ํ˜•: integer

๊ธฐ๋ณธ๊ฐ’: 5

ํ˜„์žฌ ๊ฐ์‚ฌ ๋กœ๊ทธ ํŒŒ์ผ ์„ ํฌํ•จํ•˜์—ฌ ์••์ถ•๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‘˜ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ด ๊ฐ์‚ฌ ๋กœ๊ทธ ํŒŒ์ผ ์ˆ˜์ž…๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.mongod.auditlogRotate.percentOfDiskspace

์œ ํ˜•: ์ˆซ์ž

๊ธฐ๋ณธ๊ฐ’: 0.02

MongoDB Ops Manager ๊ฐ€ 10์ง„์ˆ˜๋กœ ํ‘œ์‹œ๋œ ๊ฐ์‚ฌ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ €์žฅ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด ๋””์Šคํฌ ๊ณต๊ฐ„์˜ ์ตœ๋Œ€ ๋ฐฑ๋ถ„์œจ์ž…๋‹ˆ๋‹ค. ์ด ์ œํ•œ์„ ์ดˆ๊ณผํ•˜๋ฉด MongoDB Ops Manager ๋Š” ์ด ์ œํ•œ์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์••์ถ•๋œ ๊ฐ์‚ฌ ๋กœ๊ทธ ํŒŒ์ผ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. MongoDB Ops Manager ๋Š” ๊ฐ€์žฅ ์˜ค๋ž˜๋œ ๊ฐ์‚ฌ ๋กœ๊ทธ ํŒŒ์ผ์„ ๋จผ์ € ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.mongod.auditlogRotate.sizeThresholdMB

์œ ํ˜•: ์ˆซ์ž

๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ์ˆœํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜์ž…๋‹ˆ๋‹ค. MongoDB Ops Manager ๊ฐ€ ๋กœํ…Œ์ด์…˜ํ•˜๊ธฐ ์ „ ๊ฐœ๋ณ„ ๊ฐ์‚ฌ ๋กœ๊ทธ ํŒŒ์ผ ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ(MB)์ž…๋‹ˆ๋‹ค. MongoDB Ops Manager ๋Š” ๊ฐ์‚ฌ ๋กœ๊ทธ ํŒŒ์ผ ์ด sizeThresholdMB ๋˜๋Š” auditlogRotate.timeThresholdHrs ์ œํ•œ์˜ ๊ฐ’์— ๋„๋‹ฌํ•˜๋ฉด ์ฆ‰์‹œ ๋กœํ…Œ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.mongod.auditlogRotate.timeThresholdHrs

์œ ํ˜•: integer

๊ฐ์‚ฌ ๋กœ๊ทธ๋ฅผ ์ˆœํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ํ•„์ˆ˜ ์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋กœํ…Œ์ด์…˜ ์ „์— ๊ฐœ๋ณ„ ๊ฐ์‚ฌ ๋กœ๊ทธ ํŒŒ์ผ ์˜ ์ตœ๋Œ€ ๊ธฐ๊ฐ„(๋‹จ์œ„: ์‹œ๊ฐ„)์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„์€ ๋งˆ์ง€๋ง‰ ํšŒ์ „ ์ดํ›„์˜ ์‹œ๊ฐ„์ž…๋‹ˆ๋‹ค. MongoDB Ops Manager ๋Š” ๊ฐ์‚ฌ ๋กœ๊ทธ ํŒŒ์ผ ์ด timeThresholdHrs ๋˜๋Š” auditlogRotate.sizeThresholdM ์ œํ•œ์˜ ๊ฐ’์— ๋„๋‹ฌํ•˜๋Š” ๊ฒฝ์šฐ ์ฆ‰์‹œ ํšŒ์ „ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.startupOptions

์œ ํ˜•: ๊ฐ์ฒด

์‹œ์ž‘ ์˜ต์…˜์— ๋Œ€ํ•œ MongoDB ๊ตฌ์„ฑ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ•„๋“œ๋Š” MongoDB Agent ์„ค์ • ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.applicationDatabase.agent.systemLog

์œ ํ˜•: ๊ฐ์ฒด

systemLog ์˜ต์…˜์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ MongoDB ๊ตฌ์„ฑ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.systemLog.path

์œ ํ˜•: ๋ฌธ์ž์—ด

๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค: /var/log/mongodb-mms-automation/mongodb.log

ํ‘œ์ค€ ์ถœ๋ ฅ์ด๋‚˜ ํ˜ธ์ŠคํŠธ์˜ syslog ๊ฐ€ ์•„๋‹Œ ๋˜๋Š” ๊ฐ€ ๋ชจ๋“  ์ง„๋‹จ ๋กœ๊น… ์ •๋ณด๋ฅผ ์ „์†กํ•ด์•ผ mongod mongosํ•˜๋Š” ๋กœ๊ทธ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. MongoDB๋Š” ์ง€์ •๋œ ๊ฒฝ๋กœ์— ๋กœ๊ทธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

Linux ํŒจํ‚ค์ง€ init ์Šคํฌ๋ฆฝํŠธ๋Š” systemLog.path ์ด(๊ฐ€) ๊ธฐ๋ณธ๊ฐ’์—์„œ ๋ณ€๊ฒฝ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Linux ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ systemLog.path ์„(๋ฅผ) ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ ์ž์ฒด init ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‚ด์žฅ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.systemLog.logAppend

์œ ํ˜•: ๋ถ€์šธ

๊ธฐ๋ณธ๊ฐ’์ž…๋‹ˆ๋‹ค: false

true, mongos ๋˜๋Š” mongod ๊ฐ€ mongos ๋˜๋Š” mongod ์ธ์Šคํ„ด์Šค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋  ๋•Œ ๊ธฐ์กด ๋กœ๊ทธ ํŒŒ์ผ ๋์— ์ƒˆ ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ. ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด mongod ์ด(๊ฐ€) ๊ธฐ์กด ๋กœ๊ทธ๋ฅผ ๋ฐฑ์—…ํ•˜๊ณ  ์ƒˆ ํŒŒ์ผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

spec.applicationDatabase.agent.systemLog.destination

์œ ํ˜•: ๋ฌธ์ž์—ด

MongoDB๊ฐ€ ๋ชจ๋“  ๋กœ๊ทธ ์ถœ๋ ฅ์„ ์ „์†กํ•˜๋Š” ๋Œ€์ƒ์ž…๋‹ˆ๋‹ค. file ๋˜๋Š” syslog๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. file์„ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ systemLog.path๋„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

systemLog.path ์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด MongoDB๋Š” ๋ชจ๋“  ๋กœ๊ทธ ์ถœ๋ ฅ์„ ํ‘œ์ค€ ์ถœ๋ ฅ์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

์‹œ์Šคํ…œ ๋กœ๊ทธ ๋ฐ๋ชฌ์€ MongoDB๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐœํ–‰ํ•  ๋•Œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉ”์‹œ์ง€๋ฅผ ๊ธฐ๋กํ•  ๋•Œ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์€ ํŠนํžˆ ์‹œ์Šคํ…œ ๋ถ€ํ•˜๊ฐ€ ์‹ฌํ•œ ๊ฒฝ์šฐ ๋กœ๊ทธ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ์ž˜๋ชป๋œ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •ํ™•ํ•œ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ๋ณด์žฅํ•˜๋ ค๋ฉด ํ”„๋กœ๋•์…˜ ์‹œ์Šคํ…œ์— ๋Œ€ํ•ด file ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

spec.applicationDatabase.memberConfig

์œ ํ˜•: ๊ฐ์ฒด ๋ฐฐ์—ด

MongoDB Ops Manager ๋ฐฐํฌ์„œ๋ฒ„ ์„œ๋ฒ„์˜ ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์— ๋Œ€ํ•œ ์‚ฌ์–‘์ž…๋‹ˆ๋‹ค.

์ค‘์š”

์„ ๋กœ spec.topology ์„ค์ •ํ•˜๋‹ค ํ•œ MultiCluster ๊ฒฝ์šฐ }spec.applicationDatabase.clusterSpecList.memberConfig ๋Œ€์‹  ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.spec.applicationDatabase.memberConfig ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops Manager ๋ฐฐํฌ์„œ๋ฒ„ ์„œ๋ฒ„์—์„œ Kubernetes Operator๋Š” spec.applicationDatabase.memberConfig ์•„๋ž˜์˜ ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

memberConfig ๋ชฉ๋ก์˜ ์š”์†Œ ์ˆ˜๋Š” spec.applicationDatabase.members ์™€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

memberConfig ๋ชฉ๋ก์˜ ์š”์†Œ ์ˆœ์„œ๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ ์˜ ๋ฉค๋ฒ„ ์ˆœ์„œ๋ฅผ ๋ฐ˜์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ์˜ˆ์‹œ ๋ฐฐ์—ด ์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋Š” ์ธ๋ฑ์Šค 0 ์—์„œ Pod์— ์˜ํ–ฅ์„ ์ฃผ๊ณ , ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋Š” ์ธ๋ฑ์Šค 1 ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

์˜ˆ์‹œ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ 3๊ฐœ ๋ฉค๋ฒ„ ๋ณต์ œ๋ณธ ์„ธํŠธ ์— ๋Œ€ํ•œ ๋‹ค์Œ ์˜ˆ์‹œ ์‚ฌ์–‘์„ ์‚ดํŽด๋ณด์„ธ์š”.

spec:
applicationDatabase:
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- votes: 1
priority: "1.5"
tags:
tag2: "value2"
environment: "prod"
- votes: 0
priority: "0"
tags:
tag2: "value2"
environment: "prod"
spec.applicationDatabase.memberConfig.priority

์œ ํ˜•: ๋ฌธ์ž์—ด

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„๊ฐ€ ๋  ์ƒ๋Œ€์ ์ธ ๊ฐ€๋Šฅ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.

  • ๋ณต์ œ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์„ ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์ด๋ ค๋ฉด ๋” ๋†’์€ priority ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ณต์ œ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ๊ธฐ๋ณธ ๋ฉค๋ฒ„๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์„ ์ƒ๋Œ€์ ์œผ๋กœ ์ค„์ด๋ ค๋ฉด ๋” ๋‚ฎ์€ priority ๊ฐ’์„ ์ง€์ •ํ•˜์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด memberConfig.priority๊ฐ€ 1.5์ธ ๋…ธ๋“œ๋Š” memberConfig.priority๊ฐ€ 0.5์ธ ๋…ธ๋“œ๋ณด๋‹ค ํ”„๋ผ์ด๋จธ๋ฆฌ ๋…ธ๋“œ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค.

memberConfig.priority ๊ฐ€ 0 ์ธ ๋ฉค๋ฒ„๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ๋ฉค๋ฒ„ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.applicationDatabase.memberConfig.tags

์œ ํ˜•: ๋งคํ•‘

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ์˜ ํŠน์ • ๋ฉค๋ฒ„์— ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ (write) ์ž‘์—…์„ ์ง€์‹œํ•˜๊ธฐ ์œ„ํ•œ ๋ณต์ œ๋ณธ ์„ธํŠธ ํƒœ๊ทธ ์˜ ๋งต์ž…๋‹ˆ๋‹ค.

spec.applicationDatabase.memberConfig.votes

์œ ํ˜•: ์ˆซ์ž

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ํˆฌํ‘œ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฉค๋ฒ„๊ฐ€ ํˆฌํ‘œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋ฉด 1 ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฉค๋ฒ„๋ฅผ ํˆฌํ‘œ ์—์„œ ์ œ์™ธํ•˜๋ ค๋ฉด 0 ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.passwordSecretKeyRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

Ops Manager ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž mongodb-ops-manager ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋œ ์‹œํฌ๋ฆฟ ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Ops Manager๋Š” ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉ ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.passwordSecretKeyRef.key

์œ ํ˜•: ๋ฌธ์ž์—ด

Ops Manager ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž mongodb-ops-manager ์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋œ ์‹œํฌ๋ฆฟ ํ•„๋“œ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. Ops Manager๋Š” ์ด ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉ ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ password์ž…๋‹ˆ๋‹ค.

spec.applicationDatabase.security.certsSecretPrefix

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes ์‹œํฌ๋ฆฟ ์— ์ ‘๋‘์‚ฌ๋กœ ๋ถ™์ผ ํ…์ŠคํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ TLS ํ‚ค์™€ ์ธ์ฆ์„œ๊ฐ€ ํฌํ•จ๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์ƒ์„ฑํ•œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.

์‹œํฌ๋ฆฟ ์ด๋ฆ„์„ <prefix>-<metadata.name>-db-cert ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

HTTPS ๋ฅผ ํ†ตํ•ด ์‹คํ–‰๋˜๋„๋ก Ops Manager ์ธ์Šคํ„ด์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด Ops Manager ๋ฆฌ์†Œ์Šค ๋ฐฐํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.applicationDatabase.security.tls.ca

์œ ํ˜•: ๋ฌธ์ž์—ด

Kubernetes ConfigMap ์˜ ์ด๋ฆ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ CA ํŒŒ์ผ ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ค‘์š”

์‚ฌ์šฉ์ž ์ง€์ • CA ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ spec.applicationDatabase.security.tls.ca ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ TLS ์ธ์ฆ์„œ์— ์„œ๋ช…ํ•˜๋Š” ๊ฒฝ์šฐ ์ด(๊ฐ€) ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

Kubernetes Operator๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ConfigMap์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ธ์ฆ์„œ ์ด๋ฆ„์„ ca-pem ์œผ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ ์ง€์ •๋œ CA ๋Š” spec.backup.s3OpLogStores.customCertificate ๋˜๋Š” ๊ฐ€3 spec.backup.s3Stores.customCertificate ๋กœ ์„ค์ •๋œ true ๊ฒฝ์šฐ S ์Šคํ† ๋ฆฌ์ง€์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • TLS ์ธ์ฆ์„œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ์—๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ด CA ๋Š” ๋‹ค์Œ์„ ์ถฉ์กฑํ•˜๋Š” ์ธ์ฆ์„œ์— ์„œ๋ช…ํ•ฉ๋‹ˆ๋‹ค.

  • ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ์„œ๋กœ ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • MongoDB Ops Manager ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋  ๋•Œ Ops Manager๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋„๋ก ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด downloads.mongodb.com ์—์„œ ์‚ฌ์šฉ์ž ์ง€์ • CA ํŒŒ์ผ๊ณผ ์ „์ฒด TLS ์ธ์ฆ์„œ ์ฒด์ธ์„ ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.security.tls.enabled

์ค‘์š”

spec.security.applicationDatabase.tls.enabled ์€(๋Š”) ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ํ–ฅํ›„ ๋ฆด๋ฆฌ์Šค์—์„œ ์ œ๊ฑฐ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. TLS ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด spec.security.applicationDatabase.certsSecretPrefix ์„ค์ •์— ๋Œ€ํ•œ ๊ฐ’์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ„์˜ TLS ์ธ์ฆ์„œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ†ต์‹ ์„ ์•”ํ˜ธํ™”ํ•ฉ๋‹ˆ๋‹ค.MongoDB Ops Manager

๋‹ค์Œ ์„ค์ •์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ•จ๊ป˜ Prometheus๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ ์šฉ ๋ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.prometheus

์œ ํ˜•: ๋ฐฐ์—ด

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ง€ํ‘œ๋ฅผ Prometheus์— ๋…ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋œ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

spec.applicationDatabase.prometheus.metricsPath

์œ ํ˜•: ๋ฌธ์ž์—ด

๊ธฐ๋ณธ๊ฐ’: "/metrics"

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ง€ํ‘œ ์—”๋“œํฌ์ธํŠธ์˜ ๊ฒฝ๋กœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.prometheus.passwordSecretRef

์œ ํ˜•: ๊ฐ์ฒด

์‹œํฌ๋ฆฟ ์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผํฌํ•จํ•˜๋Š” ์กฐ๊ฑด๋ถ€ ๊ฐ์ฒด ๊ธฐ๋ณธ HTTP ์ธ์ฆ ์˜ ๊ฒฝ์šฐ. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ•จ๊ป˜ Prometheus๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์„ค์ •์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.prometheus.passwordSecretRef.key

์œ ํ˜•: ๋ฌธ์ž์—ด

๊ธฐ๋ณธ๊ฐ’: "password"

์„ ํƒ ์‚ฌํ•ญ. ์‹œํฌ๋ฆฟ ์˜ ํ‚ค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์‚ฌ๋žŒ์ด string ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ์ธ์ฆ์„ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ HTTP ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.prometheus.passwordSecretRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

์กฐ๊ฑด๋ถ€

์‹œํฌ๋ฆฟ ์„ ์‹๋ณ„ํ•˜๋Š” ์ธ๊ฐ„ ํŒ๋… ๊ฐ€๋Šฅ ๋ ˆ์ด๋ธ” ๊ธฐ๋ณธ HTTP ์ธ์ฆ ์„ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ•จ๊ป˜ Prometheus๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์„ค์ •์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.prometheus.port

์œ ํ˜•: integer

๊ธฐ๋ณธ๊ฐ’: 9216

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ง€ํ‘œ ์—”๋“œํฌ์ธํŠธ๊ฐ€ ๋ฐ”์ธ๋”ฉํ•  ํฌํŠธ๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.prometheus.tlseSecretKeyRef

์œ ํ˜•: ๊ฐ์ฒด

์„ ํƒ ์‚ฌํ•ญ. ์‹œํฌ๋ฆฟ ์˜ ์„ธ๋ถ€ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๊ฐ์ฒด TLS ์ธ์ฆ์˜ ๊ฒฝ์šฐ.

spec.applicationDatabase.prometheus.tlseSecretKeyRef.key

์œ ํ˜•: ๋ฌธ์ž์—ด

๊ธฐ๋ณธ๊ฐ’: "password"

์„ ํƒ ์‚ฌํ•ญ. ์‹œํฌ๋ฆฟ ์˜ ํ‚ค๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์‚ฌ๋žŒ์ด string ์ฝ์„ ์ˆ˜ ์žˆ๋Š” TLS ์ธ์ฆ์„ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ด ์„ค์ •์„ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.prometheus.tlseSecretKeyRef.name

์œ ํ˜•: ๋ฌธ์ž์—ด

์กฐ๊ฑด๋ถ€. ์‹œํฌ๋ฆฟ์„ ์‹๋ณ„ํ•˜๋Š” ์ธ๊ฐ„ ํŒ๋… ๊ฐ€๋Šฅ ๋ ˆ์ด๋ธ” TLS ์ธ์ฆ ์„ ์œ„ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํฌํ•จ๋œ . ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ•จ๊ป˜ Prometheus๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  TLS ์ธ์ฆ ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์„ค์ •์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.prometheus.username

์œ ํ˜•: ๋ฌธ์ž์—ด

์กฐ๊ฑด๋ถ€. ๊ธฐ๋ณธ HTTP ์ธ์ฆ์„ ์œ„ํ•ด ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ด๋ธ”์ž…๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ•จ๊ป˜ Prometheus๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์„ค์ •์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ๋Š” ํ•„์ˆ˜ MongoDB Ops Manager ์„ค์ • ์™ธ์—๋„ ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops Manager ๋ฐฐํฌ์— ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์„ค์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

spec.clusterSpecList.members

์œ ํ˜•: integer

์กฐ๊ฑด๋ถ€. ๋‹ค์ค‘ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ์„œ๋ฒ„ MongoDB Ops Manager ๋‚ด ํด๋Ÿฌ์Šคํ„ฐ ์— ์žˆ๋Š” MongoDB ๋ฉค๋ฒ„์˜ MongoDB Ops Manager MongoDB ์ˆ˜์ž…๋‹ˆ๋‹ค. spec.topology ์„ MultiCluster ๋กœ ์„ค์ •ํ•˜๋‹ค ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•˜๋‹ค ํ•˜๋ฉด MongoDB Ops Manager ์ธ์Šคํ„ด์Šค์˜ ๋‹ค์ค‘ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ์— ์žˆ๋Š” ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ ๋ชฉ๋ก์—์„œ ์ด MongoDB Ops Manager ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

spec.topology

์œ ํ˜•: ๋ฌธ์ž์—ด

๋ฆฌ์†Œ์Šค์— Kubernetes ๋Œ€ํ•œ ๋ฐฐํฌ์„œ๋ฒ„ ์œ ํ˜•์ž…๋‹ˆ๋‹ค.MongoDB Ops Manager

  • The values are SingleCluster or MultiCluster. ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ SingleCluster ์ž…๋‹ˆ๋‹ค.

  • MultiCluster ์„ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ:

    • MongoDBMultiCluster ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ์‹œ ๋ฆฌ์†Œ์Šค ๋ชฉ๋ก์— ์ถ”๊ฐ€ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” Kubernetes Operator์—๊ฒŒ ๋‹ค์ค‘ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋“œ์—์„œ ์ž‘๋™ํ•ด์•ผ ํ•˜๋ฉฐ ๋‹ค์ค‘ Kubernetes ๋ฆฌ์†Œ์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ตฌ์„ฑ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

    • ์™€ ์ค‘์ฒฉ๋œ ๋ฐ spec.clusterSpecList spec.clusterSpecList.clusterName spec.clusterSpecList.members ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฅผ ๋ฐฐํฌ ํ•˜๋ ค๋Š” ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ ๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.MongoDB Ops Manager

    • MultiCluster ์„ ์ง€์ •ํ•˜๋ฉด Kubernetes Operator๋Š” spec.members ์— ์„ค์ •ํ•˜๋‹ค ํ•œ ๋ชจ๋“  ๊ฐ’์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘์˜ ์˜ˆ์‹œ ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

MongoDB Ops Manager ๋ฆฌ์†Œ์Šค๋Š” ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops Manager ๋ฐฐํฌ์™€ ๊ด€๋ จ๋œ ๋‹ค์Œ ์„ค์ •๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

spec.clusterSpecList

์œ ํ˜•: ์ปฌ๋ ‰์…˜

์กฐ๊ฑด๋ถ€. MongoDB Ops Manager ๋˜๋Š” ๋ฐฑ์—… ๋ฐ๋ชฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋Š” ๋‹ค์ค‘ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์„ ํƒํ•œKubernetes ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„ธ๋ถ€ ์ •๋ณด์ž…๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘์˜ ์˜ˆ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.clusterSpecList.clusterName

์œ ํ˜•: ๋ฌธ์ž์—ด

์„ ํƒ ์‚ฌํ•ญ. ๊ฐ€ StatefulSet ๋ฅผ ์˜ˆ์•ฝํ•˜๋Š” ๋‹ค์ค‘ Kubernetes Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ์„œ๋ฒ„ ๋‚ด ๋ฉค๋ฒ„ MongoDB MongoDB Enterprise Kubernetes Operator ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops Manager ์˜ ์ด๋ฆ„ ๋˜๋Š” ๋ฐฑ์—… ๋””๋จผ ์˜ ๊ฒฝ์šฐ.

spec.clusterSpecList.clusterDomain

์œ ํ˜•: ๋ฌธ์ž์—ด

์„ ํƒ ์‚ฌํ•ญ. ํŠน์ • MongoDB Ops Manager ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ spec.clusterDomain ์— ๋Œ€ํ•œ ์žฌ์ •์˜์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ spec.clusterDomain ์— ์„ค์ •๋œ ๊ฐ’์ž…๋‹ˆ๋‹ค. Kubernetes๋Š” ๊ฐ Pod ๋ฅผ ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.FQDN . Kubernetes Operator๋Š” ๊ฐ Pod ์˜ FQDN์„ clusterDomain ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ณต๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Kubernetes๋Š” ์ด๋Ÿฌํ•œ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ฟผ๋ฆฌํ•˜๋Š” API ๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

spec.clusterSpecList.configuration

์œ ํ˜•: ์ปฌ๋ ‰์…˜

์„ ํƒ ์‚ฌํ•ญ. ํŠน์ • ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด spec.configuration ์—์„œ ์„ค์ •ํ•œ ์†์„ฑ์„ ์žฌ์ •์˜ํ•˜๋Š” MongoDB Ops Manager ๊ตฌ์„ฑ ์†์„ฑ์ž…๋‹ˆ๋‹ค. ์†์„ฑ ์ด๋ฆ„ ๋ฐ ์„ค๋ช…์€ MongoDB Ops Manager ๊ตฌ์„ฑ ์„ค์ • ์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๊ฐ ์†์„ฑ์€ string ์œ ํ˜•์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด๋Ÿฌํ•œ ์†์„ฑ์„ ์„ค์ •ํ•˜๋ฉด ํ•ด๋‹น ํŠน์ • ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์˜ MongoDB Ops Manager ๋ฐ ๋ฐฑ์—… ๋ฐ๋ชฌ์— ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ’ ์ง€์ •์„ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ spec.configuration ์— ์„ค์ •๋œ ๊ฐ’์ž…๋‹ˆ๋‹ค.

spec.clusterSpecList.jvmParameters

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

์„ ํƒ ์‚ฌํ•ญ. ์ด ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด MongoDB Ops Manager ๋ฐ ๋ฐฑ์—… ๋ฐ๋ชฌ ์ธ์Šคํ„ด์Šค์— ์ „๋‹ฌ๋œ JVM ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

spec.clusterSpecList.externalConnectivity

์œ ํ˜•: ์ปฌ๋ ‰์…˜

์„ ํƒ ์‚ฌํ•ญ. ํŠน์ • ํด๋Ÿฌ์Šคํ„ฐ ์— ๋Œ€ํ•ด MongoDB Ops Manager ์— ๋Œ€ํ•œ ์™ธ๋ถ€ ์—ฐ๊ฒฐ์„ ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ตฌ์„ฑ ๊ฐ์ฒด ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ํŠน์ • ํด๋Ÿฌ์Šคํ„ฐ ์˜ spec.externalConnectivity ์— ๋Œ€ํ•œ ์žฌ์ •์˜์ž…๋‹ˆ๋‹ค.

์ด ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ง€์ •ํ•˜์—ฌ MongoDB Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ด ๋‹ค์–‘ํ•œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์™ธ๋ถ€์— ๋…ธ์ถœ๋˜๋Š” ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ์˜ˆ์‹œ ,MongoDB Ops Manager Kubernetes ์„œ๋กœ ๋‹ค๋ฅธ cloud ์ œ๊ณต์ž์˜ ๋…ธ๋“œ์— ๋ฅผ ๋ฐฐํฌ ๊ฒฝ์šฐ, ์ด ๋งค๊ฐœ๋ณ€์ˆ˜์— cloud ์ œ๊ณต์ž๋ณ„ ๊ฐ’์„ ์ง€์ •ํ•ด์•ผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • Kubernetes Operator๋Š” ์ด ๋ฉค๋ฒ„ MongoDB Ops Manager ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด spec.externalConnectivity ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • Kubernetes Operator๋Š” Kubernetes ์„œ๋น„์Šค ๋ฅผ <om-name>-svc-ext์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. (์œผ)๋กœ ๋ช…๋ช…๋˜์—ˆ์œผ๋ฉฐ, ํด๋Ÿฌ์Šคํ„ฐ ์™ธ๋ถ€์—์„œ ๋ฐœ์ƒํ•˜๋Š” ํŠธ๋ž˜ํ”ฝ์ด Kubernetes ์ด ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์˜ MongoDB Ops Manager ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ƒ๋žตํ•˜๋ฉด Kubernetes Operator๋Š” ์ด ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด spec.externalConnectivity ์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

spec.clusterSpecList.statefulSet.spec

์œ ํ˜•: ์ปฌ๋ ‰์…˜

์„ ํƒ ์‚ฌํ•ญ. StatefulSet ์‚ฌ์–‘ MongoDB Enterprise Kubernetes Operator ๋‹ค์ค‘ ํด๋Ÿฌ์Šคํ„ฐKubernetes MongoDB Ops Manager ๋ฐฐํฌ์—์„œ ํŠน์ • ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ์ƒ์„ฑํ•˜๋Š” ์ž…๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” spec.statefulSet.spec ์— ๋Œ€ํ•œ ์žฌ์ •์˜์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์ƒ๋žตํ•˜๋ฉด Kubernetes Operator๊ฐ€ spec.statefulSet.spec ์˜ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์ค‘ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ MongoDB ๋ฐฐํฌ์—์„œ ๊ฐ MongoDB Ops Manager ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ์Šคํ† ๋ฆฌ์ง€ ๊ฐ’์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” spec.clusterSpecList.statefulSet.spec 1 ํ•„๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜๋ ค๋ฉด StatefulSetSpec v ์•ฑ ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Kubernetes ๋ฌธ์„œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

spec.clusterSpecList[*].backup

์„ ํƒ ์‚ฌํ•ญ. ํ•ด๋‹น ํŠน์ • ๊ตฌ์„ฑ์› ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด spec.backup ์— ์ง€์ •๋œ ๊ฐ’์„ ์žฌ์ •์˜ํ•˜๋Š” ๋ฐฑ์—… ์„ค์ •์ž…๋‹ˆ๋‹ค.

  • spec.backup.enabled ์ด(๊ฐ€) true(์œผ)๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์—๋งŒ ์ด๋Ÿฌํ•œ ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ฐ’ ์„ค์ •์„ ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’ ์€ spec.backup ์•„๋ž˜์˜ ์„ค์ •์— ์ง€์ •๋œ ๊ฐ’์ž…๋‹ˆ๋‹ค.

  • ์ด ์žฌ์ •์˜์—์„œ๋Š” ๋ชจ๋“  ๋ฐฑ์—… ์„ค์ •์ด ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ๋ฐฑ์—… ์„ค์ •์€ spec.backup ์•„๋ž˜์— ์ง€์ •๋œ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์— ์ „์—ญ์ ์œผ๋กœ ์ ์šฉ๋˜๋ฏ€๋กœ ์žฌ์ •์˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    • externalServiceEnabled

    • headDB

    • opLogStores

    • blockStores

    • s3Stores

    • fileSystemStores

    • queryableBackupSecretRef

    • encryption

spec.clusterSpecList[*].backup.members

์œ ํ˜•: integer

์„ ํƒ ์‚ฌํ•ญ. spec.backup.members ์— ๋Œ€ํ•œ ์žฌ์ •์˜. ์ด ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฐํฌํ•  ๋ฐฑ์—… ๋ฐ๋ชฌ ์ธ์Šคํ„ด์Šค์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. ์ด ๊ฐ’์„ ์ƒ๋žตํ•˜๊ฑฐ๋‚˜ 0 ๊ฐ’์„ ์ œ๊ณตํ•˜๋ฉด Kubernetes Operator๋Š” ํŠน์ • ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์— ๋ฐฑ์—… ๋ฐ๋ชฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐฐํฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

spec.clusterSpecList[*].backup.assignmentLabels

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

์„ ํƒ ์‚ฌํ•ญ. spec.backup.assignmentLabels ์— ๋Œ€ํ•œ ์žฌ์ •์˜. ์ง€์ •๋œ ๊ฒฝ์šฐ Kubernetes Operator๋Š” ํŠน์ • ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๋ฐฑ์—… ๋ฐ๋ชฌ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด ์ด ์žฌ์ •์˜์—์„œ ์ง€์ •ํ•œ ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ์ƒ๋žตํ•˜๋ฉด ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๋ฐฑ์—… ๋ฐ๋ชฌ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•ด spec.backup.assignmentLabels ์— ์ง€์ •๋œ ๊ฐ’์ด ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

spec.clusterSpecList[*].backup.jvmParameters

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

์„ ํƒ ์‚ฌํ•ญ. spec.backup.jvmParameters ์— ๋Œ€ํ•œ ์žฌ์ •์˜. ํŠน์ • ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฐฑ์—… ๋ฐ๋ชฌ ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ JVM ๊ฐ’์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

spec.clusterSpecList[*].backup.statefulSet

์œ ํ˜•: ๋ฌธ์ž์—ด

์„ ํƒ ์‚ฌํ•ญ. spec.backup.statefulSet.spec ์— ๋Œ€ํ•œ ์žฌ์ •์˜. ํŠน์ • ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋ฐฑ์—… ๋ฐ๋ชฌ์˜ ๊ฐ’์„ ์‚ฌ์šฉ์ž ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” spec.clusterSpecList[*].backup.statefulSet 1 ํ•„๋“œ๋ฅผ ๊ฒ€ํ† ํ•˜๋ ค๋ฉด StatefulSetSpec v ์•ฑ ์„ ์ฐธ์กฐํ•˜์„ธ์š”. Kubernetes ๋ฌธ์„œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ด ์„น์…˜์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops Manager ๋ฐฐํฌ์™€ ๊ด€๋ จ๋œ ์„ค์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.clusterSpecList

์œ ํ˜•: ์ปฌ๋ ‰์…˜

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋‹ค ํ•˜๋Š” ๋…ธ๋“œ ์ œ๊ณต ์„ ํ•˜๋Š” ๋‹ค์ค‘ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ MongoDB deployment ์—์„œ ์„ ํƒํ•œ Kubernetes ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์˜ ์„ธ๋ถ€ ์ •๋ณด์ž…๋‹ˆ๋‹ค.

spec.applicationDatabase.clusterSpecList.clusterName

์œ ํ˜•: ๋ฌธ์ž์—ด

MongoDB Enterprise Kubernetes Operator๊ฐ€ StatefulSet ๋ฅผ ์˜ˆ์•ฝํ•˜๋Š” ๋‹ค์ค‘ Kubernetes cluster MongoDB deployment ๋‚ด ๋ฉค๋ฒ„ Kubernetes cluster์˜ ์ด๋ฆ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฒฝ์šฐ.

์ค‘์š”

CRD์—์„œ ๋ฐ ์„ค์ •์„ ์ˆ˜์ •ํ•˜์—ฌ clusterSpecList ๋‹จ์ผ MongoDB ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops topology Manager ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค์ค‘ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ ๋ฐฐํฌ ์ธ์Šคํ„ด์Šค๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

spec.applicationDatabase.clusterSpecList.members

์œ ํ˜•: ์ˆซ์ž

์ง€์ •๋œ ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ๋Š” statefulSet ๋…ธ๋“œ์˜ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋‹ค์ค‘ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ MongoDB ๋ฐฐํฌ์—์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ฉค๋ฒ„ ํด๋Ÿฌ์Šคํ„ฐ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

spec.applicationDatabase.topology

์œ ํ˜•: ๋ฌธ์ž์—ด

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ Kubernetes ๋ฐฐํฌ ์œ ํ˜•์ž…๋‹ˆ๋‹ค.

  • The values are SingleCluster or MultiCluster. ์ƒ๋žตํ•˜๋ฉด ๊ธฐ๋ณธ๊ฐ’์€ SingleCluster ์ž…๋‹ˆ๋‹ค.

  • MultiCluster ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ ๋ฉค๋ฒ„๋ฅผ ํ•˜๋‚˜ ์ด์ƒ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • clusterSpecList, clusterName, members ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋Š” ํด๋Ÿฌ์Šคํ„ฐ.

  • MultiCluster ์„ ์ง€์ •ํ•˜๋ฉด Kubernetes Operator๋Š” spec.applicationDatabase.members ํ•„๋“œ ์— ์„ค์ •ํ•˜๋‹ค ํ•œ ๊ฐ’์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘์˜ ์˜ˆ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด ์„น์…˜์—์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops Manager ๋ฐฐํฌ์„œ๋ฒ„ ์™€ ๊ด€๋ จ๋œ ์„ค์ •์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

spec.applicationDatabase.clusterSpecList.memberConfig

์œ ํ˜•: ๋ฌธ์ž์—ด ๋ฐฐ์—ด

๋ฉ€ํ‹ฐ ํด๋Ÿฌ์Šคํ„ฐ MongoDB Ops Manager ๋ฐฐํฌ์„œ๋ฒ„ ์˜ ๊ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์— ๋Œ€ํ•œ ์‚ฌ์–‘์ž…๋‹ˆ๋‹ค.

์ค‘์š”

spec.topology ์„ SingleCluster ๋กœ ์„ค์ •ํ•˜๋‹ค ํ•œ ๊ฒฝ์šฐspec.applicationDatabase.clusterSpecList.memberConfig ๋Œ€์‹  spec.applicationDatabase.memberConfig ์„ ์‚ฌ์šฉ .

memberConfig ๋ชฉ๋ก์˜ ์š”์†Œ ์ˆ˜๋Š” spec.applicationDatabase.clusterSpecList.members ์™€ ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

memberConfig ๋ชฉ๋ก์˜ ์š”์†Œ ์ˆœ์„œ๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ ์˜ ๋ฉค๋ฒ„ ์ˆœ์„œ๋ฅผ ๋ฐ˜์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ์˜ˆ์‹œ ๋ฐฐ์—ด ์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋Š” ์ธ๋ฑ์Šค 0 ์—์„œ Pod์— ์˜ํ–ฅ์„ ์ฃผ๊ณ , ๋‘ ๋ฒˆ์งธ ์š”์†Œ๋Š” ์ธ๋ฑ์Šค 1 ์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

์˜ˆ์‹œ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ 3๊ฐœ ๋ฉค๋ฒ„ ๋ณต์ œ๋ณธ ์„ธํŠธ ์— ๋Œ€ํ•œ ๋‹ค์Œ ์˜ˆ์‹œ ์‚ฌ์–‘์„ ์‚ดํŽด๋ณด์„ธ์š”.

spec:
replicas: 3
version: 4.4.1
backup:
enabled: true
storage:
resources:
requests:
storage: 10Gi
storageClassName: standard
applicationDatabase:
clusterSpecList:
- name: appdb
members: 3
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- votes: 1
priority: "1.5"
tags:
tag2: "value2"
environment: "prod"
- votes: 0
priority: "0"
tags:
tag2: "value2"
environment: "prod"
spec.applicationDatabase.clusterSpecList.memberConfig.priority

์œ ํ˜•: ๋ฌธ์ž์—ด

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„๊ฐ€ ๋  ์ƒ๋Œ€์ ์ธ ๊ฐ€๋Šฅ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.

  • ๋ณต์ œ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์„ ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์ด๋ ค๋ฉด ๋” ๋†’์€ priority ๊ฐ’์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ณต์ œ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ๊ธฐ๋ณธ ๋ฉค๋ฒ„๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์„ ์ƒ๋Œ€์ ์œผ๋กœ ์ค„์ด๋ ค๋ฉด ๋” ๋‚ฎ์€ priority ๊ฐ’์„ ์ง€์ •ํ•˜์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด memberConfig.priority๊ฐ€ 1.5์ธ ๋…ธ๋“œ๋Š” memberConfig.priority๊ฐ€ 0.5์ธ ๋…ธ๋“œ๋ณด๋‹ค ํ”„๋ผ์ด๋จธ๋ฆฌ ๋…ธ๋“œ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์ด ํฝ๋‹ˆ๋‹ค.

memberConfig.priority ๊ฐ€ 0 ์ธ ๋ฉค๋ฒ„๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด ๋ฉค๋ฒ„ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

spec.applicationDatabase.clusterSpecList.memberConfig.tags

์œ ํ˜•: ๋งคํ•‘

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ์˜ ํŠน์ • ๋ฉค๋ฒ„์— ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ (write) ์ž‘์—…์„ ์ง€์‹œํ•˜๊ธฐ ์œ„ํ•œ ๋ณต์ œ๋ณธ ์„ธํŠธ ํƒœ๊ทธ ์˜ ๋งต์ž…๋‹ˆ๋‹ค.

spec.applicationDatabase.clusterSpecList.memberConfig.votes

์œ ํ˜•: ์ˆซ์ž

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ํˆฌํ‘œ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฉค๋ฒ„๊ฐ€ ํˆฌํ‘œํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ ค๋ฉด 1 ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฉค๋ฒ„๋ฅผ ํˆฌํ‘œ ์—์„œ ์ œ์™ธํ•˜๋ ค๋ฉด 0 ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋Œ์•„๊ฐ€๊ธฐ

์ฐธ์กฐ