다음 절차에서는 Kubernetes 클러스터 내부에서 Kubernetes에 의해 배포된 MongoDB 리소스에 연결하는 방법을 설명합니다.
고려 사항
Kubernetes 리소스를 배포한 호스트 및 포트에 연결할 수 있어야 합니다. 배포서버에 연결하는 방법에 대해 자세히 알아보려면 MongoDB 프로세스에 연결을 참조하세요.
절차
배포서버 대한 연결 명령을 검색하고 실행 . 클러스터가 호스팅되는 위치에 따라 MongoDB Ops Manager 또는 Cloud Manager 애플리케이션에서 연결 명령을 조회할 수 있습니다. SCRAM 인증 또는 X509 를 사용하여 MongoDB 사용자를 추가할 때 Kubernetes Operator가 자동으로 생성하는 Kubernetes 시크릿에서 연결 명령을 조회 할 수도 있습니다.
MongoDB database 리소스에 연결하는 절차는 연결 문자열을 조회하는 방법에 따라 다릅니다.
클러스터가 호스팅되는 위치에 따라 Ops Manager 또는 Cloud Manager 애플리케이션에서 다음 단계를 수행합니다.
Kubernetes 내부에서 리소스에 연결할 때 연결하는 호스트 이름의 형식은 다음과 같습니다.
<k8s-pod-name>.<k8s-internal-service-name>.<k8s-namespace>.<cluster-name>
새 MongoDB database 사용자를 생성하면 Kubernetes Operator는 자동으로 새 Kubernetes 시크릿을 생성합니다. Kubernetes 시크릿 에는 새 데이터베이스 사용자에 대한 다음 정보가 포함되어 있습니다.
username: 데이터베이스 사용자의 사용자 이름password: 데이터베이스 사용자의 비밀번호connectionString.standard: 이 데이터베이스 사용자로 데이터베이스에 연결할 수 있는 표준 연결 string 입니다.connectionString.standardSrv: 이 데이터베이스 사용자로 데이터베이스에 연결할 수 있는 DNS 시드 목록 연결 string 입니다.
참고
또는 MongoDB 사용자 리소스 사양 에 선택 사항인 spec.connectionStringSecretName 필드를 지정하여 Kubernetes 연산자가 생성하는 연결 문자열 시크릿의 이름을 지정할 수 있습니다.
다음 단계를 수행하여 자격 증명을 보고 연결 string 을 사용하여 MongoDB 에 연결합니다.
명령을 실행하여 Kubernetes 시크릿 파일을 확인합니다.
터미널에서 다음 명령을 실행하여 시크릿을 확인하고 변수를 테이블의 값으로 바꿉니다.
자리 표시자 | 설명 |
|---|---|
{MongoDB-Resource-Name} | MongoDB 리소스를 식별하는 사람이 읽을 수 있는 레이블입니다. |
{User-Name} | MongoDB 사용자를 식별하는 사람이 읽을 수 있는 레이블입니다. |
kubectl get secret {MongoDB-Resource-Name}-{User-Name}-admin -o jsonpath='{.data}'
이 명령이 오류를 반환하면 다음 명령을 실행 하고 올바른 이름을 검색하여 시크릿의 이름을 확인할 수 있습니다.
kubectl get secrets
연결 명령을 실행합니다.
연결 string 내의 connectionString.standard 값을 사용하여 배포서버에 연결합니다.
mongosh {connectionString.standard}
(선택 사항) Pod에 Kubernetes 시크릿을 마운트합니다.
Pod에 시크릿을 마운트 하여 애플리케이션이 자격 증명 액세스 할 수 있도록 할 수 있습니다.