참고
이 튜토리얼은 Kubernetes 에 대한 약간의 지식이 있다고 가정합니다. Kubernetes 에 익숙하지 않은 경우 시작하기 전에 Kubernetes 객체 및 사용자 지정 리소스에 대한 Kubernetes 설명서를 검토 . Kubernetes Operator는 Ops Manager 및 MongoDB deployment를 사용자 지정 리소스로 나타냅니다. 다른 Kubernetes 객체 관리 것과 동일한 방식으로 을(를) 사용하여 생성하고 관리 kubectl . 이러한 사용자 지정 리소스가 서로 어떤 관련이 있는지 학습 보려면 Kubernetes 용 MongoDB 컨트롤러 연산자 아키텍처 개요를 참조하세요.
전제 조건
Kubernetes Operator를 설치하기 전에 다음 전제 조건을 완료하세요.
Kubernetes 솔루션을 사용할 수 있도록 하고 hardware 아키텍처 지원을 확인합니다.
Kubernetes 솔루션이 필요한 경우 올바른 솔루션 선택에 대한 Kubernetes 설명서를 참조하세요. 지원되는 hardware 아키텍처를 검토합니다.
Kubernetes 연산자용 MongoDB 컨트롤러 리포지토리를 복제합니다.
git clone https://github.com/mongodb/mongodb-kubernetes.git
참고
Helm 을 사용하여 Kubernetes Operator를 설치할 수 있습니다. Helm을 설치하는 방법을 학습하려면 Github 의 설명서를 참조하세요.
선택 사항: 실행 Ops Manager가 있어야 합니다.
Kubernetes 연산자로 Ops Manager 리소스를 배포하지 않는 경우, Kubernetes cluster 외부에서 Ops Manager를 실행해야 합니다. Kubernetes 연산자를 사용하여 Kubernetes에 Ops Manager 리소스를 배포하려는 경우 이 사전 조건을 건너뛰세요.
중요
Ops Manager 설치에서는 활성 NTP 서비스를 실행해야 합니다. Ops Manager 호스트의 시계가 동기화되지 않으면 해당 호스트는 Kubernetes 연산자와 통신할 수 없습니다.
MongoDB Ops Manager 호스팅하다 의 NTP 서비스를 확인하는 방법을 학습 RHEL설명서를 참조하세요.
고려 사항
다음 계획 주제를 검토합니다.자세한 학습 은 Kubernetes 연산자 설치를 위한 MongoDB 컨트롤러 계획을 참조하세요.
단일 Kubernetes 클러스터 에 설치할지, 아니면 여러 Kubernetes 클러스터에 설치할지 결정합니다.Kubernetes 연산자 설치 모드 선택: 단일 또는 다중 Kubernetes 클러스터를 참조하세요.
사용 중인 Kubernetes, OpenShift, MongoDB 및 Ops Manager 버전이 호환되는지 확인합니다.Kubernetes 연산자 호환성을 위한 MongoDB 컨트롤러를 참조하세요.
Kubernetes Operator 배포서버 의 범위를 설정하여 Kubernetes Operator가 감시하는 네임스페이스를 결정합니다. Kubernetes Operator 배포를 위한 MongoDB 컨트롤러의 범위 설정을 참조하세요.
저장, 지속성, CPU 및 메모리 바운드에 대한 프로덕션 권장 사항을 적용합니다. 모범 사례를 참조하세요.
Kubernetes와 함께 설치
설치 절차는 환경 구성 방법에 따라 달라집니다.
참고
전체적으로 동일한 네임스페이스 사용
기본값으로 Kubernetes Operator는 Kubernetes 클러스터의 모든 리소스를 네임스페이스 mongodb에 배포합니다. mongodb-kubernetes.yaml에서 metadata.namespace 의 모든 값을 편집하여 Kubernetes Operator 리소스를 다른 네임스페이스 에 배포 할 수 있습니다.
apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-operator namespace: production apiVersion: apps/v1 kind: Deployment metadata: name: mongodb-kubernetes-operator namespace: production # Example truncated ...
선택 사항: 설치하기 전에 Kubernetes 연산자 YAML 을 사용자 지정합니다.
선택적 Kubernetes 연산자 설치 설정에 대해 알아보려면 연산자 kubectl 및 oc 설치 설정을 참조하세요.
참고
보안을 개선하고 간소화하는 정적 컨테이너의 공개 미리 보기를 활성화 하려면 정적 컨테이너(공개 미리 보기)를 참조하세요. 공개 미리 보기에 있는 동안 프로덕션 환경에서는 이 기능 사용하지 않는 것이 좋습니다. 자세히 학습 미리 보기 기능을 참조하세요.
Kubernetes 용 MongoDB Helm Charts사용합니다.
Kubernetes 용 MongoDB Helm Charts 추가합니다.
다음을 실행 하여 로컬에서 Kubernetes Operator Helm Chart를 추가할 수 있습니다.
helm repo add mongodb https://mongodb.github.io/helm-charts
배포하기 전에 Helm 차트를 사용자 지정합니다.
선택적 Kubernetes 연산자 설치 설정에 학습 보려면 연산자 Helm 설치 설정을 참조하세요.
Kubernetes 연산자를 배포합니다.
다음 helm 명령을 실행하여 Kubernetes 클러스터 의 기본값 네임스페이스 에 Kubernetes Operator를 배포 합니다.
helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
다음과 같이 --namespace 및 --create-namespace 플래그를 전달하여 기본이 아닌 네임스페이스 에 Kubernetes Operator를 배포 수 있습니다.
helm upgrade --install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --namespace mongodb \ --create-namespace
Helm으로 특정 일일 빌드 설치
MongoDB는 매일 Kubernetes 연산자 이미지를 재구축하여 최신 보안 및 OS 업데이트를 통합합니다.
기본적으로 helm 는 지정한 Kubernetes 연산자 버전에 대한 최신 빌드를 설치합니다.
이전 빌드를 설치하려면 --set build=<build-id> 을 사용하여 빌드 ID를 매개 변수로 지정합니다. 빌드 ID는 항상 -b<YYYYMMDD>T000000Z 형식이며, 여기서 <YYYYMMDD> 는 사용하려는 빌드가 생성된 날짜입니다.
예시
이 예에서는 최신 이미지로 Kubernetes 연산자를 설치하는 방법을 보여줍니다.
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
이 예에서는 2021년 2월 5일 자정에 생성된 이미지로 Kubernetes 연산자를 설치하는 방법을 보여 줍니다.
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --set build=-b20210205T000000Z
참고
MongoDB는 기본(최신) 빌드를 사용할 것을 권장합니다.
OpenShift로 설치
시작하기 전에 OpenShift 에 Kubernetes Operator를 배포 때 MANAGED_SECURITY_CONTEXT 플래그가 true (으)로 설정하다 있는지 확인하세요. 이 값은 values-openshift.yaml 파일에 미리 정의되어 있습니다.
설치 절차는 환경 구성 방법에 따라 달라집니다.
참고
전체적으로 동일한 네임스페이스 사용
기본값으로 Kubernetes Operator는 Kubernetes 클러스터의 모든 리소스를 네임스페이스 mongodb에 배포합니다. mongodb-kubernetes-openshift.yaml에서 metadata.namespace 의 모든 값을 편집하여 Kubernetes Operator 리소스를 다른 네임스페이스 에 배포 할 수 있습니다.
apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-operator namespace: production apiVersion: apps/v1 kind: Deployment metadata: name: mongodb-kubernetes-operator namespace: production # Example truncated ...
Kubernetes 연산자용 MongoDB 컨트롤러 리포지토리를 복제합니다.
다음 git 명령을 호출합니다.
git clone https://github.com/mongodb/mongodb-kubernetes.git
Kubernetes 연산자 리포지토리 용 MongoDB 컨트롤러를 복제한 디렉토리로 이동합니다.
예를 들어 홈 디렉토리에서 리포지토리를 복제한 경우 다음을 실행합니다.
cd ~/mongodb-kubernetes
CustomResourceDefinitions MongoDB 배포서버를 위한 CustomResourceDefinitions를 설치합니다.
다음 oc 명령을 실행합니다.
oc apply -f crds.yaml
선택 사항: 설치하기 전에 Kubernetes 연산자 YAML 을 사용자 지정합니다.
선택적 Kubernetes 연산자 설치 설정에 대해 알아보려면 연산자 kubectl 및 oc 설치 설정을 참조하세요.
참고
보안을 개선하고 간소화하는 정적 컨테이너의 공개 미리 보기를 활성화 하려면 정적 컨테이너(공개 미리 보기)를 참조하세요. 공개 미리 보기에 있는 동안 프로덕션 환경에서는 이 기능 사용하지 않는 것이 좋습니다. 자세히 학습 미리 보기 기능을 참조하세요.
설치하기 전에 Kubernetes 연산자 YAML 의 ServiceAccount 정의에 <openshift-pull-secret> 를 추가합니다.
apiVersion: v1 kind: ServiceAccount metadata: name: enterprise-operator namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-appdb namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> apiVersion: v1 kind: ServiceAccount metadata: name: mongodb-kubernetes-database-pods namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret>
자세한 내용은 Helm 설치 설정에서 registry.imagePullSecrets 설정을 참조하세요.
Kubernetes 용 MongoDB Helm Charts사용합니다.
Helm 3을(를) 사용하여 Kubernetes Operator를 설치할 수 있습니다.
Kubernetes 용 MongoDB Helm Charts 리포지토리 를 Helm에 추가합니다.
helm repo add mongodb https://mongodb.github.io/helm-charts
helm을(를) 사용하여 Kubernetes 연산자를 설치합니다.
Kubernetes 용 MongoDB Helm Charts 설치합니다:
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --values https://raw.githubusercontent.com/mongodb/helm-charts/main/charts/mongodb-kubernetes/values-openshift.yaml
values-openshift.yaml 설정을 사용합니다. 선택적 Kubernetes 연산자 설치 설정에 대해 학습하려면 연산자 Helm 설치 설정을 참조하세요.
참고
보안을 개선하고 간소화하는 정적 컨테이너의 공개 미리 보기를 활성화 하려면 정적 컨테이너(공개 미리 보기)를 참조하세요. 공개 미리 보기에 있는 동안 프로덕션 환경에서는 이 기능 사용하지 않는 것이 좋습니다. 자세히 학습 미리 보기 기능을 참조하세요.
Helm으로 특정 일일 빌드 설치
MongoDB는 매일 Kubernetes 연산자 이미지를 재구축하여 최신 보안 및 OS 업데이트를 통합합니다.
기본적으로 helm 는 지정한 Kubernetes 연산자 버전에 대한 최신 빌드를 설치합니다.
이전 빌드를 설치하려면 --set build=<build-id> 을 사용하여 빌드 ID를 매개 변수로 지정합니다. 빌드 ID는 항상 -b<YYYYMMDD>T000000Z 형식이며, 여기서 <YYYYMMDD> 는 사용하려는 빌드가 생성된 날짜입니다.
예시
이 예에서는 최신 이미지로 Kubernetes 연산자를 설치하는 방법을 보여줍니다.
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes
이 예에서는 2021년 2월 5일 자정에 생성된 이미지로 Kubernetes 연산자를 설치하는 방법을 보여 줍니다.
helm install mongodb-kubernetes-operator mongodb/mongodb-kubernetes \ --set build=-b20210205T000000Z
참고
MongoDB는 기본(최신) 빌드를 사용할 것을 권장합니다.
설치 확인
Kubernetes 연산자가 올바르게 설치되었는지 확인하려면 다음 명령을 실행하고 출력을 확인합니다.
kubectl describe deployments mongodb-kubernetes-operator -n <metadata.namespace>
oc describe deployments mongodb-kubernetes-operator -n <metadata.namespace>
기본적으로 배포는 mongodb 네임스페이스에 존재합니다. 다음 오류 메시지가 나타나면 올바른 네임스페이스를 사용하고 있는지 확인합니다.
Error from server (NotFound): deployments.apps "mongodb-kubernetes-operator" not found
Kubernetes 연산자 문제를 해결하려면 Kubernetes 연산자 의 로그 검토 및 기타 문제 해결 주제를 참조하세요.
중요
Kubernetes Operator 또는 네임스페이스 를 제거해야 하는 경우 먼저 MongoDB 리소스를 제거해야 합니다.
다음 단계
Kubernetes Operator용 MongoDB 컨트롤러를 설치한 후 다음을 수행할 수 있습니다.