문서 메뉴

문서 홈MongoDB Atlas Kubernetes Operator

헬름 차트 빠른 시작

이 페이지의 내용

  • 전제 조건
  • 절차
  • Atlas 계정에 등록하거나 로그인하세요.
  • 조직을 위한 API 키를 생성합니다.
  • Atlas Kubernetes Operator를 배포하세요.
  • Atlas 데이터베이스 배포를 배포합니다.
  • 데이터베이스 사용자의 상태를 확인합니다.
  • Atlas Kubernetes Operator가 데이터베이스 배포서버에 연결하기 위해 만든 암호를 검색합니다.

Atlas Kubernetes Operator를 사용하면 Kubernetes를 종료하지 않고도 Atlas로 리소스를 관리할 수 있습니다. 이 튜토리얼에서는 Atlas Kubernetes Operator를 사용하여 Helm 차트에서 Atlas의 첫 번째 클러스터를 생성하는 방법을 보여줍니다.

참고

Helm 없이 시작하시겠습니까?

Atlas Kubernetes Operator를 사용하여 Kubernetes 구성 파일에서 Atlas에서 첫 번째 클러스터를 생성하려면 빠른 시작을 참조하세요.

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

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

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

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

중요

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의 삭제 방지를 참조하세요.

1

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

2

참고

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

조직에서 API(애플리케이션 프로그래밍 인터페이스) 키를 생성 하고 API Access List 를 구성합니다.

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

3

다음 명령어 세트 중 하나를 실행합니다.

  • Atlas Kubernetes Operator가 모든 네임스페이스 를 감시하도록 하려면 Kubernetes 클러스터에서 다음 명령을 실행합니다.

    helm repo add mongodb https://mongodb.github.io/helm-charts
    helm install atlas-operator --namespace=atlas-operator --create-namespace mongodb/mongodb-atlas-operator
  • Atlas Kubernetes Operator가 자체 네임스페이스 만 감시하도록 하려는 --watchNamespaces 경우 플래그를 자체 네임스페이스 로 설정합니다. 다음 명령을 실행합니다.

    참고

    플래그는 --watchNamespaces 자체 네임스페이스 로만 설정할 수 있습니다. .--watchNamespaces 플래그를 다른 네임스페이스 로 설정 은(는) 현재 지원되지 않습니다.

    helm install atlas-operator --namespace=atlas-operator --set watchNamespaces=atlas-operator --create-namespace mongodb/mongodb-atlas-operator
4
  1. Atlas 프로젝트와 해당 데이터베이스 사용자를 사용자 정의합니다.

    install-values.yaml이라는 파일을 만들고 다음을 수행하는 다음 예제 코드를 붙여넣습니다.

    • 프로젝트 이름을 My Project으로 설정합니다.

    • 모든 IP 주소(0.0.0.0)의 프로젝트 액세스를 허용합니다.

    • dbAdmin 역할이 있는 dbadmin 라는 데이터베이스 사용자를 생성합니다.

    • readWrite 역할이 있는 dbuser 라는 데이터베이스 사용자를 생성합니다.

    project: # Project custom values
    atlasProjectName: "My Project"
    projectIpAccessList:
    - cidrBlock: "0.0.0.0/0"
    users: # Custom database users
    - username: dbadmin
    databaseName: admin
    roles:
    - databaseName: admin-role
    roleName: dbAdmin
    - username: dbuser
    databaseName: admin
    roles:
    - databaseName: user-role
    roleName: readWrite
  2. 다음 명령을 실행합니다.

    다음 명령의 --set--values 플래그는 조직 ID, API 키 및 Atlas 프로젝트 구성으로 Values.yaml 파일 값과 기본 Helm 차트 값을 재정의합니다.

    참고

    mongodb/atlas-deployment 저장소에 있는 차트의 이름을 참조합니다.

    helm install atlas-deployment \
    mongodb/atlas-deployment \
    --namespace=my-cluster \
    --create-namespace \
    --set atlas.secret.orgId='<orgid>' \
    --set atlas.secret.publicApiKey='<publicKey>' \
    --set atlas.secret.privateApiKey='<privateApiKey>' \
    --values install-values.yaml

    사용 가능한 매개변수에 대해 자세히 알아보려면 AtlasDeployment 사용자정의 리소스를 참조하세요.

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

5

다음 명령을 실행하여 dbadmin 데이터베이스 사용자가 준비될 때까지 기다립니다.

kubectl wait --for=condition=ready --timeout=10m -n my-cluster atlasdatabaseusers/atlas-deployment-dbadmin

참고

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

6

중요

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

다음 명령을 실행하여 dbadmin 데이터베이스 사용자의 연결 문자열과 비밀번호를 조회합니다. 연결 문자열은 예시 출력과 다를 수 있습니다.

kubectl get secret -n my-cluster my-project-cluster-name-dbadmin -ojson | jq -r '.data | with_entries(.value |= @base64d)';
{
"connectionStringStandard": "mongodb://admin-user:%25SomeLong%25password$foradmin@atlas-cluster-shard-00-00.nlrvs.mongodb.net:27017,atlas-cluster-shard-00-01.nlrvs.mongodb.net:27017,atlas-cluster-shard-00-02.nlrvs.mongodb.net:27017/?ssl=true&authSource=admin&replicaSet=atlas-11q9bn-shard-0",
"connectionStringStandardSrv": "mongodb+srv://admin-user:%25SomeLong%25password$foradmin@atlas-cluster.nlrvs.mongodb.net",
"password": "%SomeLong%password$foradmin",
"username": "dbadmin"
}

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

containers:
- name: test-app
env:
- name: "CONNECTION_STRING"
valueFrom:
secretKeyRef:
name: my-project-cluster-name-dbadmin
key: connectionStringStandardSrv
← 빠른 시작