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

원격 모드를 사용하도록 Ops Manager 리소스 구성

기본값 구성에서 MongoDB Agent와 백업 데몬은 인터넷을 통해 MongoDB , Inc.에서 MongoDB 설치 아카이브에 액세스 합니다.

원격 모드 MongoDB Ops Manager 에서 실행 MongoDB 를 구성하여 백업 데몬 및 MongoDB Ops Manager managed 리소스가 HTTP 로컬 웹 서버 또는 S3호환 저장 의 엔드포인트로 다운로드 요청을 프록시하는 에서만 설치 아카이브를 다운로드 수 Kubernetes 있습니다. 클러스터 에 배포됩니다.

MongoDB Ops Manager 리소스를 배포합니다.

다음 절차에서는 Nginx HTTP 서버 를 Kubernetes 클러스터 에 배포하여 MongoDB 설치 아카이브를 호스팅하다 합니다.

1

아직 실행하지 않았다면 다음 명령을 실행하여 생성한 네임스페이스에서 kubectl 명령을 모두 실행합니다.

참고

다중 Kubernetes 클러스터 MongoDB deployment에서 MongoDB Ops Manager 리소스를 배포하는 경우:

  • context을 중앙 클러스터의 이름(예: kubectl config set context "$MDB_CENTRAL_CLUSTER_FULL_NAME")으로 설정합니다.

  • --namespace 를 다중 Kubernetes 클러스터 MongoDB 배포에 사용한 것과 동일한 범위 (예: kubectl config --namespace "mongodb" 로 설정합니다.

kubectl config set-context $(kubectl config current-context) --namespace=<metadata.namespace>
2

이 튜토리얼의 ConfigMap은 다음과 같이 Nginx를 구성합니다.

  • Kubernetes cluster의 노드의 포트 80 에서 수신 대기 중인 localhost 이라는 이름의 HTTP 서버를 실행하고

  • 특정 리소스에 대한 HTTP 요청을 MongoDB Server 및 MongoDB database Database Tools 설치 아카이브를 제공하는 위치로 라우팅합니다.

  1. 다음 예제 Nginx ConfigMap을 텍스트 편집기에 붙여넣습니다.

    ---apiVersion: v1kind: ConfigMapmetadata: name: nginx-confdata: nginx.conf: | events {} http { server { server_name localhost; listen 80; location /linux/ { alias /mongodb-ops-manager/mongodb-releases/linux/; } location /tools/ { alias /tools/; } } }...
  2. 이 파일을 .yaml 파일 확장자로 저장합니다.

  3. 생성한 ConfigMap 파일에서 다음 kubectl 명령을 호출하여 Nginx ConfigMap을 생성합니다.

    kubectl apply -f <nginix-configmap>.yaml
3

이 튜토리얼의 Nginx 리소스 구성은 다음과 같습니다.

  • 하나의 Nginx 복제본을 배포합니다.

  • MongoDB 서버 및 MongoDB 데이터베이스 도구 설치 아카이브를 저장하기 위한 볼륨 마운트를 생성합니다.

  • 명령을 사용하여 Kubernetes 클러스터 에 배포 curl MongoDB 데이터베이스 리소스에 Nginx가 제공하는 설치 아카이브를 다운로드 init 컨테이너를 정의합니다.

  1. 다음 예제 Nginx 리소스 구성을 텍스트 편집기에 붙여넣습니다.

    ---apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-deploymentspec: replicas: 1 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: nginx:1.14.2 imagePullPolicy: IfNotPresent name: nginx ports: - containerPort: 80 volumeMounts: - mountPath: /mongodb-ops-manager/mongodb-releases/linux name: mongodb-versions - mountPath: /tools/db/ name: mongodb-tools - name: nginx-conf mountPath: /etc/nginx/nginx.conf subPath: nginx.conf initContainers: - name: setting-up-rhel-mongodb image: curlimages/curl:latest command: - curl - -L - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz - -o - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz volumeMounts: - name: mongodb-versions mountPath: /mongodb-ops-manager/mongodb-releases/linux - name: setting-up-rhel-mongodb-tools image: curlimages/curl:latest command: - curl - -L - https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz - -o - /tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz volumeMounts: - name: mongodb-tools mountPath: /tools/db/ restartPolicy: Always terminationGracePeriodSeconds: 30 volumes: - name: mongodb-versions emptyDir: {} - name: mongodb-tools emptyDir: {} - configMap: name: nginx-conf name: nginx-conf...
  2. 예제에 강조 표시된 줄을 수정하여 설치하려는 MongoDB Server 버전을 지정합니다.

    예를 들어 MongoDB 버전 8.0.0 을(를) 다른 데이터베이스 버전으로 대체하려면 다음 차단을 업데이트합니다.

    - name: setting-up-rhel-mongodb image: curlimages/curl:latest command: - curl - -L - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz - -o - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz

    MongoDB Database Tools 버전을 수정하려면 이 블록을 업데이트합니다.

    - name: setting-up-rhel-mongodb-tools image: curlimages/curl:latest command: - curl - -L - https://fastdl.mongodb.org/tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz - -o - /tools/db/mongodb-database-tools-rhel80-x86_64-100.6.0.tgz
  3. 여러 버전을 로드하려면 curl 명령을 추가합니다.

    Nginx에서 제공하려는 각 버전에 적합한 initContainer에 추가합니다.

    예를 들어 MongoDB 8.0.0 을(를) 제공하도록 Nginx를 구성하려면 다음을 수행합니다.

    - name: setting-up-rhel-mongodb image: curlimages/curl:latest command: - curl - -L - https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz - -o - /mongodb-ops-manager/mongodb-releases/linux/mongodb-linux-x86_64-rhel80-8.0.0.tgz
  4. 이 파일을 .yaml 파일 확장자로 저장합니다.

  5. 생성한 Nginx 리소스 파일에서 다음 kubectl 명령을 호출하여 Nginx를 배포합니다.

    kubectl apply -f <nginix>.yaml
4

이 튜토리얼의 서비스는 80 포트를 통해 Kubernetes cluster 내 다른 노드의 트래픽에 Nginx를 노출합니다. 이렇게 하면 Kubernetes 연산자를 사용하여 배포하는 MongoDB 데이터베이스 리소스 포드가 Nginx에서 설치 아카이브를 다운로드할 수 있습니다.

다음 명령을 실행하여 Nginx 배포서버에 서비스를 생성합니다.

  1. 다음 예시 서비스를 텍스트 편집기에 붙여넣습니다.

    ---apiVersion: v1kind: Servicemetadata: name: nginx-svc labels: app: nginxspec: ports: - port: 80 protocol: TCP selector: app: nginx...
  2. 이 파일을 .yaml 파일 확장자로 저장합니다.

  3. 생성한 서비스 파일에서 다음 kubectl 명령을 호출하여 서비스를 생성합니다.

    kubectl apply -f <nginix-service>.yaml
5

강조 표시된 섹션에서는 다음과 같은 Ops Manager 구성 설정을 사용합니다.

  • automation.versions.source: remote spec.configuration 에서 원격 모드를 활성화합니다.

  • automation.versions.download.baseUrl spec.configuration 에 MongoDB 설치 아카이브를 제공하는 HTTP 리소스의 기본 URL을 제공합니다.

    이 줄을 업데이트하여 <namespace> 를 Kubernetes 연산자로 리소스를 배포할 네임스페이스로 바꾸세요.

  • automation.versions.download.baseUrl.allowOnlyAvailableBuilds: "false" spec.configuration 빌드에 문제가 없도록 하기 위한 것입니다.

---apiVersion: mongodb.com/v1kind: MongoDBOpsManagermetadata: name: ops-manager-localmodespec: replicas: 1 version: "8.0.0" adminCredentials: ops-manager-admin-secret configuration: # this enables remote mode in Ops Manager automation.versions.source: remote automation.versions.download.baseUrl: "http://nginx-svc.<namespace>.svc.cluster.local:8080" automation.versions.download.baseUrl.allowOnlyAvailableBuilds: "false" backup: enabled: false applicationDatabase: members: 3...
6

원하는 텍스트 편집기를 열고 객체 사양을 리소스 파일의 적절한 위치에 붙여넣습니다.

7
8

Ops Manager 리소스 정의의 파일 이름에 대해 다음 kubectl 명령을 호출합니다.

kubectl apply -f <opsmgr-resource>.yaml
9

Ops Manager 리소스의 상태를 확인하려면 다음 명령을 호출합니다.

kubectl get om -o yaml -w

리소스 배포 상태에 대한 자세한 내용은 Kubernetes 연산자 문제 해결을 참조하세요.

Ops Manager 리소스가 Pending 단계를 완료한 후 이 명령은 다음과 유사한 출력을 반환합니다.

status: applicationDatabase: lastTransition: "2020-05-15T16:20:22Z" members: 3 phase: Running type: ReplicaSet version: "8.0.0-ubi8" backup: phase: "" opsManager: lastTransition: "2020-05-15T16:20:26Z" phase: Running replicas: 1 url: http://ops-manager-localmode-svc.mongodb.svc.cluster.local:8080 version: "8.0.0"

리소스의 연결 URL을 나타내는 status.opsManager.url 필드의 값을 복사합니다. 이 절차의 뒷부분에서 ConfigMap 을 만들 때 이 값을 사용합니다.

10
  1. Ops Manager를 배포한 것과 동일한 네임스페이스에 MongoDB database 리소스 를 배포합니다. 다음을 확인합니다.

    1. 리소스의 spec.opsManager.configMapRef.name 를 ConfigMap의 metadata.name 와 일치시킵니다.

    2. 리소스의 spec.credentials 을(를) Ops Manager 프로그래밍 방식 API 키 쌍을 포함하여 생성한 시크릿의 이름과 일치시킵니다.

Operator로 생성한 데이터베이스 리소스 컨테이너에서MongoDB Agent 실행 MongoDB Kubernetes MongoDB Ops Manager 는 인터넷 대신 Nginx를 통해 에서 설치 아카이브를 다운로드 합니다.