Kubernetes์ MongoDB ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํคํ ์ฒ
์ด ํ์ด์ง์ ๋ด์ฉ
์ค์
์ด ์น์ ์ ๋จ์ผ Kubernetes ํด๋ฌ์คํฐ ๋ฐฐํฌ์๋ง ์ ์ฉ๋ฉ๋๋ค. ๋ค์ค Kubernetes cluster MongoDB ๋ฐฐํฌ์ ๊ฒฝ์ฐ ์ํคํ ์ฒ, ๊ธฐ๋ฅ ๋ฐ ์ ํ ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
Kubernetes Operator ๋ฐ Cloud Manager ๋๋ Ops Manager๋ฅผ ์ฌ์ฉํ์ฌ MongoDB database ๋ฆฌ์์ค๋ฅผ Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๊ธฐ์กด Cloud Manager ๋๋ Ops Manager๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ Kubernetes์ Ops Manager๋ฅผ ๋ฐฐํฌํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
Kubernetes Operator๋ Cloud Manager ๋๋ Ops Manager๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ MongoDB database ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
MongoDB
MongoDBUser
์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค ์ฌ์์ Kubernetes Operator์์ ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ์ ์ํฉ๋๋ค. Kubernetes Operator๋ ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ๋ชจ๋ํฐ๋งํฉ๋๋ค. ๋ฆฌ์์ค์ ์ฌ์์ ์ ๋ฐ์ดํธํ๋ฉด Kubernetes Operator๋ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ Cloud Manager ๋๋ MongoDB Ops Manager์ ํธ์ํ๊ณ , ์ด ๋ณ๊ฒฝ ์ฌํญ์ MongoDB deployment์ ๊ตฌ์ฑ์ ๋ณ๊ฒฝํฉ๋๋ค.
MongoDB
์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค ์ ์
Kubernetes Operator๋ MongoDB ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค์ ์ํด ์ ์๋ MongoDB database ๋ฐฐํฌ๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.
์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค ์ฌ์์ MongoDB database ๋ค์ ์ ํ์ MongoDB database ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค๋ฅผ ์ ์ํฉ๋๋ค.
Standalone
ReplicaSet
ShardedCluster
๋ค์ ๋ค์ด์ด๊ทธ๋จ์ Kubernetes Operator์์ MongoDB ๋ฆฌ์์ค์ ๊ฐ ์ ํ ๊ตฌ์ฑ์ ๋ณด์ฌ์ค๋๋ค.
๊ฒฝ๊ณ
Kubernetes Operator๋ ์ค์ฌ์ ๋ ธ๋๋ฅผ ์ง์ํ์ง ์์ต๋๋ค.
๋ ๋ฆฝํ
MongoDB database ๋ฆฌ์์ค์ Standalone
์ ํ์ ๋ํด Kubernetes Operator๋ ๋จ์ผ ๋
ธ๋๋ฅผ ๊ฐ์ง ๋ณต์ ๋ณธ ์ธํธ๋ฅผ StatefulSet๋ก Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌํฉ๋๋ค.
Kubernetes Operator๋ ์์ฑํ ํ๋ ์์ ํจ๊ป ํ๋ ์ฌ์์ด ํฌํจ๋ StatefulSet๋ฅผ ์์ฑํฉ๋๋ค. Kubernetes Operator๋ Kubernetes StatefulSet ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด ๋ ๋ฆฝํ MongoDB database ์ธ์คํด์ค์ ๋ํ ํ๋๋ฅผ ์์ฑํฉ๋๋ค.
์ค์
Kubernetes์์ Standalone
๋ฆฌ์์ค๋ ๋
ธ๋๊ฐ ํ๋๋ฟ์ธ ReplicaSet
๋ฆฌ์์ค์ ๋์ผํฉ๋๋ค. ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋์ค์ ๋
ธ๋๋ฅผ ์ถ๊ฐํ ์ ์์ผ๋ฏ๋ก Standalone
๋์ ๋
ธ๋๊ฐ ํ๋์ธ ReplicaSet
๋ฅผ ๋ฐฐํฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
๋ณต์ ๋ณธ ์ธํธ
ReplicaSet
MongoDB ๋ฆฌ์์ค์ ์ ํ์ ๊ฒฝ์ฐ, Kubernetes Operator๋ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ StatefulSet ๋ก spec.members
Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌํฉ๋๋ค.๊ฐ๊ณผ ๋์ผํ ๋ฉค๋ฒ ์๋ฅผ ๊ฐ์ต๋๋ค.
Kubernetes Operator๋ Kubernetes StatefulSet ์ปจํธ๋กค๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ณต์ ๋ณธ ์ธํธ์ ๊ฐ ๋ ธ๋์ ๋ํด StatefulSet์ ํ๋์ ํ๋๋ฅผ ์์ฑํฉ๋๋ค.
StatefulSet์ ๊ฐ ํ๋๋ MongoDB Agent ์ธ์คํด์ค๋ฅผ ์คํํฉ๋๋ค.
์ค๋ฉ๋ ํด๋ฌ์คํฐ
MongoDB ๋ฆฌ์์ค์ ShardedCluster
์ ํ์ ํ๋ ์ด์์ Config ์๋ฒ, mongos
์ธ์คํด์ค ๋ฐ ์ค๋ ๋ฉค๋ฒ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
ShardedCluster
๋ฆฌ์์ค์ ๋ํด Kubernetes Operator๊ฐ ๋ค์์ ๋ฐฐํฌํฉ๋๋ค.
๋ชจ๋ Config ์๋ฒ์ ๋ํด ํ๋์ StatefulSet
๋ชจ๋
mongos
์ธ์คํด์ค์ ๋ํด ํ๋์ StatefulSet๊ฐ ์ค๋ ๋ ธ๋๋น ํ๋์ StatefulSet
Kubernetes Operator๋ Kubernetes StatefulSet ์ปจํธ๋กค๋ฌ์ ์์กดํ์ฌ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํด ์์ฑ๋ ๊ฐ StatefulSet์ ํ๋์ ํ๋๋ฅผ ์์ฑํฉ๋๋ค.
MongoDB
์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค ์กฐ์
MongoDB ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค ์ฌ์์ ์ ์ฉํ๋ฉด, Kubernetes Operator๋ ๊ฐ ๋ฆฌ์์ค๋ฅผ StatefulSet๋ก Kubernetes ํด๋ฌ์คํฐ์ ๋ฐฐํฌํฉ๋๋ค.
Kubernetes Operator:
์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค์ ์ฌ์ ๋ฐ ๊ด๋ จ ConfigMap ์ ๊ฐ์ํฉ๋๋ค. ๋๋ ์ํฌ๋ฆฟ ์ ์ฅ ๋๊ตฌ์ ์ ์ฅ๋ ์ํฌ๋ฆฟ.
์ฌ์ ํ์ผ, ConfigMap ๋๋ ์ํฌ๋ฆฟ์ด ๋ณ๊ฒฝ๋๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒ์ฆํฉ๋๋ค.
Kubernetes ํด๋ฌ์คํฐ์ MongoDB database ๋ฆฌ์์ค๋ฅผ ์ ์ ํ๊ฒ ์ ๋ฐ์ดํธํฉ๋๋ค.
๋ณ๊ฒฝ ์ฌํญ์ Cloud Manager ๋๋ Ops Manager๋ก ํธ์ํ์ฌ MongoDB deployment ๊ตฌ์ฑ์ ๋ณ๊ฒฝํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ ์กฐ์ ๋ค์ด์ด๊ทธ๋จ
๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ Kubernetes Operator๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ค๋ช ํฉ๋๋ค.
MongoDB
์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค ์ฌ์๊ด๋ จ ConfigMap
์ํฌ๋ฆฟ ์ ์ฅ ๋๊ตฌ์ ์ ์ฅ๋ ๊ด๋ จ ์ํฌ๋ฆฟ
์ค๋ฉ๋ ํด๋ฌ์คํฐ ์กฐ์ ๋ค์ด์ด๊ทธ๋จ
๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ๋ฅผ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ Kubernetes Operator๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ค๋ช ํฉ๋๋ค.
MongoDB
์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค ์ฌ์๊ด๋ จ ConfigMap
์ํฌ๋ฆฟ ์ ์ฅ ๋๊ตฌ์ ์ ์ฅ๋ ๊ด๋ จ ์ํฌ๋ฆฟ
์กฐ์ ์ํฌํ๋ก
MongoDB ๋ฆฌ์์ค ์ฌ์์ ์์ฑํ๊ฑฐ๋ ๋ณ๊ฒฝํ ๋ ๋๋ ๊ด๋ จ ConfigMap ๋๋ ์ํฌ๋ฆฟ์ ๋ณ๊ฒฝํ ๋, Kubernetes Operator๋ ๋ณ๊ฒฝ ์ฌํญ์ ์กฐ์ ํ๊ธฐ ์ํด ๋ค์ ์์ ์ ์ํํฉ๋๋ค.
Kubernetes Operator์์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๊ฑฐ๋ ํ๋ก์ ํธ์ ์ฐ๊ฒฐํ๋ ๋ฐ ์ฌ์ฉํ ConfigMap์์ ํ์ํ ์กฐ์ง ๋ฐ ํ๋ก์ ํธ ๊ตฌ์ฑ์ ์ฝ์ต๋๋ค.
๋ฆฌ์์ค ์ฌ์์ ๋ณ๊ฒฝํ๋ฉด Kubernetes Operator๋ ๋ณ๊ฒฝ์ด ๋ฐ์ํ์์ ์๋ณํ๊ณ
spec.opsManager.configMapRef.name
์ ์ง์ ๋ ConfigMap์ ์ฌ์์ ํ์ธํฉ๋๋ค.
์ฐธ๊ณ
MongoDB ๋ฆฌ์์ค์ ๋ํ Kubernetes Operator๋ฅผ ๊ตฌ์ฑํ ๋ ConfigMap์ ์์ฑํ์ฌ Cloud Manager ๋๋ Ops Manager ํ๋ก์ ํธ๋ฅผ ์ฐ๊ฒฐํ๊ฑฐ๋ ์์ฑํฉ๋๋ค. MongoDB Agent๋ ์ด ConfigMap์ ์ฌ์ฉํ์ฌ MongoDB ๋ฆฌ์์ค์ ๋ฐฐํฌ๋ฅผ ์์ํ๊ฑฐ๋ ๋ณ๊ฒฝํฉ๋๋ค.
๋ค์ ์ค ํ๋์ ์ง์ ๋ ์ํฌ๋ฆฟ์์ Cloud Manager ๋๋ Ops Manager์ ๋ํ ์ธ์ฆ ๊ตฌ์ฑ์ ์ฝ์ต๋๋ค.
๋ฆฌ์์ค ์ฌ์์
spec.credentials
์ด ์ํฌ๋ฆฟ์ Kubernetes Operator๊ฐ Cloud Manager ๋๋ Ops Manager์ ์ธ์ฆํ๋ ๋ฐ ํ์ํ Cloud Manager API ํค ๋๋ Ops Manager API ํค๋ฅผ ์ ์ฅํฉ๋๋ค.
์ฐธ๊ณ
MongoDB ๋ฆฌ์์ค์ ๋ํ Kubernetes Operator๋ฅผ ๊ตฌ์ฑํ ๋ ์ด ์ํฌ๋ฆฟ์ Kubernetes์์ ์์ฑํ๊ฑฐ๋ ์ํฌ๋ฆฟ ์ ์ฅ์ ๋๊ตฌ์ ์ ์ฅํด์ผ ํฉ๋๋ค.
Kubernetes Operator๋ Cloud Manager ๋๋ Ops Manager์ ์ฐ๊ฒฐํ์ฌ ๋ค์ ์์ ์ ์ํํฉ๋๋ค.
ConfigMap์
orgId
ํ๋์์ ์กฐ์ง์ ์ฝ์ต๋๋ค.orgId
ํ๋์ ๊ฐ์ ์ ๊ณตํด์ผ ํฉ๋๋ค.์ด ์ ํ์ ํ๋์ ๊ฐ์ ์ง์ ํ์ง ์์ ๊ฒฝ์ฐ ConfigMap์
projectName
ํ๋์ ์ง์ ๋ ํ๋ก์ ํธ ์ด๋ฆ์ ์ฝ๊ฑฐ๋ ์๋ ๊ฒฝ์ฐ Cloud Manager ๋๋ Ops Manager์์ ์ด ํ๋ก์ ํธ๋ฅผ ๋ง๋ญ๋๋ค.MongoDB Agent์ฉ์ผ๋ก Kubernetes Operator๊ฐ ์์ฑํ
<project-id>-group-secret
์ํฌ๋ฆฟ์ด ์กด์ฌํ๋์ง ํ์ธํฉ๋๋ค. Kubernetes Operator๋ ์ํฌ๋ฆฟ ์ ์ฅ์ ๋๊ตฌ ์์ ์ํฌ๋ฆฟ์ ์ฝ๊ฑฐ๋ MongoDB Ops Manager API ํค ๋๋ Cloud Manager API ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ํฌ๋ฆฟ์ ์์ฑํฉ๋๋ค.์์ฒด๋ฅผ ConfigMap ๋ฐ ์ด ์ํฌ๋ฆฟ์ ๊ฐ์์๋ก ๋ฑ๋กํฉ๋๋ค. ์ด๋ฅผ ํตํด Kubernetes Operator๋ ConfigMap ๋๋ ์ํฌ๋ฆฟ์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ๋ฐ์ํ ์ ์์ต๋๋ค.
Kubernetes Operator๋ ๋ชจ๋ TLS ๋ฐ X.509 ์ธ์ฆ์๋ฅผ ํ์ธํฉ๋๋ค.
๋ณต์ ๋ณธ ์ธํธ์ ๋ํด TLS๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ, Kubernetes Operator๋
<prefix>-<resource-name>-cert
์ํฌ๋ฆฟ ๋๋ ์ํฌ๋ฆฟ ์ ์ฅ์ ๋๊ตฌ์ ์ ๊ณต๋ ์ธ์ฆ์๋ฅผ ์ฐพ์ต๋๋ค.์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํด TLS๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ, Kubernetes Operator๋ ์ด๋ฌํ ์ํฌ๋ฆฟ์์ ์ธ์ฆ์๋ฅผ ์ฐพ์ต๋๋ค.
๊ฐ ์ค๋ ๋ฉค๋ฒ์ ๋ํด
<prefix>-<resource-name>-x-cert
์ ๋๋ค.๋ชจ๋ config ์๋ฒ์ ๋ํด
<prefix>-<resource-name>-config-cert
.๋ชจ๋
mongos
์ธ์คํด์ค์ ๋ํด
<prefix>-<resource-name>-mongos-cert
.
X.509 ๋๋ X.509 ๋ฐ TLS๋ฅผ ์ฌ์ฉํ ๋ด๋ถ ์ธ์ฆ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ, Kubernetes Operator๋ ํด๋น ์ธ์ฆ์์ ํ์ํ ๊ตฌ์ฑ์ด ํฌํจ๋์ด ์๋์ง ํ์ธํฉ๋๋ค.
Kubernetes Operator๋ ํ์ํ StatefulSet๋ฅผ ์ฐพ์ ์ ๋ฐ์ดํธํ๊ฑฐ๋, StatefulSet๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์ StatefulSet๋ฅผ ์์ฑํฉ๋๋ค. StatefulSet์ ์๋ MongoDB ๋ฆฌ์์ค ์ ํ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค.
ReplicaSet
๋๋Standalone
๋ฆฌ์์ค์ ๊ฒฝ์ฐ Kubernetes Operator๋ ๋จ์ผ StatefulSet๋ฅผ ์์ฑํฉ๋๋ค.ShardedCluster
๋ฆฌ์์ค์ ๊ฒฝ์ฐ Kubernetes Operator๋ ๋ค์์ ์์ฑํฉ๋๋ค.๋ชจ๋ Config ์๋ฒ์ ๋ํด ํ๋์ StatefulSet.
๋ชจ๋
mongos
์ธ์คํด์ค์ ๋ํด ํ๋์ StatefulSet.๊ฐ ์ค๋ ๋ ธ๋๋น ํ๋์ StatefulSet.
์ด ์์ ์์ ๊ฐ ํ๋๋ ํ๋ ์ด์์ MongoDB Agent ์ธ์คํด์ค๋ฅผ ์คํํ์ง๋ง, ์์ง
mongod
์ธ์คํด์ค๋ฅผ ํฌํจํ์ง๋ ์์ต๋๋ค.๊ฐ MongoDB Agent ์ธ์คํด์ค๋ Cloud Manager ๋๋ Ops Manager ํด๋ง์ ์์ํ์ฌ MongoDB ์๋ํ ๊ตฌ์ฑ์ ์์ ํฉ๋๋ค.
์ฐธ๊ณ
๋น์ ์ ์ปจํ ์ด๋: ๊ฐ MongoDB Agent ์ฒ์์ผ๋ก ๊ตฌ์ฑ์ ์์ ํ๋ฉด ์ MongoDB ์ง์ ๋ ๋ฒ์ ์
spec.version
๋ฐ์ด๋๋ฆฌ๋ฅผ ์ธํฐ๋ท์์ ๋ค์ด๋ก๋ํ๊ฑฐ๋,MongoDB Ops Manager ๊ฐ MongoDB Agent ๋ก์ปฌ ๋ชจ๋ ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ ์์ ๋ค์ด๋ก๋ํฉ๋๋ค.์ ์ ์ปจํ ์ด๋: ์ ์ ์ปจํ ์ด๋๋ ๋ฐํ์์ ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ์ง ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ์ ์ ์ปจํ ์ด๋(๊ณต๊ฐ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ)๋ฅผ ์ฐธ์กฐํ์ธ์.
MongoDB Agent๋ ์๋ํ ๊ตฌ์ฑ์ ์์ ํ ํ ํด๋น ํ๋์์
mongod
์ธ์คํด์ค๋ฅผ ์์ํฉ๋๋ค.StatefulSet๋ฅผ ์ ์ธํ๊ณ MongoDB ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค๊ฐ ์์ฑํ๋ ๊ฐ StatefulSet์ ๊ฐ ํ๋์
mongos
๋ํด Kubernetes Operator๋ Persistent Volume Claim ์ ์์ฑํฉ๋๋ค. . ๋ฆฌ์์ค ์ฌ์์์spec.persistent
๋ฅผfalse
๋ก ์ค์ ํ์ฌ ์ด ๋์์ ์ฌ์ ์ํ ์ ์์ต๋๋ค.
Kubernetes Operator๋ MongoDB Agent๋ก๋ถํฐ ์์ ํ ์๋ํ ๊ตฌ์ฑ์ ์ฌ์์ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ ๋ฐ์ดํธํ์ฌ Cloud Manager ๋๋ Ops Manager๋ก ์ ์กํฉ๋๋ค.
๊ฐ ํ๋์ ๋ํ ๊ฐ MongoDB Agent๋ Cloud Manager ๋๋ Ops Manager๋ฅผ ๋ค์ ํด๋งํ๊ณ ์ ๋ฐ์ดํธ๋ ์๋ํ ๊ตฌ์ฑ์ ์์ ํฉ๋๋ค.
์ฌ์์ ํ๋๋ฅผ ๋ณ๊ฒฝํ๋ฉด Kubernetes Operator๊ฐ ๋กค๋ง ์ ๋ฐ์ดํธ ๋ฅผ ์ํํฉ๋๋ค. StatefulSets์ ์ ์ฌ์๊ณผ ์ผ์นํ๋ ์ ํ๋๋ฅผ ์์ํฉ๋๋ค.
Kubernetes Operator๋ ๊ฐ MongoDB Agent๊ฐ ์ค๋น ์ํ์ ๋๋ฌํ๋ค๊ณ ๋ณด๊ณ ํ ๋๊น์ง ๊ธฐ๋ค๋ฆฝ๋๋ค.
์ฐธ๊ณ
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฆฌ์์ค ์ ๋ณด์ ๊ตฌ์ฑ ์ ๋ณ๊ฒฝํ๊ฑฐ๋ 6 ํ์ฅํ๋ค 5 ํ๋ ๊ฒฝ์ฐ ๊ธฐ์กด StatefulSet์์ Kubernetes Operator๋ ๋จ๊ณ๋ฅผ ์คํํ๊ธฐ ์ ์ ๋จ๊ณ๋ฅผ ์คํํฉ๋๋ค.
Kubernetes Operator๋ Kubernetes ์๋น์ค๋ฅผ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์๋ก์ด MongoDB ๋ฆฌ์์ค์ ๊ฒฝ์ฐ ๊ฐ๊ฐ์ ์๋ก์ด StatefulSet์ ํ์ํ ์๋น์ค๋ฅผ ์์ฑํฉ๋๋ค.
ServiceType
ClusterIP
์ ๊ฒฝ์ฐ , Kubernetes Operator๋ClusterIP
๋ฅผNone
๋ก ์ค์ ํ๊ณ ๋ค์ ์กฐ์น๋ฅผ ์ํํฉ๋๋ค.์ด ์๋น์ค๊ฐ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์์ฑํฉ๋๋ค.
ReplicaSet
๋๋Standalone
๋ฆฌ์์ค์ ๊ฒฝ์ฐ, Kubernetes Operator๋ ์ฌ์ฉ์ ์ ์ ๋ฆฌ์์ค์ ์ด๋ฆ์-svc
์(๋ฅผ) ์ถ๊ฐํ์ฌ ์๋น์ค ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.ShardedCluster
๋ฆฌ์์ค์ ๊ฒฝ์ฐ, Kubernetes Operator๋ ์ด๋ฌํ ๋ช ๋ช ๊ท์น์ ์ฌ์ฉํํฉ๋๋ค.mongos
์ธ์คํด์ค์ ๊ฒฝ์ฐ, Kubernetes Operator๋spec.service
์ ์ง์ ๋ ์ด๋ฆ ๋๋-svc
์ด ์ถ๊ฐ๋ ๋ฆฌ์์ค ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.Config ์๋ฒ์ ๊ฒฝ์ฐ Kubernetes Operator๋
-cs
๊ฐ ์ถ๊ฐ๋ ๋ฆฌ์์ค ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.๊ฐ ์ค๋์ ๊ฒฝ์ฐ Kubernetes Operator๋
-sh
๊ฐ ์ถ๊ฐ๋ ๋ฆฌ์์ค ์ด๋ฆ์ ์ฌ์ฉํฉ๋๋ค.
ํฌํธ์ ๊ฒฝ์ฐ Kubernetes Operator๋ ๊ธฐ๋ณธ ํฌํธ 27017 ๋๋ ์ ์ง์ ๋ .net.port ๋ฅผ
spec.additionalMongodConfig
์ฌ์ฉํฉ๋๋ค.
MongoDBUser
์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค ์กฐ์
์ฌ์ฉ์ ์ธ์ฆ ๋ฐฉ๋ฒ์ด SCRAM ์ผ๋ก ์ค์ ๋ ๊ฒฝ์ฐ, MongoDB ์ฌ์ฉ์ ๋ฆฌ์์ค ์ฌ์ ์ ์ฌ์ฉ์ ์๊ฒฉ ์ฆ๋ช
์ ์ ์ฅํ๋ ์ํฌ๋ฆฟ ์ ์ฅ์ ๋๊ตฌ ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. Kubernetes spec.passwordSecretKeyRef
์ํฌ๋ฆฟ MongoDBUser
์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฆฌ์์ค ์ฌ์์ ์ค์ ์์ ์ํฌ๋ฆฟ์ ์ง์ ํฉ๋๋ค.
Kubernetes Operator๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํ ์ํฌ๋ฆฟ์ ๊ฐ์ํฉ๋๋ค. ์ํฌ๋ฆฟ ๊ตฌ์ฑ์ ๋ณ๊ฒฝํ๋ฉด Kubernetes Operator๊ฐ ๋ณ๊ฒฝ ์ฌํญ์ ์กฐ์ ํฉ๋๋ค. ๋ค์ ์์ ์ ์ํํฉ๋๋ค.
MongoDB ์ฌ์ฉ์ ๋ฆฌ์์ค ์ฌ์์
spec.MongoDBResourceRef.name
์ค์ ์ ์ง์ ๋ ๊ฐ์ ๋ฐ๋ผ MongoDB ์ฌ์ฉ์์ ๋ฆฌ์์ค๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.Cloud Manager ๋๋ Ops Manager์ ์ฐ๊ฒฐํฉ๋๋ค.
ConfigMap์
orgId
์์ ์กฐ์ง์ ์ฝ์ต๋๋ค.ConfigMap์
projectName
์์ ํ๋ก์ ํธ ์ด๋ฆ์ ์ฝ๊ฑฐ๋ ์ด ํ๋ก์ ํธ๊ฐ ์๋ ๊ฒฝ์ฐ Cloud Manager ๋๋ Ops Manager์์ ์ด ํ๋ก์ ํธ๋ฅผ ๋ง๋ญ๋๋ค.MongoDB Agent์ฉ์ผ๋ก Kubernetes Operator๊ฐ ์์ฑํ
<project-id>-group-secret
์ด(๊ฐ) ์กด์ฌํ๋์ง ํ์ธํฉ๋๋ค. Kubernetes Operator๋ ์ํฌ๋ฆฟ ์ ์ฅ์ ๋๊ตฌ ์์ ์ํฌ๋ฆฟ์ ์ฝ๊ฑฐ๋ MongoDB Ops Manager API ํค ๋๋ Cloud Manager API ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ํฌ๋ฆฟ์ ์์ฑํฉ๋๋ค.
Cloud Manager ๋๋ Ops Manager์์ ์ฌ์ฉ์์ ์๊ฒฉ ์ฆ๋ช ์ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์กด์ฌํ์ง ์๋ ๊ฒฝ์ฐ ์ ์ฌ์ฉ์๋ฅผ ์์ฑํฉ๋๋ค.
์ฌ์ฉ์ ์ธ์ฆ ๋ฉ์๋๊ฐ SCRAM์ธ ๊ฒฝ์ฐ ์ํฌ๋ฆฟ์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฝ์ต๋๋ค.
์ฌ์ฉ์ ์ด๋ฆ์ ์ฝ์ต๋๋ค. ์ฌ์ฉ์ ์ด๋ฆ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ Kubernetes Operator๋ ์ด์ ์ด๋ฆ์ ์ ๊ฑฐํ๊ณ ์ ์ด๋ฆ์ ์ถ๊ฐํฉ๋๋ค.
Cloud Manager ๋๋ Ops Manager์ ์ฌ์ฉ์๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
๋ค์ ๋ค์ด์ด๊ทธ๋จ์ ์ฌ์ฉ์ ์ํฌ๋ฆฟ ๋๋ MongoDB ์ฌ์ฉ์ ๋ฆฌ์์ค ์ฌ์์ ๋ณ๊ฒฝํ ๊ฒฝ์ฐ Kubernetes Operator๊ฐ ์ด๋ป๊ฒ ๋์ํ๋์ง ์ค๋ช ํฉ๋๋ค.