문서 메뉴

문서 홈MongoDB Enterprise Kubernetes 연산자

아키텍처, 기능 및 제한 사항

이 페이지의 내용

다중 Kubernetes cluster 배포에는 다음과 같은 제한 사항이 있습니다.

  • 복제본 세트만 배포합니다. 샤드 cluster 배포는 지원되지 않습니다.

  • Ops Manager 5.0.7 이상의 버전을 사용하세요.

  • 단일 클러스터에 Ops Manager를 배포하고, Kubernetes에 배포하는 경우 중앙 클러스터에 Ops Manager를 배포합니다. 자세히 알아보려면 멀티-Kubernetes-Cluster 배포에 Ops Manager 사용을 참조하세요.

    중요

    MongoDB Enterprise Kubernetes 연산자는 여러 Kubernetes cluster에서 Ops Manager의 고가용성 배포를 지원하지 않습니다. 배포서버에 Ops Manager에 대한 다중 사이트 복원력이 필요한 경우, 멀티 Kubernetes 클러스터 배포가 있는 모든 사이트에 걸쳐 애플리케이션 데이터베이스 복제본 세트와 Ops Manager를 모두 사용하여 Kubernetes 외부에고가용성 을 갖춘 Ops Manager를 배포합니다. 이 경우 재해 복구 시나리오에서 나머지 사이트의 다른 Kubernetes cluster에 다중 Kubernetes cluster 배포를 재배포하고 Kubernetes 외부의 정상 사이트에서 실행 중인 Ops Manager 인스턴스에 해당 배포를 연결할 수 있습니다.

    Kubernetes 연산자와 동일한 Kubernetes cluster에서 Ops Manager를 호스팅하는데 cluster가 실패하는 경우, 다중 Kubernetes cluster 배포를 새 Kubernetes cluster로 복원할 수 있습니다. 그러나 이 경우 Ops Manager를 다른 cluster로 복원하는 것은 시간이 오래 걸리는 수동 프로세스입니다. 자세한 내용 은 멀티 클러스터 AppDB 배포를 위한 Kubernetes Operator 및 Ops Manager 복구를 참조하세요.

    애플리케이션 데이터베이스를 Kubernetes 외부에 배포하는 것 외에도 다중 Kubernetes cluster 배포에서 선택한 멤버 Kubernetes cluster에 애플리케이션 데이터베이스를 배포할 수 있습니다. 이렇게 하면 리전 장애와 같은 일부 재해 복구 시나리오가 완화되고 Ops Manager에서 애플리케이션 데이터베이스의 복원력과 가용성이 향상됩니다. 자세히 알아보려면 Ops Manager 리소스 배포, 애플리케이션 데이터베이스 배포 및 Ops Manager에 연결을 참조하세요.

  • Kubernetes 시크릿 사용 비밀 저장 도구입니다. HashiCorp Vault 비밀 저장 도구는 지원되지 않습니다.

  • 동일한 Kubernetes 연산자 인스턴스가 MongoDBOpsManagerMongoDB 사용자 지정 리소스를 모두 관리하지 않는 배포서버의 경우, Ops Manager에서 KMIP 백업 암호화 클라이언트 설정을 수동으로 구성해야 합니다. 자세한 내용은 KMIP 백업 암호화 수동 구성을 참조하세요.

  • ServiceMonitor 추가 MongoDBMultiCluster 안 함 리소스에 추가합니다. Kubernetes 연산자는 Prometheus와의 통합을 지원하지 않습니다.

  • 새로운 다중 Kubernetes cluster 배포를 생성하고 MongoDB 지원팀 에 문의하여 기존 Kubernetes 배포에서 다중 Kubernetes cluster 배포로 데이터를 마이그레이션하는 데 도움을 받을 수 있습니다. 기존 단일 Kubernetes cluster 배포를 새 Kubernetes cluster로 확장할 수 없습니다.

이 섹션에서는 Kubernetes 연산자를 사용하여 배포된 단일 cluster에 대한 절차와 동일한 절차를 사용하여 구성할 수 있는 다중 Kubernetes cluster 배포 기능에 대해 설명합니다. 이 가이드에 다른 다중 Kubernetes cluster 배포 기능에 대한 자체 문서가 있습니다.

다중 Kubernetes cluster 배포 데이터베이스에 사용자로 연결하려면 connectionString.standardSrv: DNS seed list 연결 문자열 을 사용할 수 있습니다. 이 문자열은 Kubernetes 연산자가 다중 Kubernetes cluster 배포를 위해 생성하는 시크릿에 포함되어 있습니다. 다중 Kubernetes 클러스터 배포에 연결하는 데는 Kubernetes 연산자로 배포된 단일 클러스터와 동일한 절차를 사용합니다. Kubernetes 내부에서 MongoDB database에 연결을 참조하고 Using the Kubernetes Secret 탭을 선택합니다.

데이터베이스 사용자를 위한 보안을 managed하려면 다음 방법을 사용하세요.

이러한 절차는 다음과 같은 예외를 제외하고 Kubernetes 연산자와 함께 배포된 단일 클러스터에 대한 절차와 동일합니다.

중앙 cluster에 Ops Manager 인스턴스를 배포하고 연결하려면 다음 절차를 따르세요.

이러한 절차는 다음과 같은 예외를 제외하고 Kubernetes Operator와 함께 배포된 단일 cluster에 대한 절차와 동일합니다.

  • 컨텍스트와 네임스페이스를 설정합니다.

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

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

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

  • Ops Manager에 대한 외부 연결을 구성합니다.

    다중 Kubernetes cluster 배포에서 중앙 cluster의 Ops Manager 리소스 배포에 노드 cluster를 연결하려면 다음 방법 중 하나를 사용합니다.

    • spec.externalConnectivitytrue 으로 설정하고 그 안에 Ops Manager 포트를 지정합니다. ops-manager-external.yaml 사용 예제 스크립트를 필요에 맞게 수정하고 구성을 적용합니다. 예를 들어 다음을 실행합니다.

      kubectl apply \
      --context "$MDB_CENTRAL_CLUSTER_FULL_NAME" \
      --namespace "mongodb" \
      -f https://raw.githubusercontent.com/mongodb/mongodb-enterprise-kubernetes/master/samples/ops-manager/ops-manager-external.yaml
    • 중앙 cluster와 모든 멤버 cluster를 동일한 서비스 격자에 추가합니다. 서비스 메시는 중앙 및 모든 멤버 cluster에서 Ops Manager 인스턴스로의 통신을 설정합니다. 자세히 알아보려면 멀티-Kubernetes-cluster 빠른 시작 절차 및 Istio의 istio-injection=enabled 레이블을 참고하는 단계를 참고하세요. 자동 사이드카 삽입 도 참조하세요. Istio 문서에 있습니다.

  • cluster에 Ops Manager와 애플리케이션 데이터베이스를 배포하세요.

    단일 Kubernetes 클러스터와 동일한 절차를 사용하여 중앙 클러스터에만 Ops Manager 및 애플리케이션 데이터베이스를 배포하도록 선택할 수 있습니다. 자세한 내용 은 TLS 암호화를 사용하여 중앙 cluster에 Ops Manager 인스턴스 배포를 참조하세요.

  • 중앙 cluster에 Ops Manager를 배포하고 선택한 member cluster에 애플리케이션 데이터베이스를 배포합니다.

    중앙 cluster에 Ops Manager를 배포하고 선택한 멤버 cluster의 하위 집합에 애플리케이션 데이터베이스를 배포하도록 선택하여 Ops Manager에서 애플리케이션 데이터베이스의 복원력과 가용성을 높일 수 있습니다. Ops Manager CRD에서 다음 설정을 구성합니다.

    • topology 를 사용하여 MultiCluster 값을 지정합니다.

    • clusterSpecList 를 지정하고 애플리케이션 데이터베이스를 배포하려는 선택한 각 Kubernetes cluster의 { clusterName }와 각 Kubernetes cluster 내 members (MongoDB) 수를 포함합니다.

    참고

    다중 Kubernetes 클러스터 배포에서 선택한 멤버 클러스터에 애플리케이션 데이터베이스를 배포하는 경우 중앙 클러스터와 멤버 클러스터를 동일한 서비스메시 구성에 포함해야 합니다. 이를 통해 Ops Manager에서 애플리케이션 데이터베이스로의 BI 통신이 가능해집니다.

    자세히 알아보려면 Ops Manager 를 참조하고 다중 Kubernetes cluster 배포 예시를 검토하고topologyMultiCluster 를 지정 .

Kubernetes Operator와 함께 Ops Manager를 배포하는 경우 중앙 cluster가 Ops Manager를 호스팅할 수도 있습니다. 이 경우, Ops Manager에 대해 쿼리 가능 백업 을 할 수 있습니다.

서비스 메시에 의존하거나 의존하지 않고 다중 Kubernetes cluster 배포를 생성할 수 있습니다. 자세한 내용 은 외부 연결 계획: 서비스 메시를 사용해야 하나요?를참조하세요.

다음 두 다이어그램 모두에서 MongoDB Enterprise Kubernetes Operator는 이러한 조치를 수행합니다.

  • 중앙 cluster에서 MongoDBMultiCluster 리소스 사양 생성을 감시합니다.

  • 마운트된 kubeconfig 파일을 사용하여 노드 cluster와 통신합니다.

  • MongoDB 클러스터의 replica set 멤버 수에 따라 각 member cluster에 ConfigMaps, Secrets, Services, StatefulSet Kubernetes 객체와 같은 필요한 리소스를 생성합니다.

  • 해당 MongoDBMultiCluster 리소스 사양을 사용하여 각 MongoDB 복제본 세트를 배포할 cluster를 식별하고 MongoDB 복제본 세트를 배포합니다.

  • CentralClusterMemberCluster 이벤트를 감시합니다.

  • 생성한 리소스를 조정하여 멀티 Kubernetes cluster 배포가 원하는 상태인지 확인합니다.

MongoDB Enterprise Kubernetes Operator를 사용하는 다중 Kubernetes cluster 배포는 Kubernetes의 다음과 같이 중앙 cluster 한 개와 멤버 cluster 한 개 이상으로 구성됩니다.

  • 중앙 cluster 의 역할은 다음과 같습니다.

    • MongoDB Enterprise Kubernetes Operator 호스팅

    • 멀티 Kubernetes cluster 배포를 위한 제어 영역 역할을 합니다.

    • MongoDB 복제본 세트에 대한 MongoDBMultiCluster 리소스 사양을 호스팅합니다.

    • Kubernetes Operator로 Ops Manager를 배포하는 경우 Ops Manager를 호스팅합니다.

    • MongoDB 복제본 세트의 멤버를 호스팅할 수도 있습니다.

  • cluster 는 MongoDB 복제본 세트를 호스팅합니다.

중앙 cluster에 장애가 발생하면 이 cluster에 대한 액세스를 복원하거나 사용 가능한 다른 Kubernetes cluster에 Kubernetes Operator를 재배포할 때까지 Kubernetes Operator를 사용하여 배포를 변경할 수 없습니다. 자세한 내용은 재해 복구를 참조하세요.

다음 다이어그램은 리전 및 가용영역에 걸친 다중 Kubernetes cluster 배포의 상위 수준 아키텍처를 보여줍니다. 이 배포는 Istio와 같은 서비스메시를 사용합니다. The service mesh:

  • 다양한 Kubernetes 노드 cluster에 배포된 MongoDB 노드의 검색을 managed합니다.

  • 복제본 세트 멤버 간의 통신을 처리합니다.

다음과 같은 서비스 메시 내부의 모든 노드 cluster에서 애플리케이션을 호스팅할 수 있습니다.

  • Kubernetes 연산자를 사용하여 배포하는 cluster 이외의 Kubernetes cluster에서 또는

  • 멀티-Kubernetes cluster 배포의 멤버 cluster.

MongoDB Enterprise Kubernetes Operator를 사용하여 리전 및 가용영역에 걸친 멀티 클러스터 Kubernetes 배포의 개략적인 아키텍처와 서비스를 보여주는 다이어그램
클릭하여 확대

다음 다이어그램은 리전 및 가용영역에 걸친 다중 Kubernetes cluster 배포의 상위 수준 아키텍처를 보여줍니다. 이 배포는 파드를 호스팅하는 Kubernetes cluster와 MongoDB 인스턴스 간의 연결을 위해 서비스메시에 의존하지 않습니다.

고유한 Kubernetes cluster의 Pod에 호스팅된 MongoDB 복제본 세트 멤버 간의 외부 통신을 처리하려면 외부 도메인과 DNS 구역을 사용합니다.

MongoDB Enterprise Kubernetes Operator를 사용하고 서비스 메시가 없는 리전 및 가용영역에 걸친 멀티 클러스터 Kubernetes 배포의 상위 수준 아키텍처를 보여주는 다이어그램
클릭하여 확대

모든 cluster 멤버에서 애플리케이션을 호스팅할 수 있습니다.

←  개요서비스 및 도구 →