헬름 차트 빠른 시작
이 페이지의 내용
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 프로젝트에 액세스할 수 있습니다.
절차
중요
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 에서 팀을 삭제 하지 않습니다.
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를 배포하세요.
다음 명령어 세트 중 하나를 실행합니다.
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
경우 플래그를 자체 네임스페이스 로 설정합니다. 다음 명령을 실행합니다.참고
helm install atlas-operator --namespace=atlas-operator --set watchNamespaces=atlas-operator --create-namespace mongodb/mongodb-atlas-operator
Atlas 데이터베이스 배포를 배포합니다.
Atlas 프로젝트와 해당 데이터베이스 사용자를 사용자 정의합니다.
참고
GitHub에서 다음과 같은 추가 예시 Helm Charts 를 찾을 수 있습니다.
atlas-basic: Atlas 프로젝트, 클러스터 및 데이터베이스 사용자 생성이 포함된 간단한 Atlas Kubernetes Operator 배포서버 예시 입니다.
atlas-advanced: 멀티 리전 배포, 자동 확장 동작 등과 관련된 biolerplate를 포함하는 확장 가능한 고급 Atlas Kubernetes Operator 예시 배포서버 입니다.
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 다음 명령을 실행합니다.
다음 명령의
--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
사용자정의 리소스를 참조하세요.서버리스 인스턴스를 만들려면 서버리스 인스턴스 예시를 참조하세요.
데이터베이스 사용자의 상태를 확인합니다.
다음 명령을 실행하여 dbadmin
데이터베이스 사용자가 준비될 때까지 기다립니다.
kubectl wait --for=condition=ready --timeout=10m -n my-cluster atlasdatabaseusers/atlas-deployment-dbadmin
참고
AtlasDatabaseUser
사용자 정의 리소스는 데이터베이스 배포서버가 준비될 때까지 기다립니다. 새 데이터베이스 배포를 만드는 데 최대 10분이 걸릴 수 있습니다.
Atlas Kubernetes Operator가 데이터베이스 배포서버에 연결하기 위해 만든 암호를 검색합니다.
중요
다음 명령을 실행하려면 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