MongoDBMongoDB Enterprise Kubernetes Operator ์ํฐํ๋ผ์ด์ฆ Kubernetes Operator kubectl ๋ฐ oc ์ค์น ์ค์
์ด ํ์ด์ง์ ๋ด์ฉ
- AGENT_IMAGE
- APPDB_AGENT_VERSION
- APPDB_IMAGE_REPOSITORY
- CLUSTER_CLIENT_TIMEOUT
- DATABASE_VERSION
- IMAGE_PULL_POLICY
- INIT_APPDB_IMAGE_REPOSITORY
- INIT_APPDB_VERSION
- INIT_DATABASE_IMAGE_REPOSITORY
- INIT_DATABASE_VERSION
- INIT_OPS_MANAGER_IMAGE_REPOSITORY
- INIT_OPS_MANAGER_VERSION
- LOG_FILE_PATH
- MANAGED_SECURITY_CONTEXT
- MDB_AGENT_IMAGE_REPOSITORY
- MDB_APPDB_ASSUME_OLD_FORMAT
- MDB_AUTOMATIC_RECOVERY_ENABLE
- MDB_AUTOMATIC_RECOVERY_BACKOFF_TIME_S
- MDB_DEFAULT_ARCHITECTURE
- MDB_IMAGE_TYPE
- MDB_WITH_AGENT_FILE_LOGGING
- MDB_MAX_CONCURRENT_RECONCILES
- MONGODB_Enterprise_DATABASE_IMAGE
- OPERATOR_ENV
- OPS_MANAGER_IMAGE_PULL_POLICY
- OPS_MANAGER_IMAGE_REPOSITORY
- READINESS_PROBE_LOGGER_BACKUPS
- READINESS_PROBE_LOGGER_COMPRESS
- READINESS_PROBE_LOGGER_MAX_SIZE
- READINESS_PROBE_LOGGER_MAX_AGE
- WATCH_NAMESPACE
์ ํ์ ์ค์ ์ ์ ๊ณตํ๋ ค๋ฉด Kubernetes ์ฐ์ฐ์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ๋ณต์ ํ ๋๋ ํ ๋ฆฌ์์ ๋ฐฐํฌ ์ ํ์ ํด๋นํ๋ YAML ํ์ผ์ ํธ์งํฉ๋๋ค.
kubectl ์ ์ฌ์ฉํ๋ ๋ฐ๋๋ผ Kubernetes : mongodb-enterprise.yaml
oc ๋ฅผ ์ฌ์ฉํ๋ OpenShift : mongodb-enterprise-openshift.yaml
์ถ๊ฐํ๋ ค๋ ์ค์ ์ด YAML ํ์ผ์ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ spec.emplate.spec.containers.name.env์ ํค-๊ฐ ์ ๋งคํ์ ์ ๋ฐฐ์ด๋ก ์ถ๊ฐํฉ๋๋ค. collection:
spec. Template.spec.containers.name.env.name ํค ๊ฐ์ ์ค์ ์ด๋ฆ์ผ๋ก ์ค์ ํฉ๋๋ค.
spec.sample.spec.containers.name.env.value ํค์ ๊ฐ์ ์ค์ ์ ๊ฐ์ผ๋ก ์ค์ ํฉ๋๋ค.
์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ๊ฐ์ ์ ๋ ฅํ๋ ค๋ฉด ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: INIT_APPDB_IMAGE_REPOSITORY 11 value: quay.io/mongodb/mongodb-enterprise-init-appdb-ubi
AGENT_IMAGE
Kubernetes Operator๊ฐ ๋น์ ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฐํฌ๋ฅผ ์ํด MongoDB Agent ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ ์ URL ์ ๋๋ค. MongoDB Agent ๋ฒ์ ์ ํฌํจํฉ๋๋ค. ํ์ต ๋ณด๋ ค๋ฉด ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: AGENT_IMAGE 11 value: quay.io/mongodb/mongodb-agent-ubi:<version>
APPDB_AGENT_VERSION
์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ฌ์ฉํ๋ MongoDB Agent๊ฐ ํฌํจ๋ ์ด๋ฏธ์ง์ ๋ฒ์ ์ ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 10.2.15.5958-1_4.2.11-ent์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: APPDB_AGENT_VERSION 11 value: 10.2.15.5958-1_4.2.11-ent
APPDB_IMAGE_REPOSITORY
Kubernetes ์ฐ์ฐ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ URL ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: APPDB_IMAGE_REPOSITORY 11 value: quay.io/mongodb/mongodb-enterprise-appdb-ubi
CLUSTER_CLIENT_TIMEOUT
Kubernetes Operator๊ฐ ํด๋ฌ์คํฐ์ Kubernetes API ์๋ฒ ์ ์ฐ๊ฒฐ์ ์๋ํ๋ ์๊ฐ(์ด) ์๋ํฌ์ธํธ. ์ด ์๊ฐ ์ ํ์ ๋ค์ค Kubernetes ํด๋ฌ์คํฐ MongoDB ๋ฐฐํฌ์ ๋ชจ๋ Kubernetes ํด๋ฌ์คํฐ์ ๋ํด ์ค์ ๋ฉ๋๋ค. Kubernetes Operator๊ฐ ์ง์ ๋ ์๊ฐ ๋ด์ Kubernetes API ์๋ฒ๋ก๋ถํฐ ์๋ต์ ๋ฐ์ง ๋ชปํ๋ฉด ํด๋ฌ์คํฐ ์ํ๋ฅผ '๋น์ ์'์ผ๋ก ๊ธฐ๋กํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ Kubernetes ํด๋ฌ์คํฐ ๋ฌธ์ ํด๊ฒฐ์ ์ฐธ์กฐํ์ธ์.
๊ธฐ๋ณธ๊ฐ์ 10 ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: CLUSTER_CLIENT_TIMEOUT 11 value: 10
DATABASE_VERSION
Kubernetes ์ฐ์ฐ์๊ฐ ๋ฐฐํฌํ๋ MongoDB Enterprise ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฏธ์ง์ ๋ฒ์ ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: DATABASE_VERSION 11 value: 1.29
IMAGE_PULL_POLICY
pull ์ ์ฑ Kubernetes Operator๊ฐ ๋ฐฐํฌํ๋ MongoDB Enterprise ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ.
Kubernetes ์ฐ์ฐ์๋ ํญ์, IfNotPresent, ์ ๋ ๊ฐ์ ํ์ฉํ์ง ์์ต๋๋ค.
๊ธฐ๋ณธ๊ฐ์ ํญ์ ์ ๋๋ค.
INIT_APPDB_IMAGE_REPOSITORY
์ ํ๋ฆฌ์ผ์ด์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์คํฌ๋ฆฝํธ ๋ฐ ์ค๋น์ฑ ํ๋ก๋ธ๊ฐ ํฌํจ๋ initContainer
์ด๋ฏธ์ง๊ฐ ๋ค์ด๋ก๋๋๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ URL ์
๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: INIT_APPDB_IMAGE_REPOSITORY 11 value: quay.io/mongodb/mongodb-enterprise-init-appdb-ubi
INIT_APPDB_VERSION
์ ํ๋ฆฌ์ผ์ด์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ ์คํฌ๋ฆฝํธ ๋ฐ ์ค๋น์ฑ ํ๋ก๋ธ๊ฐ ํฌํจ๋ initContainer
์ด๋ฏธ์ง์ ๋ฒ์ ์
๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 1.29 ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: INIT_APPDB_VERSION 11 value: 1.29
INIT_DATABASE_IMAGE_REPOSITORY
MongoDB Agent ์์ ์คํฌ๋ฆฝํธ ๋ฐ ์ค๋น์ฑ ํ๋ก๋ธ๊ฐ ํฌํจ๋ initContainer
์ด๋ฏธ์ง๊ฐ ๋ค์ด๋ก๋๋๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ URL ์
๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: INIT_DATABASE_IMAGE_REPOSITORY 11 value: quay.io/mongodb/mongodb-enterprise-init-database-ubi
INIT_DATABASE_VERSION
MongoDB Agent ์์ ์คํฌ๋ฆฝํธ ๋ฐ ์ค๋น์ฑ ํ๋ก๋ธ๊ฐ ํฌํจ๋ initContainer
์ด๋ฏธ์ง์ ๋ฒ์ ์
๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 1.29 ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: INIT_DATABASE_VERSION 11 value: 1.29
INIT_OPS_MANAGER_IMAGE_REPOSITORY
Ops Manager ์์ ์คํฌ๋ฆฝํธ ๋ฐ ์ค๋น์ฑ ํ๋ก๋ธ๊ฐ ํฌํจ๋ initContainer
์ด๋ฏธ์ง๊ฐ ๋ค์ด๋ก๋๋๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ URL ์
๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: INIT_OPS_MANAGER_IMAGE_REPOSITORY 11 value: quay.io/mongodb/mongodb-enterprise-init-ops-manager-ubi
INIT_OPS_MANAGER_VERSION
Ops Manager ์์ ์คํฌ๋ฆฝํธ ๋ฐ ์ค๋น์ฑ ํ๋ก๋ธ๊ฐ ํฌํจ๋ initContainer
์ด๋ฏธ์ง์ ๋ฒ์ ์
๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 1.29 ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: INIT_OPS_MANAGER_VERSION 11 value: 1.29
LOG_FILE_PATH
Readiness Probe์์ ์ ์ง ๊ด๋ฆฌํ๋ ์ํ๋ readiness.log
๋ฐฑ์
ํ์ผ์ ๊ฒฝ๋ก์
๋๋ค.
๊ธฐ๋ณธ๊ฐ์ /var/log/mongodb-mms-automation/readiness.log
์
๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: LOG_FILE_PATH 11 value: /var/log/mongodb-mms-automation/readiness.log
MANAGED_SECURITY_CONTEXT
Kubernetes Operator๊ฐ Kubernetes cluster๊ฐ managedํ๋ securityContext ์ค์ ์ ์์ํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ํ๋๊ทธ์ ๋๋ค.
OpenShift ๋๋ ์ ํ์ ์ธ ํ๊ฒฝ์์ Kubernetes Operator๋ฅผ ์คํํ๋ ค๋ฉด ์ด ๊ฐ์ด true ์ฌ์ผ ํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ false ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: MANAGED_SECURITY_CONTEXT 11 value: false
๊ธฐ๋ณธ๊ฐ์ true ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: MANAGED_SECURITY_CONTEXT 11 value: true
MDB_AGENT_IMAGE_REPOSITORY
Kubernetes Operator๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฐํฌ๋ฅผ ์ํด MongoDB Agent ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๋ ๋ฆฌํฌ์งํ ๋ฆฌ์ URL ์ ๋๋ค. ์์ธํ ์์๋ณด๋ ค๋ฉด ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ฐธ์กฐํ์ธ์.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: MDB_AGENT_IMAGE_REPOSITORY 11 value: quay.io/mongodb/mongodb-agent-ubi
MDB_APPDB_ASSUME_OLD_FORMAT
Kubernetes Operator 1.20 ์์ ์ปจํ
์ด๋ ๋ ์ง์คํธ๋ฆฌ ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฏธ์ง์ ๋ํด ๋ณ๊ฒฝ๋์์ผ๋ฉฐ ์ด๋ฏธ์ง๋ ์ ํ๊ทธ๋ฅผ ์ง์ ํ๋ค ์ ๋ฏธ์ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Kubernetes Operator๋ฅผ ์
๊ทธ๋ ์ด๋ ํ๋ฉด Kubernetes Operator Kubernetes ์ ์ปจํ
์ด๋ ๋ ์ง์คํธ๋ฆฌ๋ฅผ -ubi8
๋๋ MDB_IMAGE_TYPE ๋๋ mongodb.imageType์ ์ค์ ํ๋ค ์ ๋ฏธ์ฌ๋ก ์ฐธ์กฐํ๋ ๋ชจ๋ ์ด๋ฏธ์ง์ ๋ํด ์ด์ ์ ๋ฏธ์ฌ -ent
๋ฅผ ์๋์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
์๋ฅผ ๋ค์ด, Kubernetes ์ฐ์ฐ์๋ quay.io/mongodb/mongodb-enterprise-server:4.4.5-ent
์ quay.io/mongodb/mongodb-enterprise-server:4.4.5-ubi8
๋ก ๋ณ๊ฒฝํฉ๋๋ค.
Kubernetes ์ฐ์ฐ์๊ฐ ์ ๋ฏธ์ฌ๋ฅผ ์๋์ผ๋ก ์
๋ฐ์ดํธํ์ง ์๋๋ก ํ๋ ค๋ฉด MDB_APPDB_ASSUME_OLD_FORMAT ๋๋ mongodb.appdbAssumeOldFormat ์ true
๋ก ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์์ฒด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ด ์ด๋ฏธ์ง๋ฅผ ๋ฏธ๋ฌ๋งํ๋ ๊ฒฝ์ฐ ์๋ ์ ๋ฏธ์ฌ ๋ณ๊ฒฝ์ ์ค์งํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ๊ฐ์ false
์ด๋ฉฐ, ์ด๋ฏธ์ง ์ ๋ฏธ์ฌ๋ฅผ ์๋์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: MDB_APPDB_ASSUME_OLD_FORMAT 11 value: false
MDB_AUTOMATIC_RECOVERY_ENABLE
Kubernetes ์ฐ์ฐ์๊ฐ ํ๋๋น MongoDB
๋ฆฌ์์ค์ ๋ํ ์๋ ๋ณต๊ตฌ๋ฅผ ํ์ฑํํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ ํ๋๊ทธ์
๋๋ค.
๊ธฐ๋ณธ๊ฐ์ true ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: MDB_AUTOMATIC_RECOVERY_ENABLE 11 value: false
MDB_AUTOMATIC_RECOVERY_BACKOFF_TIME_S
Kubernetes ์ฐ์ฐ์๊ฐ MongoDB
๋ฆฌ์์ค๋ฅผ ์๋์ผ๋ก ๋ณต๊ตฌํ๊ธฐ ์ ์ ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค๊ฐ Pending
๋๋ Failed
์ํ๋ก ์ ์ง๋ ์ ์๋ ์๊ฐ(์ด)์
๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 1200 ์ด(20๋ถ)์ ๋๋ค.
์๋ ๋ณต๊ตฌ๋ฅผ ๋นํ์ฑํํ๋ ค๋ฉด MDB_AUTOMATIC_RECOVERY_ENABLE ํ๊ฒฝ ๋ณ์๋ฅผ false
๋ก ์ค์ ํ๋ค ํฉ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: MDB_AUTOMATIC_RECOVERY_BACKOFF_TIME_S 11 value: 3600
MDB_DEFAULT_ARCHITECTURE
๋ชจ๋ ๋ฐฐํฌ์์ ์ฌ์ฉํ๋ ์ปจํ ์ด๋ ์ํคํ ์ฒ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
๋ฐํ์์ MongoDB ๋ฐ์ด๋๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ธฐ๋ณธ ๋น์ ์ ์ปจํ ์ด๋ ๋๋
๋ฐํ์์ ๋ณ๊ฒฝ๋์ง ์๋ ์ ์ ์ปจํ ์ด๋(๊ณต๊ฐ ๋ฏธ๋ฆฌ ๋ณด๊ธฐ) ์ ๋๋ค.
๋จ์ผ ๋ฐฐํฌ์๋ฒ ์ ๋ํด ์ ์ ์ปจํ
์ด๋๋ฅผ ํ์ฑํ ํ๋ ค๋ฉด metadata.annotations.mongodb.com/v1.architecture
MongoDB ๋ฆฌ์์ค ์์ ๋ฅผ ๋์ ์ฌ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ non-static
์
๋๋ค.
์ ์ ์ปจํ
์ด๋๋ฅผ ํ์ฑํํ๋ ค๋ฉด static
์ผ๋ก ์ค์ ํฉ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: MDB_DEFAULT_ARCHITECTURE 11 value: static
MDB_IMAGE_TYPE
์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฏธ์ง์ ์ ๋ฏธ์ฌ์ ๋๋ค.
Kubernetes Operator 1.20 ์์ ์ปจํ
์ด๋ ๋ ์ง์คํธ๋ฆฌ ๊ฐ ์ ํ๋ฆฌ์ผ์ด์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฏธ์ง์ ๋ํด ๋ณ๊ฒฝ๋์์ผ๋ฉฐ ์ด๋ฏธ์ง๋ ์ ํ๊ทธ๋ฅผ ์ง์ ํ๋ค ์ ๋ฏธ์ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. Kubernetes Operator๋ฅผ ์
๊ทธ๋ ์ด๋ ํ๋ฉด Kubernetes Operator Kubernetes ์ ์ปจํ
์ด๋ ๋ ์ง์คํธ๋ฆฌ๋ฅผ -ubi8
๋๋ MDB_IMAGE_TYPE ๋๋ mongodb.imageType์ ์ค์ ํ๋ค ์ ๋ฏธ์ฌ๋ก ์ฐธ์กฐํ๋ ๋ชจ๋ ์ด๋ฏธ์ง์ ๋ํด ์ด์ ์ ๋ฏธ์ฌ -ent
๋ฅผ ์๋์ผ๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
์๋ฅผ ๋ค์ด, Kubernetes ์ฐ์ฐ์๋ quay.io/mongodb/mongodb-enterprise-server:4.4.5-ent
์ quay.io/mongodb/mongodb-enterprise-server:4.4.5-ubi8
๋ก ๋ณ๊ฒฝํฉ๋๋ค.
Kubernetes ์ฐ์ฐ์๊ฐ ์ ๋ฏธ์ฌ๋ฅผ ์๋์ผ๋ก ์
๋ฐ์ดํธํ์ง ์๋๋ก ํ๋ ค๋ฉด MDB_APPDB_ASSUME_OLD_FORMAT ๋๋ mongodb.appdbAssumeOldFormat ์ true
๋ก ์ค์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์์ฒด ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ด ์ด๋ฏธ์ง๋ฅผ ๋ฏธ๋ฌ๋งํ๋ ๊ฒฝ์ฐ ์๋ ์ ๋ฏธ์ฌ ๋ณ๊ฒฝ์ ์ค์งํ ์ ์์ต๋๋ค.
๊ธฐ๋ณธ๊ฐ์ -ubi8
์
๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: MDB_IMAGE_TYPE 11 value: ubi8
MDB_WITH_AGENT_FILE_LOGGING
kubectl describe
์คํ ๋์ ๊ฐ์ด ๋ก๊ทธ ํ์ผ์ ํ์ค ์ถ๋ ฅ์ผ๋ก ์ถ๋ ฅํ ์ง ์ฌ๋ถ๋ฅผ ์ ์ดํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ true
์
๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: MDB_WITH_AGENT_FILE_LOGGING 11 value: true
MDB_MAX_CONCURRENT_RECONCILES
Kubernetes Operator๊ฐ ์ํํ ์ ์๋ ๋์ ์กฐ์ ํ๋ก์ธ์ค์ ์์ ๋๋ค.
์์
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - env: 7 - name: MDB_MAX_CONCURRENT_RECONCILES 8 value: "10"
MONGODB_Enterprise_DATABASE_IMAGE
Kubernetes ์ฐ์ฐ์๊ฐ ๋ฐฐํฌํ๋ MongoDB Enterprise ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด๋ฏธ์ง์ URL ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: MONGODB_ENTERPRISE_DATABASE_IMAGE 11 value: quay.io/mongodb/mongodb-enterprise-database-ubi
OPERATOR_ENV
Kubernetes ์ฐ์ฐ์ ๋ฐฐํฌ ํ๊ฒฝ์ ๋ ์ด๋ธ์ ๋๋ค. ์ด ๊ฐ์ ๊ธฐ๋ณธ ์๊ฐ ์ด๊ณผ์ ๋ก๊น ์์ค ๋ฐ ํ์์ ์ํฅ์ ์ค๋๋ค.
๊ฐ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. | ๋ก๊ทธ ์์ค์ด ๋ค์์ผ๋ก ์ค์ ๋ ๊ฒฝ์ฐ | ๋ก๊ทธ ํ์์ด ๋ค์์ผ๋ก ์ค์ ๋ ๊ฒฝ์ฐ |
---|---|---|
dev | debug | text |
prod | ์ ๋ณด | JSON |
๊ธฐ๋ณธ๊ฐ์ prod ์ ๋๋ค.
OPS_MANAGER_IMAGE_PULL_POLICY
pull ์ ์ฑ Operator๊ฐ ๋ฐฐํฌํ๋ MongoDB Ops Manager ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ.Kubernetes
Kubernetes ์ฐ์ฐ์๋ ํญ์, IfNotPresent ๋ฐ ์ ๋ ๊ฐ์ ํ์ฉํ์ง ์์ต๋๋ค.
๊ธฐ๋ณธ๊ฐ์ ํญ์ ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: OPS_MANAGER_IMAGE_PULL_POLICY 11 value: Always
OPS_MANAGER_IMAGE_REPOSITORY
Ops Manager ๋ฆฌ์์ค ์ ์ด๋ฏธ์ง๊ฐ ๋ค์ด๋ก๋๋๋ ๋ฆฌํฌ์งํ ๋ฆฌ์URL ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: OPS_MANAGER_IMAGE_REPOSITORY 11 value: quay.io/mongodb/mongodb-enterprise-ops-manager-ubi
READINESS_PROBE_LOGGER_BACKUPS
์ค๋น์ฑ ํ๋ก๋ธ์์ ์ ์ง ๊ด๋ฆฌํ๋ ์ํ๋ readiness.log
๋ฐฑ์
ํ์ผ์ ์์
๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 5 ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: READINESS_PROBE_LOGGER_BACKUPS 11 value: 1
READINESS_PROBE_LOGGER_COMPRESS
Readiness Probe์์ ์ ์ง ๊ด๋ฆฌํ๋ ์ํ๋ readiness.log
๋ฐฑ์
ํ์ผ์ readiness.log.gz
ํ์ผ๋ก ์์ถํ ์ง ์ฌ๋ถ๋ฅผ ์ ์ดํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ ์ false
์ด๋ฉฐ, readiness.log
ํ์ผ์ ์์ถ๋์ง ์์ ์ํ๋ก ์ ์ง๋ฉ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: READINESS_PROBE_LOGGER_COMPRESS 11 value: true
READINESS_PROBE_LOGGER_MAX_SIZE
readiness.log
ํ์ผ์ ์ต๋ ํฌ๊ธฐ(MB)์
๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 100 ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: READINESS_PROBE_LOGGER_MAX_SIZE 11 value: 125
READINESS_PROBE_LOGGER_MAX_AGE
ํ์ผ ํ์์คํฌํ์ ๋ ์ง๋ถํฐ ์์ํ์ฌ ๋กํ
์ด์
๋ readiness.log
ํ์ผ์ ๋ณด๊ดํ ์ต๋ ์ผ์์
๋๋ค. 0 ์ผ๋ก ์ค์ ํ๋ฉด Kubernetes Operator๋ ๊ธฐ๊ฐ์ ๊ธฐ์ค์ผ๋ก readiness.log
ํ์ผ์ ์ ๊ฑฐํ์ง ์๊ณ ๋์ READINESS_PROBE_LOGGER_BACKUPS
์ ๋ฐ๋ผ ๋ณด์กด์ ๊ฒฐ์ ํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 0 ์ ๋๋ค.
1 spec: 2 template: 3 spec: 4 serviceAccountName: mongodb-enterprise-operator 5 containers: 6 - name: mongodb-enterprise-operator 7 image: <operatorVersionUrl> 8 imagePullPolicy: <policyChoice> 9 env: 10 - name: READINESS_PROBE_LOGGER_MAX_AGE 11 value: 3
WATCH_NAMESPACE
Kubernetes Operator๊ฐ MongoDB
๋ฆฌ์์ค ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ํ๋ ๋ค์์คํ์ด์ค์
๋๋ค. ์ด ๋ค์์คํ์ด์ค ๊ฐ ๊ธฐ๋ณธ๊ฐ๊ณผ ๋ค๋ฅธ ๊ฒฝ์ฐ, Kubernetes Operator ServiceAccount ๊ฐ ์ก์ธ์คํ ์ ์๋์ง ํ์ธํ์ธ์. ์ด ๋ค์์คํ์ด์ค.
๋ชจ๋ ๋ค์์คํ์ด์ค ๋ฅผ ๊ฐ์ํ๋ ค๋ฉด * ๋ฅผ ์ง์ ํ๊ณ ClusterRole ์
mongodb-enterprise-operator
ํ ๋นํฉ๋๋ค. Kubernetes Operator๋ฅผ ์คํํ๋ ๋ฐ ์ฌ์ฉํ๋ ServiceAccount์ ์ถ๊ฐํฉ๋๋ค.๋ชจ๋ ๋ค์์คํ์ด์ค์ ํ์ ์งํฉ ์ ๊ฐ์ํ๋ ค๋ฉด ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ชฉ๋ก์ผ๋ก ์ง์ ํ๊ณ ๊ฐ ์ผํ๋ฅผ ๋ฐฑ์ฌ๋์๋ก ์ด์ค์ผ์ดํ ์ฒ๋ฆฌํ ๋ค์ ๋ชฉ๋ก์ ๋ฐ์ดํ๋ก ๋ฌถ์ต๋๋ค(์:
"operator.watchNamespace=ns1\,ns2"
.
๋ค์์คํ์ด์ค์ ํ์ ์งํฉ์ ๊ฐ์ํ๋ ๊ฒ์ ๋จ์ผ Kubernetes ์ฐ์ฐ์ ์ธ์คํด์ค๊ฐ ๋ค๋ฅธ ํด๋ฌ์คํฐ ๋ฆฌ์์ค ์ ํ์ ๊ฐ์ํ๋ ๋ฐฐํฌ์์ ์ ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ค์์คํ์ด์ค์ ํ ํ์ ์งํฉ์์ MongoDB
๋ฆฌ์์ค๋ฅผ ๊ฐ์ํ๊ณ ๋ค์์คํ์ด์ค์ ๋ค๋ฅธ ํ์ ์งํฉ์์ MongoDBMultiCluster
๋ฆฌ์์ค๋ฅผ ๊ฐ์ํ๋๋ก Kubernetes ์ฐ์ฐ์๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ๋ฆฌ์์ค ์กฐ์ ์ค์ ๊ฒฝํฉ ์ํ๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด Kubernetes ์ฐ์ฐ์๊ฐ ๊ฐ์ํ๋ ค๋ ๊ฐ ์ฌ์ฉ์ ์ง์ ๋ฆฌ์์ค ์ ํ์ ๋ํด ๋ฒ์๋ฅผ ๋ค์์คํ์ด์ค์ ๊ณ ์ ํ ํ์ ์งํฉ์ผ๋ก ์ค์ ํด์ผ ํฉ๋๋ค.
์ค์
ํ๋ ์ด์์ ๋ค์์คํ์ด์ค ์ MongoDB Ops Manager ๋ฐ ๋ฆฌ์์ค๋ฅผ MongoDB
Kubernetes ๋ฐฐํฌํ๋ ค๋ฉด ๋ค์์ ์ํํฉ๋๋ค. Operator๋ฅผ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ ์ธ์ ์ฌ์ฉํด์ผ ํ๋ ๊ฐ๊ณผ ์ํํด์ผ ํ ์ถ๊ฐ ๋จ๊ณ๋ ๋ฐฐํฌ์ ๋ฒ์ ์ค์ ์ ์ฐธ์กฐํ์ธ์.MongoDB Enterprise Kubernetes Operator
๊ธฐ๋ณธ๊ฐ์ <metadata.namespace> ์ ๋๋ค.