빠른 시작
이 페이지의 내용
- 전제 조건
- 절차
- 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 프로젝트에 액세스할 수 있습니다.
Atlas CLI를 사용하여 Atlas Kubernetes Operator를 설치하려면 다음 명령을 실행하세요.
atlas kubernetes operator install [options]
명령 구문 및 매개변수에 관한 자세한 사항은 Atlas Kubernetes Operator 설치에 대한 Atlas CLI 문서를 참조하십시오.
절차
중요
Custom Resource(사용자 정의 리소스)는 더 이상 기본적으로 객체를 삭제하지 않음
Atlas Kubernetes Operator 는 사용자 지정 리소스 구성 파일을 관리 하여 Atlas 구성을 2.0 관리하지만, Atlas Kubernetes Operator Kubernetes 에서 삭제 한 사용자 지정 리소스가 더 이상 ( 기본값) Atlas 에서 삭제되지 않습니다. 대신 Atlas Kubernetes Operator 는 Atlas 에서 해당 리소스 관리를 중지할 뿐입니다. 예를 예시 , Kubernetes 에서
AtlasProject
Custom Resource(사용자 지정 리소스)를 삭제 하면 기본값 으로 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 에서 팀을 삭제 하지 않습니다.
기본값 Atlas 구성 값을 암시적으로 사용하지 않으려면 원하는 구성 세부 정보를 명시적으로 정의하세요. 경우에 따라 Atlas 기본값을 상속하면 조정 루프가 발생하여 사용자 지정 리소스 가
READY
상태 를 달성하지 못할 수 있습니다. 예를 예시AtlasDeployment
사용자 지정 리소스 에 원하는 자동 확장 동작을 명시적으로 정의하면 포함된 예시 와 같이 사용자 지정 리소스 의 정적 인스턴스 크기가 자동 확장이 활성화된 Atlas 배포서버 서버에 반복적으로 적용되지 않도록 할 수 있습니다.autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
Atlas 계정에 등록하거나 로그인하세요.
새 Atlas 계정을 등록 하거나 Atlas 계정 에 로그인합니다.
조직을 위한 API 키를 생성합니다.
참고
Atlas에 대한 Atlas Kubernetes Operator 액세스 권한을 구성하려면 다음의 공개 API 키, 비공개 API 키 및 조직 ID 정보가 필요합니다.
조직에 프로그래밍 방식 액세스 권한을 부여하고 를 API Access List 구성합니다.
Atlas에 대한 Atlas Kubernetes Operator 액세스 권한을 구성하려면 다음의 공개 API 키, 비공개 API 키 및 조직 ID 정보가 필요합니다.
Atlas Kubernetes Operator 가 새 Atlas 프로젝트 를 생성하도록 하려면Grant Programmatic Access to an Organization(조직에 프로그래밍 방식 액세스 권한을 부여합니다)을 클릭합니다. 조직 에서 Atlas 관리 API 에 대한 IP 액세스 목록 이 필요한 경우 API 액세스 목록도 구성해야 합니다.
중요
API 키를 Organization Project Creator 조직 역할 이상으로 할당해야 합니다.
기존 Atlas 프로젝트 로 작업하려면 프로젝트에서 프로젝트액세스를 추가합니다. 조직 에서 Atlas 관리 API 에 대한 IP 액세스 목록 이 필요한 경우 API 액세스 목록도 구성해야 합니다.
중요
API 키에 Project Owner 프로젝트 역할을 할당해야 합니다.
Atlas Kubernetes Operator를 배포하세요.
다음 시나리오 중 하나에서 <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
API 키와 조직 ID를 사용하여 시크릿을 생성합니다.
시크릿 을 생성하고 레이블을 지정하려면 다음을 수행합니다. , 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 시크릿 에 직접 넣을 필요가 없습니다.. 자세한 내용은 시크릿 스토리지 구성을 참조하세요.
AtlasProject
사용자 지정 리소스 를 만듭니다.
다음 명령을 실행하여 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
AtlasDeployment
사용자 지정 리소스 를 만듭니다.
다음 명령 중 하나를 실행하여 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
서버리스 인스턴스 를 만들려면 서버리스 인스턴스 예시 를 참조하세요.
비밀번호로 시크릿을 생성하여 Atlas cluster 데이터베이스에 로그인하세요.
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 시크릿 에 직접 넣을 필요가 없습니다.. 자세한 내용은 시크릿 스토리지 구성을 참조하세요.
AtlasDatabaseUser
사용자 지정 리소스 를 만듭니다.
다음 명령을 실행하여 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
데이터베이스 사용자의 상태를 확인합니다.
데이터베이스 사용자가 준비되었음을 나타내는 True
응답을 받을 때까지 다음 명령을 실행합니다.
참고
AtlasDatabaseUser
사용자 지정 리소스 는 클러스터가 준비될 때까지 기다립니다. 새 cluster를 만드는 데 최대 10분이 걸릴 수 있습니다.
kubectl get atlasdatabaseusers my-database-user -o=jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
Atlas Kubernetes Operator가 클러스터에 연결하기 위해 생성한 비밀을 조회하세요.
다음 명령을 복사합니다.
중요
다음 명령을 실행하려면
jq
1.6 이상이 필요합니다.kubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)'; 다음 자리 표시자를 원하는 사용자 지정 리소스의 세부 정보로 바꾸세요.
my-project
AtlasProject
사용자 지정 리소스의metadata
필드 값을 지정합니다.my-atlas-cluster
AtlasDeployment
사용자 지정 리소스의metadata
필드 값을 지정합니다.my-database-user
AtlasDatabaseUser
사용자 지정 리소스의metadata
필드 값을 지정합니다.명령을 실행합니다.
참고
연결 문자열은 다음 예제와 다를 수 있습니다.
{ "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