Docs Menu
Docs Home
/ /
MongoDB Atlas Kubernetes Operator
/

빠른 시작

이 페이지의 내용

  • 전제 조건
  • 절차
  • Atlas 계정에 등록하거나 로그인하세요.
  • 조직을 위한 API 키를 생성합니다.
  • Atlas Kubernetes Operator를 배포하세요.
  • API 키와 조직 ID를 사용하여 시크릿을 생성합니다.
  • AtlasProject 사용자 지정 리소스를 만듭니다.
  • AtlasDeployment 사용자 지정 리소스를 만듭니다.
  • 비밀번호로 시크릿을 생성하여 Atlas cluster 데이터베이스에 로그인하세요.
  • AtlasDatabaseUser 사용자 지정 리소스를 만듭니다.
  • 데이터베이스 사용자의 상태를 확인합니다.
  • Atlas Kubernetes Operator가 클러스터에 연결하기 위해 생성한 비밀을 조회하세요.

Atlas Kubernetes Operator를 사용하면 Kubernetes를 종료하지 않고도 Atlas로 리소스를 관리할 수 있습니다. 이 튜토리얼에서는 Atlas Kubernetes Operator를 사용하여 Kubernetes 구성 파일로부터 Atlas의 첫 클러스터를 생성하는 방법을 설명합니다.

참고

Helm으로 시작하는 것을 선호하시나요?

Atlas Kubernetes Operator 를 사용하여 Helm Charts 에서 Atlas 의 첫 번째 클러스터 를 만들려면 Helm Charts 빠른 시작을 참조하세요.

이 튜토리얼에는 다음이 필요합니다.

  • 실행 중인 Kubernetes 클러스터의 x86노드에서 -64, AMD64 또는 ARM64 아키텍처 내장 프로세서를 구동합니다.

  • jq 1.6 이상

GitHub에서 Atlas Kubernetes Operator 프로젝트에 액세스할 수 있습니다.

  • https://github.com/mongodb/mongodb-atlas-kubernetes

Atlas CLI를 사용하여 Atlas Kubernetes Operator를 설치하려면 다음 명령을 실행하세요.

atlas kubernetes operator install [options]

명령 구문 및 매개변수에 관한 자세한 사항은 Atlas Kubernetes Operator 설치에 대한 Atlas CLI 문서를 참조하십시오.

참조: 관련 링크

중요

Custom Resource(사용자 정의 리소스)는 더 이상 기본적으로 객체를 삭제하지 않음

Atlas Kubernetes Operator는 사용자 지정 리소스 구성 파일을 사용하여 Atlas 구성을 관리합니다. 다만 Atlas Kubernetes Operator 2.0부터는 Kubernetes에서 삭제한 사용자 지정 리소스가 더 이상 Atlas에서 삭제되지 않습니다. 대신 Atlas Kubernetes Operator에서는 이러한 리소스의 관리가 중단될 뿐입니다. 그 예로 Kubernetes에서 AtlasProject 사용자 지정 리소스를 삭제하는 경우, Atlas Kubernetes Operator는 Atlas에서 해당 프로젝트를 더 이상 자동으로 삭제하지 않음으로써 우발적이거나 예기치 못한 삭제를 방지할 수 있습니다. Atlas Kubernetes Operator 2.0 이전에 사용된 기본값으로 이 동작을 되돌리는 방법을 포함하여 자세한 내용은 새로운 기본값: Atlas Kubernetes Operator 2.0의 삭제 방지를 참조하세요.

마찬가지로, Atlas Kubernetes Operator 를 사용하여 Kubernetes 의 Atlas 프로젝트 에서 팀을 제거 하는 경우 Atlas Kubernetes Atlas Kubernetes Operator 는 Atlas 에서 팀을 삭제 하지 않습니다.

1

새 Atlas 계정을 등록 하거나 Atlas 계정 에 로그인합니다.

2

참고

Atlas에 대한 Atlas Kubernetes Operator 액세스 권한을 구성하려면 다음의 공개 API 키, 비공개 API 키 및 조직 ID 정보가 필요합니다.

조직에 프로그래밍 방식 액세스 권한을 부여 하고 API Access List 를 구성합니다.

Atlas에 대한 Atlas Kubernetes Operator 액세스 권한을 구성하려면 다음의 공개 API 키, 비공개 API 키 및 조직 ID 정보가 필요합니다.

3

다음 시나리오 중 하나에서 <version> 을 최신 릴리스 번호로 바꿉니다.

  • Atlas Kubernetes Operator로 Kubernetes 클러스터의 모든 네임스페이스를 감시하려면 다음 명령을 실행하세요.

    kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<version>/deploy/all-in-one.yaml
  • Atlas Kubernetes Operator가 deploy/namespaced 네임스페이스 만 감시하도록 하려는 경우 디렉토리에서 구성 파일을 설치해야 합니다.

    kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<version>/deploy/namespaced/crds.yaml
    kubectl apply -f https://raw.githubusercontent.com/mongodb/mongodb-atlas-kubernetes/v<version>/deploy/namespaced/namespaced-config.yaml
4

시크릿 을 생성하고 레이블을 지정하려면 다음을 수행합니다. , API 키 및 조직 ID를 사용하여 다음 명령을 실행합니다.

kubectl create secret generic mongodb-atlas-operator-api-key \
--from-literal="orgId=<atlas_organization_id>" \
--from-literal="publicApiKey=<atlas_api_public_key>" \
--from-literal="privateApiKey=<atlas_api_private_key>" \
-n mongodb-atlas-system
kubectl label secret mongodb-atlas-operator-api-key atlas.mongodb.com/type=credentials -n mongodb-atlas-system

외부 시크릿 저장소를 사용하는 경우 민감한 정보를 Kubernetes 시크릿 에 직접 넣을 필요가 없습니다.. 자세한 내용은 시크릿 스토리지 구성을 참조하세요.

5

다음 명령을 실행하여 AtlasProject 사용자 지정 리소스를 생성합니다.

참고

다음 예제에서는 spec.connectionSecretRef.name 를 지정하지 않습니다. 지정하지 않으면 Atlas Kubernetes Operator가 기본 연결 비밀 을 사용합니다. 이전에 API 키 및 조직 ID로 설정했습니다.

Atlas Kubernetes Operator 사용자 지정 리소스 를 배포합니다.

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasProject
metadata:
name: my-project
spec:
name: Test Atlas Operator Project
projectIpAccessList:
- ipAddress: <your-ip-address-range>
comment: "Adding your IP to Atlas access list"
EOF
6

다음 명령 중 하나를 실행하여 AtlasDeployment 사용자 지정 리소스 를 생성하고 클러스터 를 생성합니다.

유료 계층:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-atlas-cluster
spec:
projectRef:
name: my-project
deploymentSpec:
clusterType: REPLICASET
name: "Test-cluster"
tags:
- key: "environment"
value: "production"
replicationSpecs:
- zoneName: US-Zone
regionConfigs:
- electableSpecs:
instanceSize: M10
nodeCount: 3
providerName: AWS
regionName: US_EAST_1
priority: 7
EOF

무료 계층:

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDeployment
metadata:
name: my-atlas-cluster
spec:
projectRef:
name: my-project
deploymentSpec:
clusterType: REPLICASET
name: "Test-cluster"
replicationSpecs:
- regionConfigs:
- regionName: US_EAST_1
providerName: TENANT
backingProviderName: AWS
electableSpecs:
instanceSize: M0
nodeCount: 3
EOF

서버리스 인스턴스를 만들려면 서버리스 인스턴스 예시를 참조하세요.

7

P@@ssword% 을(를) 비밀번호로 바꾸고 다음 명령을 실행합니다.

kubectl create secret generic the-user-password --from-literal="password=P@@sword%"
kubectl label secret the-user-password atlas.mongodb.com/type=credentials

외부 시크릿 저장소를 사용하는 경우 민감한 정보를 Kubernetes 시크릿 에 직접 넣을 필요가 없습니다.. 자세한 내용은 시크릿 스토리지 구성을 참조하세요.

8

다음 명령을 실행하여 AtlasDatabaseUser 사용자 지정 리소스를 생성합니다.

참고

spec.passwordSecretRef 은(는) 이전에 생성된 비밀번호를 참조해야 합니다.

cat <<EOF | kubectl apply -f -
apiVersion: atlas.mongodb.com/v1
kind: AtlasDatabaseUser
metadata:
name: my-database-user
spec:
roles:
- roleName: "readWriteAnyDatabase"
databaseName: "admin"
projectRef:
name: my-project
username: theuser
passwordSecretRef:
name: the-user-password
EOF
9

데이터베이스 사용자가 준비되었음을 나타내는 True 응답을 받을 때까지 다음 명령을 실행합니다.

참고

AtlasDatabaseUser 사용자 지정 리소스 는 클러스터가 준비될 때까지 기다립니다. 새 cluster를 만드는 데 최대 10분이 걸릴 수 있습니다.

kubectl get atlasdatabaseusers my-database-user -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
10
  1. 다음 명령을 복사합니다.

    중요

    다음 명령을 실행하려면 jq 1.6 이상이 필요합니다.

    kubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)';
  2. 다음 자리 표시자를 원하는 사용자 지정 리소스의 세부 정보로 바꾸세요.

    my-project
    AtlasProject 사용자 지정 리소스metadata 필드 값을 지정합니다.
    my-atlas-cluster
    AtlasDeployment 사용자 지정 리소스metadata 필드 값을 지정합니다.
    my-database-user
    AtlasDatabaseUser 사용자 지정 리소스metadata 필드 값을 지정합니다.
  3. 명령을 실행합니다.

    참고

    연결 문자열은 다음 예제와 다를 수 있습니다.

    {
    "connectionStringStandard": "mongodb://theuser:P%40%40sword%25@test-cluster-shard-00-00.peqtm.mongodb.net:27017,test-cluster-shard-00-01.peqtm.mongodb.net:27017,test-cluster-shard-00-02.peqtm.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-pk82fl-shard-0",
    "connectionStringStandardSrv": "mongodb+srv://theuser:P%40%40sword%25@test-cluster.peqtm.mongodb.net",
    "password": "P@@sword%",
    "username": "theuser"
    }

    이 시크릿 을 사용할 수 있습니다. 다음을 수행합니다.

    containers:
    - name: test-app
    env:
    - name: "CONNECTION_STRING"
    valueFrom:
    secretKeyRef:
    name: test-atlas-operator-project-test-cluster-theuser
    key: connectionStringStandardSrv

돌아가기

시작하기