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 ๋ฐฐํฌ๋ฅผ ์ํ ๋ฆฌ์์ค ์ฌ์์ ๋ณด์ฌ์ค๋๋ค.
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: om 5 spec: 6 topology: SingleCluster # optional, SingleCluster by default 7 opsManagerURL: https://link.to.configured.load-balancer.example.com # optional OM URL for the operator 8 replicas: 1 9 version: "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
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: om 5 spec: 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 37 replicas: 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
MongoDB Ops Manager ํ์ ์ค์
์ด ์น์ ์์๋ ๋ชจ๋ Ops Manager ๋ฆฌ์์ค์ ๋ํด ์ฌ์ฉํด์ผ ํ๋ ์ค์ ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
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 ์ ํ์ ์ค์
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.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์์ ์๊ธฐ์น ์์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค.
S3 ์ค์
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
๊ฒฝ๋ก ์คํ์ผ URLs3.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
๊ฒฝ๋ก ์คํ์ผ URLs3.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
๋๋ ๊ฐ3spec.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 ์ค์
๋ค์ ์ค์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํจ๊ป 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 ์ธ์ฆ ์ ์ฌ์ฉํ๋ ค๋ฉด ์ด ์ค์ ์ ์ง์ ํด์ผ ํฉ๋๋ค.
๋ฉํฐ ํด๋ฌ์คํฐ ์ค์
MongoDB Ops Manager ํ์ ์ค์
์ด ์น์ ์์๋ ํ์ 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
orMultiCluster
. ์๋ตํ๋ฉด ๊ธฐ๋ณธ๊ฐ์SingleCluster
์ ๋๋ค.MultiCluster
์ ์ง์ ํ๋ ๊ฒฝ์ฐ:MongoDBMultiCluster
๋ฆฌ์์ค๋ฅผ ๊ฐ์ ๋ฆฌ์์ค ๋ชฉ๋ก์ ์ถ๊ฐ ํฉ๋๋ค. ์ด๋ Kubernetes Operator์๊ฒ ๋ค์ค Kubernetes ํด๋ฌ์คํฐ ๋ชจ๋์์ ์๋ํด์ผ ํ๋ฉฐ ๋ค์ค Kubernetes ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ๊ตฌ์ฑ ์์ ์ ์ํํด์ผ ํจ์ ๋ํ๋ ๋๋ค.์ ์ค์ฒฉ๋ ๋ฐ
spec.clusterSpecList
spec.clusterSpecList.clusterName
spec.clusterSpecList.members
๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฅผ ๋ฐฐํฌ ํ๋ ค๋ ๋ฉค๋ฒ ํด๋ฌ์คํฐ ๋ฅผ ํ๋ ์ด์ ์ง์ ํฉ๋๋ค.MongoDB Ops ManagerMultiCluster
์ ์ง์ ํ๋ฉด Kubernetes Operator๋spec.members
์ ์ค์ ํ๋ค ํ ๋ชจ๋ ๊ฐ์ ๋ฌด์ํฉ๋๋ค. ๋ฆฌ์์ค ์ฌ์์ ์์ ๋ฅผ ์ฐธ์กฐํ์ธ์.
MongoDB Ops Manager ์ ํ์ ์ค์
MongoDB Ops Manager ๋ฆฌ์์ค๋ ๋ฉํฐ ํด๋ฌ์คํฐ MongoDB Ops Manager ๋ฐฐํฌ์ ๊ด๋ จ๋ ๋ค์ ์ค์ ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
spec.clusterSpecList
์ ํ: ์ปฌ๋ ์
์กฐ๊ฑด๋ถ. MongoDB Ops Manager ๋๋ ๋ฐฑ์ ๋ฐ๋ชฌ ์ธ์คํด์ค๋ฅผ ๋ฐฐํฌํ๋ ค๋ ๋ค์ค Kubernetes ํด๋ฌ์คํฐ์์ ์ ํํKubernetes ๋ฉค๋ฒ ํด๋ฌ์คํฐ์ ์ธ๋ถ ์ ๋ณด์ ๋๋ค. ๋ฆฌ์์ค ์ฌ์์ ์๋ ์ฐธ์กฐํ์ธ์.
spec.topology
์MultiCluster
๋ก ์ค์ ํ๋ค ํ๋ ๊ฒฝ์ฐspec.clusterSpecList.members
๊ฐ์ ์ง์ ํด์ผ ํฉ๋๋ค.spec.clusterSpecList
์๋์ ๋ค๋ฅธ ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ ์ ํ ์ฌํญ์ ๋๋ค.spec.topology
์SingleCluster
๋ก ์ค์ ํ๋ฉด Kubernetes Operator๋spec.clusterSpecList
์๋์ ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ฅผ ๋ฌด์ํฉ๋๋ค.
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.jvmParameters
์ ์ง์ ๋ ๊ฐ์ ์ฌ์ ์ํฉ๋๋ค. ๊ฐ์ ์์๋ ๋ฆฌ์์ค ์ฌ์์ ์์๋ฅผ ์ฐธ์กฐํ์ธ์.์ด
spec.jvmParameters
MongoDB Ops Manager ๋งค๊ฐ ๋ณ์๋ฅผ ์๋ตํ๋ฉด ์ด ๋ฉค๋ฒ ํด๋ฌ์คํฐ ์ ๋ฐ ๋ฐฑ์ ๋๋จผ ์ธ์คํด์ค์ ์ ๊ฐ์ด ์ฌ์ฉ๋ฉ๋๋ค.
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 Opstopology
Manager ์ธ์คํด์ค๋ฅผ ๋ค์ค Kubernetes ํด๋ฌ์คํฐ ๋ฐฐํฌ ์ธ์คํด์ค๋ก ๋ณํํ ์ ์์ต๋๋ค.
spec.applicationDatabase.clusterSpecList.members
์ ํ: ์ซ์
์ง์ ๋ ๋ฉค๋ฒ ํด๋ฌ์คํฐ์ ์๋ statefulSet ๋ ธ๋์ ์์ ๋๋ค. ๋ฉค๋ฒ ํด๋ฌ์คํฐ๋ ๋ค์ค Kubernetes ํด๋ฌ์คํฐ MongoDB ๋ฐฐํฌ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํธ์คํ ํ๋ ๋ฉค๋ฒ ํด๋ฌ์คํฐ ์ค ํ๋์ ๋๋ค.
spec.applicationDatabase.topology
์ ํ: ๋ฌธ์์ด
์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ Kubernetes ๋ฐฐํฌ ์ ํ์ ๋๋ค.
The values are
SingleCluster
orMultiCluster
. ์๋ตํ๋ฉด ๊ธฐ๋ณธ๊ฐ์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
๋ก ์ค์ ํฉ๋๋ค.