Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes Operator

Atlas Kubernetes Operator v1.x๋ฅผ v2.x๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

์ด ์—…๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ์— ๋”ฐ๋ผ v1.x Atlas Kubernetes Operator ๋ฐฐํฌ์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ ค๋ฉด v2.x ์˜ YAML ํ•„๋“œ ์ด๋ฆ„์ด ๋ณ€๊ฒฝ๋˜๊ณ  ๋ชจ๋“  ์ž๊ฒฉ ์ฆ๋ช…์ด ์ด์ œ Kubernetes Secret์œผ๋กœ ์ „๋‹ฌ๋˜๋ฏ€๋กœ ๊ธฐ์กด MongoDB ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค ์‚ฌ์–‘์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒˆ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐ€๋™ํ•˜๊ณ  ์—ฌ๊ธฐ์— Atlas Kubernetes Operator v2.x ๋ฅผ ๋ฐฐํฌํ•œ ๋‹ค์Œ ๊ธฐ์กด MongoDB Atlas ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค์˜ ๊ด€๋ฆฌ๋ฅผ ์ด ์ƒˆ๋กœ์šด Atlas Kubernetes Operator v2.x ๋ฐฐํฌ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

1

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

kubectl config set-cluster old --server=https://<OLD_CLUSTER_ULR>
kubectl config set-context old --cluster=old
kubectl config set-cluster new --server=https://<NEW_CLUSTER_ULR>
kubectl config set-context new --cluster=new
2

๋‹ค์Œ ๋ช…๋ น์˜ <version> ์ž๋ฆฌ ํ‘œ์‹œ์ž๋ฅผ ์›ํ•˜๋Š” Atlas Kubernetes Operator ๋ฒ„์ „์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ƒˆ๋กœ ํ”„๋กœ๋น„์ €๋‹๋œ Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์— Atlas Kubernetes Operator๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

kubectl use-context new
kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/<version>/deploy/all-in-one.yaml
3

"์ด์ „" Kubernetes ํด๋Ÿฌ์Šคํ„ฐ์—์„œ v1.x Atlas Kubernetes Operator ๋ฐฐํฌ์˜ ๋ณต์ œ๋ณธ ์ˆ˜๋ฅผ 0 ๋กœ ํ™•์žฅํ•˜์—ฌ ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ ์—ฐ๊ฒฐ๋œ MongoDB Atlas ๋ฐฐํฌ๋ฅผ ๋” ์ด์ƒ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

kubectl use-context old
kubectl scale --replicas=0 deployment.apps/mongodb-atlas-operator -n mongodb-atlas-system
4

๋‹ค์Œ ์˜ˆ์ œ์— ๋งž๊ฒŒ ๊ธฐ์กด YAML ์ •์˜๋ฅผ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ํ•„์š”์— ๋”ฐ๋ผ ๋‹ค์Œ API ์‹œํฌ๋ฆฟ ๋ฐ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ฐธ์กฐํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

CR ์„น์…˜
ํด๋ผ์šฐ๋“œ ์ œ๊ณต์ž
v1.x
v2.x

.spec.alertConfiguration.notifications

APIToken

APITokenRef

DatadogAPIKey

DatadogAPIKeyRef

FlowdockTokenAPI

FlowdockTokenAPIRef

OpsGenieAPIKey

OpsGenieAPIKeyRef

VictorOpsAPIKey

VictorOpsSecretRef

VictorOpsRoutingKey

VictorOpsSecretRef ( VictorOps ๊ฐ’์ด ๋ชจ๋‘ ์žˆ์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋จ)

.spec.encryptionAtRest

AWS

AccessKeyID, SecretAccessKey, CustomerMasterKeyID, RoleID

CloudProviderAccessRoles

Azure

SubscriptionID, KeyVaultName, KeyIdentifier, Secret

secretRef

GCP

ServiceAccountKey, KeyVersionResourceID

secretRef

์ด์ „ ๋‹จ๊ณ„์—์„œ ์—…๋ฐ์ดํŠธํ•œ ๊ฒฐ๊ณผ CRD๋Š” ๋‹ค์Œ ์˜ˆ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
labels:
app.kubernetes.io/version: 1.6.0
spec:
name: Test Atlas Operator Project
projectIpAccessList:
- ipAddress: "<Public-IP-of-K8s-Cluster>"
comment: "This IP is added to your Atlas Project's Access List."
5
  • ๊ธฐ์กด YAML ์ •์˜์— advancedDeploymentSpec ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ํ•ด๋‹น ์„น์…˜์˜ ์ด๋ฆ„์„ deploymentSpec ๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

  • ๊ธฐ์กด YAML ์ •์˜์— deploymentSpec ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค์Œ deploymentSpec ์˜ˆ์ œ์— ๋งž๊ฒŒ ํ•ด๋‹น ์„น์…˜์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

  • ๊ธฐ์กด YAML ์ •์˜์— serverlessSpec ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์ด์ „ ๋‹จ๊ณ„์—์„œ ์—…๋ฐ์ดํŠธํ•œ ๊ฒฐ๊ณผ CRD๋Š” ๋‹ค์Œ ์˜ˆ์™€ ์œ ์‚ฌํ•˜๊ฒŒ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

deploymentSpec:
clusterType: REPLICASET
name: advanced-deployment-2
mongoDBMajorVersion: "5.0"
replicationSpecs:
- regionConfigs:
regionName: EASTERN_US
- electableSpecs:
nodeCount: 4
instanceSize: M10
autoScaling:
compute:
scaleDownEnabled: true
enabled: true
minInstanceSize: M10
maxInstanceSize: M20
providerName: GCP
backingProviderName: GCP
priority: 7
regionName: US_EAST_2
- electableSpecs:
nodeCount: 1
instanceSize: M10
autoScaling:
compute:
scaleDownEnabled: true
enabled: true
minInstanceSize: M10
maxInstanceSize: M20
providerName: AWS
backingProviderName: AWS
priority: 6
6

๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์—…๋ฐ์ดํŠธ๋œ Atlas Kubernetes Operator ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐฐํฌํ•ฉ๋‹ˆ๋‹ค.

kubectl use-context new
kubectl apply -f resource.yaml
7

Atlas Kubernetes Operator 2.x ๋ฐฐํฌ์—์„œ ๋ณต์ œ๋ณธ ์ˆ˜๋ฅผ 1 ๋กœ ์„ค์ •ํ•˜์—ฌ ์ƒˆ Atlas Kubernetes Operator๊ฐ€ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค๋Š” ๊ธฐ์กด AKO 1.9.x์™€ ์˜๋ฏธ์ƒ ๋™์ผํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. MongoDB Atlas ๋ฆฌ์†Œ์Šค ์ž์ฒด๋Š” ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

8

๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ƒˆ๋กœ ๋ฐฐํฌ๋œ ์‚ฌ์šฉ์ž ์ง€์ • ๋ฆฌ์†Œ์Šค์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

kubectl use-context new
kubectl describe atlasprojects <your-project-name>
kubectl describe atlasdeployments <your-deployment-name>

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

ChangeLog