AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.

독립형을 1멤버 복제본 세트로 마이그레이션

Kubernetes Operator 1.15부터 독립형 배포는 더 이상 사용되지 않으며 다음 주요 버전에서 지원 중단됩니다. 독립형 배포를 1멤버 복제본 세트로 마이그레이션합니다. 멤버가 1개인 복제본 세트 독립형 인스턴스 와 동일한 단일 노드 토폴로지 제공하며 나중에 다시 마이그레이션하지 않고도 멤버를 추가할 수 있도록 지원합니다.

  • 이 마이그레이션 현재 위치 업그레이드 아닙니다. 새 1멤버 복제본 세트 배포 mongodump 및 mongorestore를 사용하여 데이터를 복사한 다음 애플리케이션을 복제본 세트 로 보냅니다.

  • Ops Manager 프로젝트 하나의 배포서버 포함되므로 복제본 세트 새 프로젝트 필요합니다. 독립형 배포서버 에서 사용하는 프로젝트 재사용할 수 없습니다.

  • mongodump 그리고 mongorestore은(는 ) 데이터베이스 사용자를 복사하지 않습니다. 복원 후 사용자를 MongoDBUser 리소스로 다시 생성합니다.

  • 독립형 배포서버 삭제 때까지 그대로 유지됩니다. 마이그레이션 이 실패하면 애플리케이션을 독립형 배포서버 로 다시 보낼 수 있습니다.

  • Kubernetes Operator가 관리하는 독립형 리소스 배포합니다. 자세한 학습 은 독립형 MongoDB 인스턴스 배포를 참조하세요.

  • 독립형 배포서버 호스팅하는 Kubernetes 클러스터 에 액세스 하도록 kubectl를 구성합니다.

  • 독립형 리소스 에서 spec.version 값을 확인합니다. 멤버가 1개인 복제본 세트 동일한 MongoDB 버전을 실행 해야 합니다.

1

Ops Manager 프로젝트 하나의 배포서버 포함되므로 독립형 배포서버 에서 사용하는 프로젝트 재사용할 수 없습니다. 독립형 배포서버 참조하는 ConfigMap을 복사하고 baseUrl 및 orgId 값을 유지한 상태에서 새롭고 고유한 projectName를 설정하다 . 독립형 배포서버 와 동일한 Kubernetes 네임스페이스 에 ConfigMap을 적용합니다.

자세한 학습 은 ConfigMap을 사용하여 MongoDB 배포당 1개의 프로젝트 생성을 참조하세요.

2

spec.type을 ReplicaSet로 설정하다 spec.members를1로 설정하다 MongoDB 리소스 생성합니다.spec.version를 독립형 배포서버 실행하는 것과 동일한 MongoDB 버전으로 설정하고, 이전 단계에서 생성한 ConfigMap을 참조합니다. 독립형 배포서버 에서 사용하는 자격 증명 시크릿을 재사용할 수 있습니다. 독립형 리소스 에서 추가 spec 설정을 복사합니다.

---apiVersion: mongodb.com/v1kind: MongoDBmetadata: name: <my-replica-set> namespace: <my-namespace>spec: members: 1 # Must match the MongoDB version of the standalone deployment version: "<mongodb-version>" opsManager: configMapRef: # Must match metadata.name in the new project ConfigMap file name: <configMap.metadata.name> # Can match the credentials Secret that the standalone deployment uses credentials: <mycredentials> type: ReplicaSet persistent: true...

리소스 적용합니다.

kubectl apply -f <replica-set-yaml> --namespace <my-namespace>

MongoDB 리소스의 상태를 확인하려면 다음 명령어를 사용하세요.

kubectl get mdb <resource-name> -o yaml -w

-w(watch) 플래그 설정이 적용된 경우, 구성이 변경되면 상태 단계가 Running 상태를 달성할 때까지 출력이 즉시 새로 고침 됩니다. 리소스 배포 상태에 대해 자세히 알아보려면 Kubernetes Operator 문제 해결을 참조하세요.

3

데이터베이스 파드를 실행 컨테이너 이미지에는 MongoDB 데이터베이스 도구 포함되어 있지 않습니다. mongodump 및 mongorestore를 실행 하려면 mongodb-enterprise-server 이미지를 기반으로 전용 도구 포드를 배포 . 이미지 태그를 지정하다 독립형 배포서버 실행하는 것과 동일한 MongoDB 버전으로 설정합니다.

---apiVersion: v1kind: Podmetadata: name: mongodb-tools namespace: <my-namespace>spec: containers: - name: mongodb-tools # Use the standalone's MongoDB version without the -ent # suffix, for example 8.0.4 image: quay.io/mongodb/mongodb-enterprise-server:<mongodb-version>-ubi9 command: ["sleep", "infinity"]...

pod를 적용합니다.

kubectl apply -f <tools-pod-yaml> --namespace <my-namespace>
4

독립형 배포서버 에 대한 모든 애플리케이션 쓰기를 중지하고 애플리케이션이 새 복제본 세트 에 연결될 때까지 쓰기를 중지합니다. 덤프는 덤프가 시작된 후에 발생하는 쓰기를 캡처하지 않습니다.

5

admin, config 및 local 데이터베이스를 제외한 독립형 배포서버 에서 각 컬렉션 의 문서 수와 각 데이터베이스 의 dbHash를 기록합니다. 복원 admin 및 config 데이터베이스와 복제 local 데이터베이스 에 쓰기를 제외하므로 이러한 값은 일치하지 않습니다. 복원 후 복제본 세트 에 대해 이러한 측정을 반복하여 마이그레이션 확인합니다.

6

독립형 배포의 서비스에 대해 도구 pod에서 mongodump를 실행합니다.

kubectl exec mongodb-tools --namespace <my-namespace> -- \ mongodump \ --host "<my-standalone>-svc.<my-namespace>.svc.cluster.local:27017" \ --out /tmp/dump

독립형 배포서버 인증 필요한 경우 backup 및 readAnyDatabase 역할이 있는 사용자로 연결합니다. 배포서버 TLS가 필요한 경우 해당 mongodump 연결 옵션을 추가합니다. 자세한 학습 은 mongodump를 참조하세요.

7

도구 pod에서 복제본 세트의 서비스에 대해 mongorestore를 실행합니다.

kubectl exec mongodb-tools --namespace <my-namespace> -- \ mongorestore \ --host "<my-replica-set>-svc.<my-namespace>.svc.cluster.local:27017" \ --nsExclude="admin.*" \ --nsExclude="config.*" \ /tmp/dump

--nsExclude 옵션은 admin 및 config 데이터베이스를 복원 에서 제외합니다. 전체 mongodump 출력에는 admin.system.users 및 admin.system.version가 포함됩니다. 이를 복원하면 데이터베이스 사용자와 인증 스키마 자동화 구성 외부의 복제본 세트 에 쓰기 (write) 되므로 Ops Manager 의 프로젝트 사용자 목록이 더 이상 데이터베이스 일치하지 않습니다.

복제본 세트 인증 필요한 경우 이후 단계에서 데이터베이스 사용자를 다시 생성하기 때문에 복제본 세트 아직 사용자가 없습니다.restore, readWriteAnyDatabase, dbAdminAnyDatabase 역할을 사용하여 새 프로젝트 에 임시 MongoDBUser 리소스 생성하고 해당 사용자로 연결합니다. 사용자 생성에 대해 자세히 학습 데이터베이스 사용자 관리를 참조하세요.

복제본 세트 TLS가 필요한 경우 해당 mongorestore 연결 옵션을 추가합니다. 자세한 학습 은 mongorestore를 참조하세요.

8

복제본 세트 에 대해 이전 단계의 문서 수 및 dbHash 측정을 반복하고 값이 독립형 배포서버 에서 기록한 값과 일치하는지 확인합니다.

9

덤프에는 데이터베이스 사용자가 포함되지 않습니다. 각 사용자를 새 프로젝트 에서 MongoDBUser 리소스 로 다시 생성합니다. 복원 위한 임시 사용자를 생성한 경우 사용자를 다시 생성한 후 삭제 . 자세한 학습 은 데이터베이스 사용자 관리 및 MongoDB 사용자 리소스 사양을 참조하세요.

10

1멤버 복제본 세트 참조하도록 애플리케이션의 연결 문자열을 업데이트합니다.

11

마이그레이션 확인한 후 독립형 MongoDB 리소스 삭제 . Kubernetes Operator는 독립형 배포서버 에서 사용한 영구 볼륨 클레임을 삭제 하지 않으므로 클레임을 수동으로 삭제 . 자세한 학습 은 MongoDB 리소스 제거를 참조하세요.

독립형 배포서버 삭제 때까지 그대로 유지됩니다. 마이그레이션 을 롤백하려면 애플리케이션을 독립형 배포서버 서버로 되돌립니다. 독립형 배포서버 전환 후 복제본 세트 받은 쓰기가 포함되지 않습니다.