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

Kubernetes 외부에서 MongoDB 데이터베이스 리소스에 연결하기

다음 절차에서는 Kubernetes 클러스터 외부에서 Kubernetes에 배포된 MongoDB 리소스에 연결하는 방법을 설명합니다.

Kubernetes 외부에서 데이터베이스에 액세스하려면 MongoDB 4.2.3 이상을 실행해야 합니다.

Kubernetes 연산자가 배포한 MongoDB 사용자 지정 리소스에 대한 외부 액세스가 필요한 사용자 지정 서비스를 생성하고 Kubernetes에서 준비 프로브를 사용하는 경우, Kubernetes의 publishNotReadyAddresses 설정을 true로 설정합니다.

publishNotReadyAddresses 설정은 이 서비스의 엔드포인트와 상호 작용하는 에이전트 서비스의 준비 상태 무시해야 함을 나타냅니다. publishNotReadyAddresses를 true로 설정하면 서비스를 호스팅하는 파드에 대해 구성된 준비성 프로브의 동작이 재정의됩니다.

기본적으로 publishNotReadyAddresses 설정은 false로 설정되어 있습니다. 이 경우, Kubernetes 오퍼레이터에서 MongoDB 커스텀 리소스를 호스팅하는 Pods가 Cloud Manager 또는 Ops Manager에 대한 연결을 잃을 경우 해당 Pods에 대해 구성된 준비성 프로브가 실패합니다. 그러나 publishNotReadyAddresses 설정을 true으로 설정하면 다음과 같은 상황이 발생합니다:

다음 절차는 Kubernetes 연산자에 내장된 구성 옵션을 사용하여 배포를 위한 외부 연결을 구성하는 프로세스를 안내합니다.

Kubernetes Operator가 Kubernetes cluster 외부에서 배포한 MongoDB 리소스에 연결하는 방법은 리소스에 따라 다릅니다.

Kubernetes 클러스터 외부에서 Kubernetes 연산자가 배포한 MongoDB 독립형 리소스에 연결하려면 다음 안내를 따르세요.

1

독립형 리소스를 배포하지 않은 경우 지침에 따라 리소스를 배포하세요.

이 절차에서는 다음 예시를 사용합니다.

20---
21apiVersion: mongodb.com/v1
22kind: MongoDB
23metadata:
24 name: <my-standalone>
25spec:
26 version: "8.0.0"
27 opsManager:
28 configMapRef:
29 name: <configMap.metadata.name>
30 # Must match metadata.name in ConfigMap file
31 credentials: <mycredentials>
32 type: Standalone
33...
2

외부 리소스에서 독립형 리소스에 연결하려면 spec.externalAccess를 구성하세요. 설정:

externalAccess: {}

이 설정은 Kubernetes Operator가 독립형 리소스 에서 MongoDB Pod에 대한 외부 LoadBalancer 서비스를 생성하도록 지시합니다. 외부 서비스는 외부 연결을 위한 진입 점 제공합니다. 값 없이 이 설정을 추가하면 다음 기본값 을 사용하여 외부 서비스가 생성됩니다.

필드
값
설명

Name

<pod-name>-svc-external

외부 서비스의 이름입니다. 이 값은 변경할 수 없습니다.

Type

LoadBalancer

외부 LoadBalancer 서비스를 생성합니다.

Port

<Port Number>

mongod의 포트입니다.

publishNotReadyAddress

true

파드가 준비되지 않은 경우에도 DNS 레코드가 생성되도록 지정합니다.데이터베이스 Pod에 대해 false로 설정하다 하지 마세요.

선택적으로 서비스에 값을 추가하거나 기본값을 재정의해야 하는 경우 다음을 지정합니다.

예를 들어, 다음 설정은 외부 서비스의 기본값을 재정의하여 독립형 리소스를 구성하여 MongoDB Pod를 노출하는 NodePort 서비스를 생성하도록 합니다.

externalAccess:
externalService:
annotations:
# cloud-specific annotations for the service
spec:
type: NodePort # default is LoadBalancer
port: 27017
# you can specify other spec overrides if necessary

팁

자세한 학습 은 Kubernetes 문서에서 주석 및 ServiceSpec을 참조하세요.

3

독립형 리소스에서 다음 명령을 실행하여 Kubernetes Operator가 배포서버용 외부 서비스를 생성했는지 확인합니다.

$ kubectl get services

이 명령은 다음 출력과 유사한 서비스 목록을 반환합니다. 크럴스터의 각 데이터베이스 Pod에 대해 Kubernetes 연산자는 <pod-name>-0-svc-external이라는 외부 서비스를 만듭니다. 이 서비스는 외부 서비스 사양에서 제공하는 값 및 재정의에 따라 구성됩니다.

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
<my-standalone>-0-svc-external LoadBalancer 10.102.27.116 <lb-ip-or-fqdn> 27017:27017/TCP 8m30s

클러스터 구성 또는 클라우드 공급자에 따라 LoadBalancer 서비스의 IP 주소는 외부에서 액세스할 수 있는 IP 주소 또는 FQDN입니다. IP 주소 또는 FQDN을 사용하여 외부 도메인의 트래픽을 라우팅할 수 있습니다.

4

Kubernetes 클러스터 외부에서 배포서버에 연결하려면 MongoDB Shell(mongosh)을 사용하고 외부 도메인을 통해 노출한 MongoDB Pod 주소를 지정합니다.

예시

외부 FQDN이 <my-standalone>.<external-domain>인 경우, 다음 명령을 사용하여 Kubernetes 클러스터 외부에서 이 샤딩된 클러스터 인스턴스 에 연결할 수 있습니다.

mongosh "mongodb://<my-standalone>.<external-domain>"
이 페이지 평가하기

이 페이지의 내용