๋ฉํฐ ํด๋ฌ์คํฐ ์ํคํ ์ฒ ๋ค์ด์ด๊ทธ๋จ: MongoDB Ops Manager ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค
๋ค์ ๋ค์ด์ด๊ทธ๋จ์ Ops Manager ์ ํ๋ฆฌ์ผ์ด์ , ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค, ๋ฐฑ์ ๋๋จผ ๋ฐ ํด๋น ์๊ตฌ ๋ณผ๋ฅจ ๋ฅผ ๋ณด์ฌ์ค๋๋ค. ์ฌ๋ฌ Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋ฉ๋๋ค.
์ด ๋ค์ด์ด๊ทธ๋จ์์๋ ๋ค์์ ์ํํฉ๋๋ค.
Member Cluster 0
์(๋) Kubernetes Operator๋ฅผ ์ค์นํ๊ธฐ ๋๋ฌธ์ '์ด์์ ํด๋ฌ์คํฐ'์ด๊ธฐ๋ ํฉ๋๋ค. ๋ํ "๋ฉค๋ฒ ํด๋ฌ์คํฐ"์ด๋ฉฐ ๋ชจ๋ ๋ฉํฐ ํด๋ฌ์คํฐ ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค๋ฅผ ํธ์คํ ํ ์ ์์ต๋๋ค.์
Member Cluster 0
kubeconfig ํ์ผ์ ์ ์ฅํฉ๋๋ค. ,Kubernetes ๊ตฌ์ฑ ์ ์ค๋ช ํฉ๋๋ค. ๋ฉค๋ฒ ํด๋ฌ์คํฐ, ์ฌ์ฉ์ ๋ฐ ์ปจํ ์คํธ์ ๋ํkubectl mongodb
ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ๋ฉํฐ ํด๋ฌ์คํฐ ๋ฐฐํฌ๋ฅผ ์ํด Kubernetes Operator๋ฅผ ๊ตฌ์ฑํ๋ฉด ๋ค์ ๋ฆฌ์์ค ๊ฐ ์์ฑ๋ฉ๋๋ค.Kubernetes Operator๊ฐ ๊ด๋ฆฌํ ๋ชจ๋ Kubernetes ํด๋ฌ์คํฐ์ ๋ํ ์๊ฒฉ ์ฆ๋ช ์ด ํฌํจ๋
mongodb-enterprise-operator-multi-cluster-kubeconfig
์ํฌ๋ฆฟ. ์ฐ์ฐ์ ํด๋ฌ์คํฐ๋ฅผ ๋ฉค๋ฒ ํด๋ฌ์คํฐ๋ก ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ, ์ด ์ํฌ๋ฆฟ์๋ Kubernetes ์ฐ์ฐ์๋ฅผ ์ค์นํ ํด๋ฌ์คํฐ์ ๋์ผํ ํด๋ฌ์คํฐ์ ๋ํ ์๊ฒฉ ์ฆ๋ช ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
Kubernetes Operator๊ฐ ๋ฉํฐ ํด๋ฌ์คํฐ ๋ชจ๋ ์์ ์คํ๋๋ ๊ฒฝ์ฐ, ConfigMaps ๋ฐ ๊ด๋ฆฌ ํ๋ ค๋ ํด๋ฌ์คํฐ์ ๋ํ ์ํฌ๋ฆฟ๊ณผ ๊ฐ์ด ํ์ํ ๋ฆฌ์์ค๋ฅผ ์ ์ฅํฉ๋๋ค. ์ด๋ฌํ ๋ฆฌ์์ค๋ Kubernetes Operator์ ๋์ผํ ๋ค์์คํ์ด์ค ์ ์ํฉ๋๋ค. Kubernetes Operator๋ ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ์ฌ์ฉํ์ฌ MongoDB Ops Manager ์ฌ๋ฌ Kubernetes ํด๋ฌ์คํฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐฐํฌ ํฉ๋๋ค.
๋ํ Kubernetes Operator๋ ๊ด๋ฆฌํ๋ ๊ฐ MongoDB Ops Manager ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฐํฌ์๋ฒ ์ ๋ํด ๋ช ๊ฐ์ง ์ถ๊ฐ ๋ฉํฐ ํด๋ฌ์คํฐ ๋ฐฐํฌ์๋ฒ ์ํ ConfigMap์ ์์ฑํ๊ณ ์ ์ง ๊ด๋ฆฌํฉ๋๋ค.
Member Cluster 0
๋ ๋ค์ ConfigMap์ ํฌํจํ์ฌ ์ด ๊ตฌ์ฑ์ ์ ์ฅํฉ๋๋ค.<om_resource_name>-cluster-mapping
ConfigMap์๋spec.clusterSpecList
์ ๋์ด๋ ๋ฉค๋ฒ ํด๋ฌ์คํฐ ์ด๋ฆ๊ณผ ์ด ๋ฌธ์์์cluster_index
๋ก ์ฐธ์กฐ๋ ํด๋ฌ์คํฐ ์ธ๋ฑ์ค(์:Cluster 0
๋๋Cluster 1
)์ ๋ํ ๋งคํ์ด ํฌํจ๋์ด ์์ต๋๋ค. Kubernetes Operator๋ ์ด๋ฌํ ์ธ๋ฑ์ค๋ฅผ ๊ฐ ํด๋ฌ์คํฐ ์ด๋ฆ์ ํ ๋นํฉ๋๋ค.<om_resource_name>-db-cluster-mapping
ConfigMap์๋spec.applicationDatabase.clusterSpecList
์ ๋์ด๋ ๋ฉค๋ฒ ํด๋ฌ์คํฐ ์ด๋ฆ๊ณผ ํด๋ฌ์คํฐ ์ธ๋ฑ์ค ๊ฐ์ ๋งคํ์ด ํฌํจ๋์ด ์์ต๋๋ค.<om_resource_name>-db-member-spec
ConfigMap์๋ ๊ฐ ๋ฉค๋ฒ ํด๋ฌ์คํฐ ์ ๋ํด ๊ตฌ์ฑ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณต์ ๋ณธ ์๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ด ์ ๋ณด๊ฐ ์์ผ๋ฉด Kubernetes Operator๊ฐ ์ ์ฒด ๋ฉค๋ฒ ํด๋ฌ์คํฐ ๋ฅผ ์์ ํ ์ฌํด ๋ณต๊ตฌ์ ์ผ๋ถ๋ก ๋ณต์ ๋ณธ ์ธํธ ๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ํ์ฅํ๋ค ํ๊ฑฐ๋ ์ฌ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
MongoDBOpsManager
๋ฆฌ์์ค์ ๊ตฌ์ฑ์ ๋ฉํฐ ํด๋ฌ์คํฐ MongoDB Ops Manager ๋ฐฐํฌ์๋ฒ ๋ฅผ ์ค๋ช ํ๊ธฐ ์ํด ์ฌ์ฉ์๊ฐ ์์ฑํ๋ ํ์ผ ์ ๋๋ค. Kubernetes Operator๋ ์ด ํ์ผ ์ ์ฌ์ฉํ์ฌ MongoDB Ops Manager ๊ตฌ์ฑ ์์๋ฅผ ๋ฐฐํฌ ํฉ๋๋ค.๋ค์ ์์ ๋ ์ด ๋ค์ด์ด๊ทธ๋จ์ ์ค๋ช ๋ MongoDB Ops Manager ๊ตฌ์ฑ ์์๋ฅผ ๋ฐฐํฌํ๋ Kubernetes Operator๋ก ์ด์ด์ง๋ ๊ตฌ์ฑ์ ๋ณด์ฌ์ค๋๋ค. ์ด ์์์๋ ์ด ๋ค์ด์ด๊ทธ๋จ๊ณผ ๊ด๋ จ์ด ์๋ ์ผ๋ถ ์ค์ (์: TLS ๊ตฌ์ฑ)์ ์๋ตํฉ๋๋ค.
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: om 5 namespace: om-ns 6 spec: 7 replicas: 1 # You can set this value and use it as a global or default 8 # setting for all clusters. The spec.clusterSpecList.members 9 # setting overrides this setting. 10 topology: MultiCluster 11 version: 6.0.22 12 adminCredentials: om-admin-secret 13 clusterSpecList: 14 - clusterName: "Member Cluster 1" # Ops Manager settings for "Member Cluster 1" 15 members: 2 16 backup: # Backup settings for "Member Cluster 1" 17 members: 2 # Overrides spec.backup.members 18 - clusterName: "Member Cluster 2" # Ops Manager settings for "Member Cluster 2" 19 members: 1 20 backup: # Backup settings for "Member Cluster 2" 21 members: 2 # Overrides spec.backup.members 22 applicationDatabase: # Global {+appdb+} settings 23 topology: MultiCluster 24 version: 6.0.5-ent 25 members: 3 # In multi-cluster mode, the Operator ignores this field. 26 # The Operator sets the number of members for the Application 27 # Database in spec.applicationDatabase.clusterSpecList.members. 28 clusterSpecList: 29 - clusterName: "Member Cluster 1" 30 members: 3 31 - clusterName: "Member Cluster 2" 32 members: 2 33 backup: # Global settings for the Backup Daemon 34 enabled: true 35 members: 1 # Set this value and use it as a global or default setting. 36 # To override this value, set the value for 37 # spec.clusterSpecList.backup.members. 38 # The Backup Daemon's configuration for each cluster isn't 39 # stored here. Use the Ops Manager's spec.clusterSpecList.backup to 40 # specify the Backup Daemon configuration for each member cluster. Kubernetes Operator๋ ๋ค์ ์ค ํ๋๋ฅผ ์ฐธ์กฐํ์ฌ MongoDB Ops Manager ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
๋ฆฌ์์ค ์ ๋ํด ์์ฑํ๋ ์๋น์ค์ ๊ธฐ๋ณธ๊ฐ FQDN MongoDB Ops Manager
<om_resource_name>-svc.<namespace>.svc.cluster.local
๋๋spec.opsManagerURL
์ ์ง์ ํ๋ URL ์ ๋๋ค. Kubernetes Operator๋ฅผ ์ค์นํ ํด๋ฌ์คํฐ ๊ฐ ์๋น์ค ๋ฉ์์ ์ฐ๊ฒฐ๋์ง ์์ ๊ฒฝ์ฐ์ ๊ฐ์ ์ผ๋ถ ๋ฐฐํฌ์์๋ ๊ธฐ๋ณธ๊ฐ ์๋น์ค FQDN ์ ์ฐ๊ฒฐํ์ง ๋ชปํ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ Kubernetes Operator๋MongoDBOpsManager
๋ฆฌ์์ค ์ํ๋ฅผ ์ฐ๊ฒฐ ์ค๋ฅ๋ฅผ ๋ํ๋ด๋Failed
๋ก ๋ณด๊ณ ํฉ๋๋ค. ์ด๋ฌํ ๊ฒฝ์ฐ๋ฅผ URL ๊ณ ๋ คํ๋ ค๋ฉด MongoDB Ops Manager ์์spec.opsManagerURL
์ ์ ์ ๊ณตํ์ธ์. ์ด URL ์ ์ธ๋ถ์ ๋ ธ์ถ๋ MongoDB Ops Manager ์ธ์คํด์ค ์ ํธ์คํธ ์ด๋ฆ์ผ ์ ์์ต๋๋ค. ํ์ต ๋ด์ฉ์ ๋คํธ์ํน ๊ฐ์๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ ๊ฐ์ ๋ฉค๋ฒ ํด๋ฌ์คํฐ๋ MongoDB Ops Manager ์ ํ๋ฆฌ์ผ์ด์ ์ ํธ์คํ ํ๋ค ํฉ๋๋ค. ๊ฐ ํด๋ฌ์คํฐ ์์ Kubernetes Operator๋
<om_resource_name>-<cluster_index>
์ด๋ผ๋ StatefulSet๋ฅผ ๋ฐฐํฌํฉ๋๋ค.StatefulSet๋
Member Cluster 1
์ MongoDB Ops Manager ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์คํด์ค 2๊ฐ๋ฅผ ๋ฐฐํฌํ๊ณMember Cluster 2
์ ์ธ์คํด์ค 1๊ฐ๋ฅผ ๋ฐฐํฌํฉ๋๋ค.spec.clusterSpecList.members
์ ์ธ์คํด์ค ์๋ฅผ ์ ์ํฉ๋๋ค. ์ด ํด๋ฌ์คํฐ ๊ฐ MongoDB Ops Manager ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค๋ฅผ ๋ฐฐํฌ ํ์ง ์๋๋ก ์ธ์คํด์ค ์๋ฅผ 0์ผ๋ก ์ค์ ํ๋ค ์ ์์ต๋๋ค. ์ด๋ ์์ ๋ฐฑ์ ๋๋จผ ์ธ์คํด์ค๋ง ํธ์คํ ํ๋ ๋ฐ ์ด ํด๋ฌ์คํฐ ๋ฅผ ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ์ ์ ์ฉํฉ๋๋ค.spec.clusterSpecList
์์ ํด๋ฌ์คํฐ ๋ฅผ ์ ๊ฑฐ ํ๋ ๊ฒฝ์ฐ, ์ด๋spec.clusterSpecList.members
๋ฐspec.clusterSpecList[*].backup.members
์ 0๊ฐ์ ๋ฉค๋ฒ๋ฅผ ์ง์ ํ๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค.๊ฐ ํด๋ฌ์คํฐ ์ ๊ฐ StatefulSet์ ๋ํด Kubernetes Operator๋ ์๋น์ค๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ๋ผ๋ ์ด๋ฆ์ ์ ํ์ผ๋ก,
ClusterIP
<om_resource_name>-svc
ํด๋ฌ์คํฐ์ ์๋ํฌ์ธํธ ๋ชฉ๋ก์ ์๋ ๋ชจ๋ ํ๋๋ฅผ ํฌํจํฉ๋๋ค. ์ด ์๋น์ค์ FQDN์ธ<om_resource_name>-svc.<namespace>.svc.cluster.local
์ Kubernetes Operator๊ฐ MongoDB Ops Manager ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ๋ ์๋ํฌ์ธํธ์ ์ก์ธ์ค ํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ๊ฐ ํธ์คํธ ์ด๋ฆ์ ๋๋ค.spec.externalConnectivity
๋ฅผ ์ง์ ํ๋ ๊ฒฝ์ฐ, Kubernetes Operator๋ ๊ฐ ํด๋ฌ์คํฐ ์ ๋ํด<om_resource_name>-svc-ext
๋ผ๋ ์ธ๋ถ KubernetesLoadBalancer
์ ํ ์๋น์ค๋ ์์ฑํฉ๋๋ค. ๊ฐ ํด๋ฌ์คํฐ ์์spec.clusterSpecList.externalConnectivity
์(๋ฅผ) ์ฌ์ฉํ์ฌ ์ด ์ธ๋ถ ์๋น์ค์ ๋ํ ์์ฒด ๊ตฌ์ฑ์ ์ง์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ์์ ์๋น์ค ์ ํ์ ๋ณ๊ฒฝํ๊ฑฐ๋ ์ฃผ์์ ์ ์ํ ์ ์์ต๋๋ค.
์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค. Kubernetes Operator๋ ๋ ํด๋ฌ์คํฐ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐฐํฌํฉ๋๋ค.
Member Cluster 1
์๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํmongod
ํ๋ก์ธ์ค 3๊ฐ๊ฐ ํฌํจ๋์ด ์๊ณ ,Member Cluster 2
์๋mongod
ํ๋ก์ธ์ค 2๊ฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.spec.applicationDatabase
์ค์ ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์ฑ์ ์ ์ํฉ๋๋ค. ๊ฐ ๋ฉค๋ฒ ํด๋ฌ์คํฐ ์์ Kubernetes Operator ๋spec.applicationDatabase.clusterSpecList.members
์ ์ ์๋ ๋ฉค๋ฒ ํด๋ฌ์คํฐ ์๋ฅผ ์ฌ์ฉํ์ฌ<om_resource_name>-db-<cluster_index>
์ด๋ผ๋ StatefulSet ์ ์์ฑํฉ๋๋ค. ๋ฉํฐ ํด๋ฌ์คํฐ ๋ชจ๋ ์์ Kubernetes Operator๋spec.applicationDatabase.members
ํ๋ ์ ์ค์ ํ๋ค ํ ๊ฐ์ ๋ฌด์ํฉ๋๋ค. Kubernetes Operator๋ ๋ชจ๋ ๋ฉค๋ฒ ํด๋ฌ์คํฐ์ ๋ฐฐํฌ๋mongod
ํ๋ก์ธ์ค๋ก ๊ตฌ์ฑ๋ ํ๋์ ๋ณต์ ๋ณธ ์ธํธ ๋ฅผ ๊ตฌ์ฑํฉ๋๋ค.์ด๋ผ๋
<statefulset_name>-<pod_index>
์ด๋ฆ์ MongoDB ํ๋ก์ธ์ค<om_resource_name>-db-<cluster_index>-<pod_index>
๋ฅผ ํธ์คํ ํ๋ClusterIP
์ ๊ฐ ํ๋์ ๋ํดmongod
Kubernetes Operator๋ ํด๋น FQDN ๋ก ๊ฐ๋ณ ํ๋ก์ธ์ค์ ์ก์ธ์คํ๊ธฐ ์ํ Kubernetes ์ ํ ์๋น์ค๋ฅผ ์์ฑํฉ๋๋ค.<om_resource_name>-db-<cluster_index>-<pod_index>-svc
๋ณต์ ๋ณธ ์ธํธ ์ ๊ฐmongod
ํ๋ก์ธ์ค ๋ ๊ณ ์ ํ๊ฒ ์ฃผ์๋ฅผ ์ง์ ํ ์ ์์ด์ผ ํฉ๋๋ค.๋ณต์ ๋ณธ ์ธํธ ๊ตฌ์ฑ์ ํ๋ก์ธ์ค์๋ ํด๋น Pod ์๋น์ค์ FQDN:
<om_resource_name>-db-<cluster_index>-<pod_index>-svc.<namespace>.svc.cluster.local
๋ก ๊ตฌ์ฑ๋ ํ๋ก์ธ์ค ํธ์คํธ ์ด๋ฆ์ด ์์ด์ผ ํฉ๋๋ค.๊ฐ Pod์๋ Persistent Volume Claim ์ ํตํด ์ฐ๊ฒฐ๋ ์๊ตฌ ๋ณผ๋ฅจ์ด ์์ต๋๋ค. Kubernetes Operator๊ฐ ์์ฑํฉ๋๋ค.
๋ชจ๋
mongod
ํ๋ก์ธ์ค์์ ๋ณต์ ๋ณธ ์ธํธ ๋ฅผ ๊ตฌ์ฑํ๋ ค๋ฉด ๊ฐ ํ๋ก์ธ์ค ๊ฐ ๋ณต์ ๋ชฉ์ ์ผ๋ก ์๋ก ์ฐ๊ฒฐ๋์ด์ผ ํ๋ก์ธ์ค . ์ด๋ฅผ ๋ฌ์ฑํ๋ ค๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ฐฐํฌ ํ๋ ๋ชจ๋ ๋ฉค๋ฒ ํด๋ฌ์คํฐ๋ฅผ ๋์ผํ ์๋น์ค ๋ฉ์ ๊ตฌ์ฑ์ ํฌํจํฉ๋๋ค.์๋น์ค ๋ฉ์๋ ํด๋ฌ์คํฐ ๊ฐ DNS ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ด์ ๋ฐ๋ผ ํธ๋ํฝ์ ๋ผ์ฐํ ํฉ๋๋ค. ์๋น์ค ๋ฉ์๋ ๋ชจ๋ ํด๋ฌ์คํฐ์์ ๊ฐ Pod ์๋น์ค์ FQDN
<om_resource_name>-db-<cluster_index>-<pod-index>-svc.<namespace>.svc.cluster.local
๋ฅผ ํ์ธํ๋ ๋ฐ ๋์์ด ๋๋ฉฐ ๋ ธ์ถ๋mongod
ํฌํธ(๊ธฐ๋ณธ์ ์ผ๋ก 27017 )์์ ์ฐ๊ฒฐ์ ํ์ฉํฉ๋๋ค.์๋ฅผ ๋ค์ด,
Member Cluster 1
์om-db-1-0
ํ๋์์ ์คํ ์ค์ธmongod
ํ๋ก์ธ์ค๊ฐMember Cluster 2
์om-db-2-1
ํ๋์์ ์คํ ์ค์ธmongod
์ ์ฐ๊ฒฐ๋๋ฉด, ์ฒซ ๋ฒ์งธmongod
ํ๋ก์ธ์ค๋ ์๋ํ ์ ํธ์คํธ ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค. ๊ตฌ์ฑ,om-db-2-1-svc.om-ns.svc.cluster.local:27017
๋ฐ ์๋น์ค ๋ฉ์๋ ์ด ์์ฒญ์Member Cluster 2
om-db-2-1-svc
์๋น์ค๋ก ๋ผ์ฐํ ํฉ๋๋ค. ์๋น์ค ๋ฉ์๊ฐ ์์ผ๋ฉด KubernetesMember Cluster 1
์Member Cluster 2
์ ๋ฐฐํฌ๋om-db-2-1-svc
์๋น์ค์ ๋ํ ์ ๋ณด๊ฐ ์์ผ๋ฏ๋กom-db-2-1-svc.om-ns.svc.cluster.local
์ DNS ํ์ธ์ด ์คํจํฉ๋๋ค.์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ MongoDB Ops Manager ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค๊ฐ
Running
์ํ ์ธ ๊ฒฝ์ฐ, Kubernetes Operator๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค StatefulSet์ ๋ชจ๋ํฐ๋ง ์ปจํ ์ด๋ ๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ด๋ก ์ธํด ๋ชจ๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋๊ฐ ๋กค๋ง ์ฌ์์ ๋ฉ๋๋ค. Kubernetes Operator๋ ๋ชจ๋ ํด๋ฌ์คํฐ์์ StatefulSet๋ฅผ ์์ฐจ์ ์ผ๋ก ์ ๋ฐ์ดํธํ์ฌ ๋กค๋ง ์ฌ์์ ํ๋ก์ธ์ค ์ค์ ๊ฐ ํด๋ฌ์คํฐ ์์ ํ๋์ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๋ง ์ผ์์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.๋ชจ๋ํฐ๋ง MongoDB Ops Manager MongoDB Ops Manager ์์ด์ ํธ ๋ ์๋น์ค์ FQDN
<om_resource_name>-svc.<namespace>.svc.cluster.local
๋๋ ์ง์ ํ ๊ฒฝ์ฐ ์spec.opsManagerURL
๊ฐ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.MongoDB Ops Manager ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ๋ฐฑ์ ๋๋จผ ์ ํญ์ ๋ชจ๋ ๋ณต์ ๋ณธ ์ธํธ ๋ฉค๋ฒ๊ฐ ํฌํจ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฐ๊ฒฐ string ์ ์ฌ์ฉํฉ๋๋ค. ์ฐ๊ฒฐ string ์ ํญ์ pod๋ณ ์๋น์ค FQDN์ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑ๋ฉ๋๋ค.
Kubernetes Operator๋
spec.backup.enabled
๋ฅผtrue
๋ก ์ค์ ํ ๊ฒฝ์ฐ Backup Daemon StatefulSets๋ฅผ ๋ฐฐํฌํฉ๋๋ค.spec.clusterSpecList
์ ๋์ด๋ ๊ฐ ๋ฉค๋ฒ ํด๋ฌ์คํฐ์์ Kubernetes Operator๋ ๋ฐฑ์ ๋ฐ๋ชฌ ์ธ์คํด์ค ์๊ฐspec.backup.members
๋ก ์ค์ ๋<om_resource_name>-backup-daemon-<cluster_index>
์ด๋ผ๋ ์ด๋ฆ์ ๋ฐฑ์ ๋ฐ๋ชฌ StatefulSet๋ฅผ ์์ฑํฉ๋๋ค.๋๋
spec.clusterSpecList[*].backup.members
์์ ๊ฐ ํด๋ฌ์คํฐ ์ ๋ฐฑ์ ๋๋จผ ์ธ์คํด์ค ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.๋ฐฑ์ ๋ฐ๋ชฌ ์ธ์คํด์ค๋ MongoDB Ops Manager ์ ํ๋ฆฌ์ผ์ด์ ์ธ์คํด์ค์ ๋์ผํ ์ฐ๊ฒฐ string ์ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณต์ ๋ณธ ์ธํธ์๋ง ์ฐ๊ฒฐํฉ๋๋ค.
๋ํ ์ด ๋ค์ด์ด๊ทธ๋จ์์๋ ์๋น์ค ๋ฉ์์ ๊ตฌ์ฑ ์์ ๊ฐ์ ๋คํธ์ํน ์ฐ๊ฒฐ์ ๊ด์ฐฐํ ์ ์์ต๋๋ค.
๋ค์ด์ด๊ทธ๋จ์ ๋๋ฌ์ผ ์ ์ ์ ๋ชจ๋ ํด๋ฌ์คํฐ์ ๋ํ ๋คํธ์ํน ๊ตฌ์ฑ์ ํฌํจํ๋ ๋จ์ผ ์๋น์ค ๋ฉ์๋ฅผ ๋ณด์ฌ์ค๋๋ค.
๋ฉค๋ฒ ํด๋ฌ์คํฐ ์ ์ฒด์์ MongoDB Ops Manager ์ ํ๋ฆฌ์ผ์ด์ ์ ๋๋ฌ์ผ ์ ์ ์ ์ด๋ฌํ ์ธ์คํด์ค๊ฐ ์ํ๋ฅผ ์ ์ฅํ์ง ์์ผ๋ฉฐ ๋ผ์ด๋ ๋ก๋น ๋ก๋ ๋ฐธ๋ฐ์ ๋ฅผ ์์ ํ๋ ๋ฑ ํธ๋ํฝ์ ๋ชจ๋ ์ธ์คํด์ค์ ๊ท ๋ฑํ๊ฒ ๋ถ์ฐ๋ ํ ์ ์์์ ๋ํ๋ ๋๋ค.
๋ฉค๋ฒ ํด๋ฌ์คํฐ์์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋๋ฌ์ผ ์ ์ ์ ์ด๋ฌํ ์ธ์คํด์ค๊ฐ ์๋ก ํต์ ํ์ฌ ๋จ์ผ MongoDB ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ํ์ฑํจ์ ๋ํ๋ ๋๋ค.