Kubernetes Operator용 MongoDB 컨트롤러는 Kubernetes ConfigMap을 사용하여 고유한 단일 Ops Manager 프로젝트에 연결합니다. 참조된 프로젝트 존재하지 않는 경우, Kubernetes Operator는 projectName ConfigMap에 제공한 에 따라 프로젝트를 생성합니다.
Kubernetes 연산자 ConfigMap을 만들려면 예시 ConfigMap YAML 파일의 몇 줄을 편집하고 ConfigMap을 적용 됩니다. 전체 예시를 보려면 프로젝트.yaml 파일 참조하세요.
또는 MongoDB Cloud Manager UI 또는 MongoDB Ops Manager UI 를 사용하여 프로젝트 를 만들거나 선택하고 ConfigMap YAML 파일 을 자동으로 생성한 다음 Kubernetes 환경에 적용 할 수 있습니다.
고려 사항
프로젝트당 MongoDB 리소스를 하나만 배포할 수 있습니다. Ops Manager는 데이터베이스 사용자 액세스에 대해 프로젝트당 하나의 인증 방법만 지원하기 때문에 이 제한이 적용됩니다. 자세한 내용은 MongoDB database 리소스 배포를 참조하세요.
Kubernetes Operator 배포서버 용 MongoDB 컨트롤러를 고유한 Ops Manager 프로젝트에 페어링해야 합니다. 배포 각 MongoDB Controller for Kubernetes Operator 인스턴스 에 대해 고유한 ConfigMap을 만들거나 프로젝트 이름이 배포된 리소스 이름과 정렬되도록 ConfigMap에서 를 생략하여 여러 배포에 동일한 ConfigMap을 재사용할 수 있습니다.
data.projectNameconfig 맵에 프로젝트 이름이 제공되는 경우 해당 프로젝트 아직 존재하지 않으면 프로젝트가 생성됩니다.
중요
Kubernetes Operator를 사용하여 Cloud Manager 및 Ops Manager 버전 6.0.x 이상과 함께 MongoDB 리소스를 배포할 수 있습니다.
Atlas Operator 를 사용하여 Atlas에 MongoDB 리소스를 배포할 수 있습니다.
전제 조건
Kubernetes 버전 1.11 이상 또는 Openshift 버전 3.11 이상.
Kubernetes Operator용 MongoDB 컨트롤러
ConfigMap을 사용하여 1개의 프로젝트 만들기
네임스페이스 를 기본값 으로 kubectl 구성합니다.
아직 실행하지 않았다면 다음 명령을 실행하여 생성한 네임스페이스에서 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>
다음 명령을 호출하여 ConfigMap을 작성하십시오.
cat <<EOF | kubectl apply -f - apiVersion: v1 kind: ConfigMap metadata: name: my-project namespace: mongodb data: projectName: myProjectName # this is an optional parameter; when omitted, the Operator creates a project with the resource name orgId: 5b890e0feacf0b76ff3e7183 # this is a required parameter baseUrl: https://ops.example.com:8443 EOF
키 | 유형 | 설명 | 예시 |
|---|---|---|---|
| 문자열 |
| |
| 문자열 |
| |
| 문자열 | Ops Manager 프로젝트의레이블입니다. Kubernetes Operator는 Ops Manager 프로젝트 없는 경우 이를 생성합니다. 를 생략하면 Cloud Manager 또는 Ops Manager 조직에서 기존 프로젝트를 사용하려면, Cloud Manager 또는 Ops Manager 페이지의 왼쪽 상단에 있는 All Clusters 링크를 클릭한 뒤 스크롤하여 목록에서 |
|
| 문자열 | 필수. 또는 MongoDB Ops Manager 조직을 고유하게 식별하는24 문자 16진수 입니다.string Cloud Manager Kubernetes Operator를 사용하여 Cloud Manager 및 Ops Manager 버전 6.0.x 이상과 함께 MongoDB 리소스를 배포할 수 있습니다. Atlas Operator 를 사용하여 Atlas에 MongoDB 리소스를 배포할 수 있습니다. 기존 조직을 지정합니다:
기존 Cloud Manager 또는 Ops Manager 조직 내에서 새 프로젝트를 생성하려면 Organization Project Creator 역할이 있어야 합니다.
|
|
| 문자열 | FQDN 및 포트 번호를 포함한 Ops Manager 애플리케이션의 URL을 입력합니다. 중요: MongoDB Ops Manager Kubernetes Operator를 사용하여 를 배포 하고 가 배포된 MongoDB Ops Manager MongoDB 클러스터 외부 에 배포된 데이터베이스 리소스를 관리 하는 경우, Kubernetes 클라우드 관리자를 사용하는 경우 |
|
다음 Kubernetes 명령을 호출하여 ConfigMap을 확인합니다.
kubectl describe configmaps <configmap-name>
이 명령은 shell에서 ConfigMap 설명을 반환합니다.
Name: <configmap-name> Namespace: <namespace> Labels: <none> Annotations: <none> Data ==== baseUrl: ---- <myOpsManagerURL> Events: <none>
사용자 지정 CA를 사용하여 HTTPS 지원 Ops Manager에 연결
자체 TLS 인증서를 사용하여 Ops Manager 인스턴스에 대해 HTTPS 를 활성화하도록 선택할 수도 있습니다. 사용자 지정 인증서를 사용한 경우, 해당 사용자 지정 인증서에 서명한 CA를 Kubernetes 연산자에 추가해야 합니다. To add your custom CA, complete the following:
인증 기관(CA) 인증서에 대한 ConfigMap을 만듭니다.
The Kubernetes Operator requires the root CA certificate of the CA that issued the Ops Manager host's certificate. Run the following command to create a ConfigMap containing the root CA in the same namespace of your database Pods:
kubectl -n <metadata.namespace> create configmap <root-ca-configmap-name> \ --from-file=mms-ca.crt
중요
Kubernetes 연산자는 ConfigMap에서 Ops Manager 리소스의 인증서 이름을 mms-ca.crt 으로 지정해야 합니다.
다음 예시 의 강조 표시된 ConfigMap 섹션을 복사합니다.
1 2 apiVersion: v1 3 kind: ConfigMap 4 metadata: 5 name: <my-configmap> 6 namespace: <my-namespace> 7 data: 8 projectName: <my-ops-manager-project-name> # this is an optional parameter 9 orgId: <org-id> # this is a required parameter 10 baseUrl: https://<my-ops-manager-URL>
11 sslMMSCAConfigMap: <root-ca-configmap-name> 12 sslRequireValidMMSServerCertificates: ‘true’ 13 ...
강조 표시된 섹션을 프로젝트의 ConfigMap에 추가합니다.
기본 구성된 편집기에서 프로젝트의 ConfigMap을 편집하려면 다음 명령을 호출합니다.
kubectl edit configmaps <my-configmap> -n <metadata.namespace> 예제 ConfigMap 에 강조 표시된 섹션을 붙여넣습니다. 프로젝트 ConfigMap의 끝에서.
TLS 설정 지정
다음 TLS 키를 변경합니다.
키 | 유형 | 설명 | 예시 |
|---|---|---|---|
| 문자열 | ConfigMap 의 이름 첫 번째 단계에서 생성된 MongoDB Ops Manager 호스트의 인증서에 서명하는 데 사용되는 루트 CA 인증서를 포함합니다. 그러면 CA 인증서가 Kubernetes Operator 및 데이터베이스 리소스에 마운트됩니다. |
|
| 부울 | Forces the Operator to require a valid TLS certificate from Ops Manager. 중요: 값을 작은따옴표로 묶어야 하며 그렇지 않으면 연산자 에서 오류가 발생합니다. |
|
Kubernetes 명령을 호출하여 ConfigMap을 확인합니다.
kubectl describe configmaps <my-configmap> -n <metadata.namespace>
중요
항상 과 함께 네임스페이스 옵션을 포함하세요.kubectl 옵션을 지정하지 않으면 kubectl이기본적으로 빈 네임스페이스 -n 사용하므로 배포서버 실패하게 됩니다. 필드 의 값을 지정해야 <metadata.namespace> 합니다. Kubernetes Operator, 시크릿 및 MongoDB 리소스는 동일한 고유 네임스페이스 에서 실행 되어야 합니다.
이 명령은 shell에서 ConfigMap 설명을 반환합니다.
Name: <my-configmap> Namespace: <namespace> Labels: <none> Annotations: <none> Data ==== sslMMSCAConfigMap: ---- <root-ca-configmap-name> sslRequireValidMMSServerCertificates: ---- true Events: <none>
다음 단계
ConfigMap을 생성했으므로 이제 MongoDB 리소스 배포 를 시작하기 전에 Kubernetes 연산자에 대한자격 증명을 생성 합니다.