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

Kubernetes Operator를 위한 빠른 시작

중요

이 섹션은 단일 Kubernetes 클러스터 배포에만 적용됩니다. 다중 Kubernetes cluster MongoDB deployment의 경우 개요 를 참조하세요.

MongoDB Controllers for Kubernetes Operator는 Kubernetes API와 도구를 사용하여 Kubernetes 클러스터 내에서 실행되는 MongoDB 클러스터를 관리합니다. Kubernetes Operator는 Ops Manager와 함께 작동합니다. 이 튜토리얼에서는 Kubernetes Operator를 사용하여 Kubernetes에 Ops Manager를 배포한 다음 첫 번째 MongoDB 복제본 세트를 배포하고 연결하는 방법을 설명합니다. Kind를 사용하여 클러스터를 빠르게 설정할 수 있습니다. 자세한 내용은 Kind를 참조하세요.

이 튜토리얼을 사용하여 Kubernetes Operator를 평가해 보세요. Kind는 로컬 머신에서 단일 노드를 실행하기 때문에 여기서 생성하는 배포서버는 노드 손실을 견딜 수 없으며 프로덕션 트래픽에 적합하지 않습니다. 완료한 후, 다음 단계를 참조하여 프로덕션 배포서버로 이동하는 방법을 학습합니다.

이 튜토리얼에는 다음이 필요합니다.

Docker Desktop에서 Kind를 사용하는 경우, Docker Desktop 리소스 설정에서 최소한 8 GB의 메모리와 4 CPU를 할당해야 합니다. Ops Manager는 애플리케이션에 최소 5 GB의 메모리가 필요하며, 애플리케이션 데이터베이스 및 Kubernetes 연산자를 위해 추가 리소스가 필요합니다.

1
helm repo add mongodb https://mongodb.github.io/helm-charts
2

Helm을 사용하여 Kubernetes Operator를 설치하려면, 리포지토리의 지침을 참조하세요.

예시

다음 명령은 선택적 --create-namespace 옵션을 사용하여 mongodb 네임스페이스 에 Kubernetes Operator용 MongoDB 컨트롤러를 설치합니다. 기본값 으로 Kubernetes Operator는 default 네임스페이스 사용합니다.

helm install kubernetes-operator mongodb/mongodb-kubernetes --namespace mongodb --create-namespace
3

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

kubectl config set-context $(kubectl config current-context) --namespace=mongodb
4

초기 MongoDB Ops Manager 관리자 사용자 자격 증명이 포함된 시크릿 을 만듭니다. Kubernetes 연산자는 MongoDB Ops Manager 리소스를 배포할 때 이 시크릿을 사용하여 첫 번째 관리자 사용자를 구성합니다.

다음 명령을 실행하여 자리 표시자 값을 원하는 자격 증명으로 대체합니다.

kubectl create secret generic ops-manager-admin-secret \ --from-literal=Username="<admin-email>" \ --from-literal=Password="<admin-password>" \ --from-literal=FirstName="<first-name>" \ --from-literal=LastName="<last-name>"

참고

이러한 자격 증명을 안전하게 저장하세요. 배포 후 MongoDB Ops Manager UI에 로그인하려면 이것이 필요합니다.

5
  1. 다음 YAML 파일을 ops-manager.yaml(으)로 복사하고 저장합니다.

    apiVersion: mongodb.com/v1kind: MongoDBOpsManagermetadata: name: ops-manager namespace: mongodbspec: replicas: 1 version: "8.0.0" adminCredentials: ops-manager-admin-secret externalConnectivity: type: NodePort configuration: mms.ignoreInitialUiSetup: "true" automation.versions.source: "mongodb" mms.fromEmailAddr: admin@example.com mms.replyToEmailAddr: admin@example.com mms.adminEmailAddr: admin@example.com mms.mail.transport: smtp mms.mail.hostname: localhost mms.mail.port: "25" backup: enabled: false applicationDatabase: topology: SingleCluster members: 3 version: "8.0.0"

    자세히 알아보려면 MongoDB Ops Manager 리소스 사양을 참조하세요.

  2. 다음 명령을 실행합니다:

    kubectl apply -f ops-manager.yaml
6

Kubernetes Operator는 먼저 애플리케이션 데이터베이스 복제본 세트를 배포한 다음 Ops Manager 애플리케이션을 시작합니다. 이 과정에는 수분이 걸릴 수 있습니다.

다음 명령을 실행하여 리소스 상태를 추적합니다.

kubectl get om -o yaml -w

출력에 다음 단계가 표시될 때까지 기다립니다.

status: applicationDatabase: phase: Running opsManager: phase: Running

두 구성 요소 모두 Running에 도달하면 MongoDB Ops Manager URL을 조회합니다.

kubectl get om ops-manager -o jsonpath='{.status.opsManager.url}'

이 URL을 적어 두세요. 이 정보는 나중 단계의 ConfigMap에 필요합니다.

7

MongoDB Ops Manager UI를 사용하여 ConfigMap 및 Secret을 생성하거나 수동으로 만들 수 있습니다.

먼저 Ops Manager 서비스 포트를 로컬 매신으로 포워딩하여 브라우저에서 UI에 액세스할 수 있도록 합니다.

kubectl port-forward svc/ops-manager-svc-ext 8080:8080

그러한 다음 브라우저에서 http://localhost:8080 을 열고 관리자 비밀에서 만든 자격 증명으로 로그인합니다.

MongoDB Ops Manager UI 사용:

  1. Create New API Keys 또는 Use Existing API Keys를 클릭합니다.

  2. 양식을 작성합니다. 자세한 내용은 Kubernetes Operator에 대한 자격 증명 생성을 참조하세요.

  3. Generate Key and YAML를 클릭합니다.

또는 다음 단계에서 ConfigMap 및 Secret을 수동으로 만들 수 있습니다.

8

Ops Manager UI에서 ConfigMap을 생성한 경우 생성된 config-map.yaml 파일을 복사하여 저장합니다. 그렇지 않은 경우 다음 파일을 생성하여 저장합니다. status.opsManager.url에서 Ops Manager 인스턴스의 URL을 data.baseUrl 로 설정합니다.

예시:

apiVersion: v1kind: ConfigMapmetadata: name: my-project namespace: mongodbdata: baseUrl: http://ops-manager-svc.mongodb.svc.cluster.local:8080 projectName: my-project orgId: <your-org-id>

<your-org-id> 을 Ops Manager 조직 ID로 바꾸십시오. Ops Manager UI URL에서 이 값을 찾을 수 있습니다. http://<ops-manager-url>/v2#/org/<orgId>/projects.

자세한 내용은 파라미터 설명을 참조하십시오.

9

MongoDB Ops Manager UI에서 Secret을 생성한 경우, 생성된 secret.yaml 파일을 복사하여 저장하세요. 그렇지 않으면 MongoDB Ops Manager 조직의 API 키가 포함된 secret 을 생성하세요.

예시:

apiVersion: v1kind: Secretmetadata: name: organization-secret namespace: mongodbstringData: publicKey: <public_key> privateKey: <private_key>

Programmatic API 키를 만들려면, Kubernetes 연산자용 자격 증명 만들기를 참조하세요.

10

다음 명령을 실행합니다:

kubectl apply -f secret.yaml -f config-map.yaml
11
  1. 다음 YAML 파일을 복사하고 저장합니다.

    apiVersion: mongodb.com/v1kind: MongoDBmetadata: name: demo-mongodb-cluster-1 namespace: mongodbspec: members: 3 version: 8.0.0 type: ReplicaSet security: authentication: enabled: true modes: ["SCRAM"] opsManager: configMapRef: name: my-project credentials: organization-secret persistent: true podSpec: podTemplate: spec: containers: - name: mongodb-enterprise-database resources: limits: cpu: 2 memory: 1.5G requests: cpu: 1 memory: 1G persistence: single: storage: 10Gi
  2. 다음 명령을 실행합니다:

    kubectl apply -f <replica-set-conf>.yaml
12

MongoDB 데이터베이스 사용자에 대한 비밀번호를 선택하고 비밀에 저장합니다. 이 비밀번호는 원하는 값이 될 수 있습니다. 다음 단계에서 데이터베이스 사용자를 만들 때 이 비밀을 참조합니다.

클리어 텍스트(사용 stringData) 또는 Base64인코딩 된 값(사용 data)으로 비밀번호를 저장할 수 있습니다.

일반 텍스트 비밀번호의 경우 다음 YAML 파일을 만들어 저장합니다:

apiVersion: v1kind: Secretmetadata: name: mms-user-1-password # corresponds to user.spec.passwordSecretKeyRef.nametype: OpaquestringData: password: <my-plain-text-password> # corresponds to user.spec.passwordSecretKeyRef.key

Base64로 인코딩된 비밀번호의 경우 다음 YAML 파일을 만들어 저장합니다:

apiVersion: v1kind: Secretmetadata: name: mms-user-1-password # corresponds to user.spec.passwordSecretKeyRef.nametype: Opaquedata: password: <base-64-encoded-password> # corresponds to user.spec.passwordSecretKeyRef.key

자리 표시자를 선택한 비밀번호로 바꾸십시오. 자세한 내용은 SCRAM 인증을 사용하여 데이터베이스 사용자 관리를 참조하십시오.

13
  1. 다음 MongoDB 사용자 리소스 사양 파일을 복사하여 저장합니다.

    apiVersion: mongodb.com/v1kind: MongoDBUsermetadata: name: mms-scram-user-1spec: passwordSecretKeyRef: name: mms-user-1-password # Match to metadata.name of the User Secret key: password username: "mms-scram-user-1" db: "admin" # mongodbResourceRef: name: "demo-mongodb-cluster-1" # Match to MongoDB resource using authentication roles: - db: "admin" name: "clusterAdmin" - db: "admin" name: "userAdminAnyDatabase" - db: "admin" name: "readWrite"
  2. 다음 명령을 실행합니다:

    kubectl apply -f <database-user-conf>.yaml
14

Cloud Manager 또는 Ops Manager에서 새로 생성된 사용자를 볼 수 있습니다.

  1. 프로젝트의 Deployment 보기에서 Security 탭을 클릭합니다.

  2. 중첩된 MongoDB Users 탭을 클릭합니다.

15

MongoDB Ops Manager 애플리케이션에서 다음 단계를 수행합니다.

  1. 왼쪽 탐색에서 Deployment을 클릭합니다.

  2. 연결하려는 배포서버의 을 클릭합니다.

  3. Connect to this instance를 클릭합니다.

  4. 터미널에서 연결 명령을 실행하여 배포에 연결합니다.

생성한 배포서버는 단일 Kind 노드에서 실행되며 기본값 리소스 설정을 사용합니다. 이 평가 배포에서 생산 배포로 이동하려면:

  1. 주요 배포서버 계획을 통해 아키텍처를 선택하고, 버전 호환성을 확인하고, Kubernetes 연산자 배포서버 범위를 설정합니다.

  2. 노드가 두 개 이상이고 볼륨 확장을 지원하는 storageClass가 있는 생산 Kubernetes 클러스터에 Kubernetes 연산자를 설치합니다.

  3. 배포서버 보안을 TLS, 인증 및 미사용 데이터 암호화를 이용하여 확보합니다.

  4. 클러스터 전체의 손실에서 벗어나야 하는 경우 여러 Kubernetes 클러스터에 배포 합니다.

이 페이지 평가하기