Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/
엔터프라이즈 Kubernetes 운영자
/ /

MongoDB Enterprise Kubernetes Operator Helm 설치 설정

선택적 설정을 제공하려면 --set 인수를 사용하여 Helm에 전달합니다. 배포 유형에 대한 값 설정을 나열하는 다음 파일을 사용합니다.

  • Vanilla Kubernetes: values.yaml

  • OpenShift: values-openshift.yaml

선택적 Kubernetes 연산자 설치 설정에 대해 자세히 알아보려면 연산자 Helm 설치 설정을 참조하세요.

다음 예제에서와 같이 명령을 실행하면 지정한 옵션이 구성에 전달됩니다.

helm upgrade enterprise-operator mongodb/enterprise-operator \
--set registry.pullPolicy='IfNotPresent'

MongoDB Agent 이미지의 이름입니다. 이 설정은 레지스트리에 추가됩니다. 에이전트 하고 MDB_AGENT_IMAGE_REPOSITORY 환경 변수를 StatefulSet가 데이터베이스 배포를 위한 MongoDB Agent 이미지를 다운로드하는전체 URL 로 설정합니다. 자세한 학습 은 컨테이너 이미지를 참조하세요.

기본값 은 mongodb-agent-ubi 입니다.

agent:
name: mongodb-agent-ubi

애플리케이션 데이터베이스 이미지의 이름입니다.

기본값은 mongodb-enterprise-appdb 입니다.

appDb:
name: mongodb-enterprise-appdb
version: 10.2.15.5958-1_4.2.11-ent

애플리케이션 데이터베이스가 사용하는 MongoDB Agent가 포함된 이미지의 버전입니다.

기본값은 10.2.15.5958-1_4.2.11-ent입니다.

appDb:
name: mongodb-enterprise-appdb
version: 10.2.15.5958-1_4.2.11-ent

MongoDB Enterprise 데이터베이스 이미지의 이름입니다.

기본값은 MongoDB Enterprise데이터베이스 입니다.

database:
name: mongodb-enterprise-database
version: 1.32

Kubernetes 연산자가 배포하는 MongoDB Enterprise 데이터베이스 이미지의 버전입니다.

database:
name: mongodb-enterprise-database
version: 1.32

애플리케이션 데이터베이스 시작 스크립트 및 준비성 프로브가 포함된 initContainer 이미지의 이름입니다.

기본값은 mongodb-enterprise-init-appdb 입니다.

database:
name: mongodb-enterprise-init-appdb
version: 1.32

애플리케이션 데이터베이스 시작 스크립트 및 준비성 프로브가 포함된 initContainer 이미지의 버전입니다.

기본값은 1.32 입니다.

database:
name: mongodb-enterprise-init-appdb
version: 1.32

MongoDB Agent 시작 스크립트 및 준비성 프로브가 포함된 initContainer 이미지의 이름입니다.

기본값은 MongoDB Enterprise-init-데이터베이스 입니다.

database:
name: mongodb-enterprise-init-database
version: 1.32

MongoDB Agent 시작 스크립트 및 준비성 프로브가 포함된 initContainer 이미지의 버전입니다.

기본값은 1.32 입니다.

database:
name: mongodb-enterprise-init-database
version: 1.32

Ops Manager 시작 스크립트 및 준비성 프로브가 포함된 initContainer 이미지의 버전입니다.

기본값은 mongodb-enterprise-init-ops-manager 입니다.

database:
name: mongodb-enterprise-init-ops-manager
version: 1.32

Ops Manager 시작 스크립트 및 준비성 프로브가 포함된 initContainer 이미지의 버전입니다.

기본값은 1.32 입니다.

database:
name: mongodb-enterprise-init-ops-manager
version: 1.32

Kubernetes Operator가 Kubernetes cluster가 managed하는 securityContext 설정을 상속할지 여부를 결정하는 플래그입니다.

OpenShift 또는 제한적인 환경에서 Kubernetes Operator를 실행하려면 이 값이 true 여야 합니다.

기본값은 false 입니다.

# Set this to true if your cluster is managing SecurityContext for you.
# If running OpenShift (Cloud, Minishift, etc.), set this to true.
managedSecurityContext: false

기본값은 true 입니다.

# Set this to true if your cluster is managing SecurityContext for you.
# If running OpenShift (Cloud, Minishift, etc.), set this to true.
managedSecurityContext: true

Kubernetes 1.20 연산자 에서 애플리케이션 데이터베이스 이미지에 대한 컨테이너 레지스트리가 변경되었으며 이미지는 새 태그를 지정하다 접미사를 사용합니다. Kubernetes Operator를 업그레이드 하면 Kubernetes Operator가-ent 새 컨테이너 레지스트리를 -ubi8 또는 MDB_IMAGE_TYPE 또는 mongodb.imageType에설정하다 접미사로 참조하는 모든 이미지에 대해 이전 접미사 를 자동으로 업데이트합니다.

예를 들어, Kubernetes 연산자는 quay.io/mongodb/mongodb-enterprise-server:4.4.5-entquay.io/mongodb/mongodb-enterprise-server:4.4.5-ubi8 로 변경합니다.

Kubernetes 연산자가 접미사를 자동으로 업데이트하지 않도록 하려면 MDB_APPDB_ASSUME_OLD_FORMAT 또는 mongodb.appdbAssumeOldFormattrue 로 설정합니다. 예를 들어, 자체 리포지토리에서 이 이미지를 미러링하는 경우 자동 접미사 변경을 중지할 수 있습니다.

기본값은 false 이며, 이미지 접미사를 자동으로 업데이트합니다.

mongodb:
appdbAssumeOldFormat: false

애플리케이션 데이터베이스 이미지의 접미사입니다.

Kubernetes 1.20 연산자 에서 애플리케이션 데이터베이스 이미지에 대한 컨테이너 레지스트리가 변경되었으며 이미지는 새 태그를 지정하다 접미사를 사용합니다. Kubernetes Operator를 업그레이드 하면 Kubernetes Operator가-ent 새 컨테이너 레지스트리를 -ubi8 또는 MDB_IMAGE_TYPE 또는 mongodb.imageType에설정하다 접미사로 참조하는 모든 이미지에 대해 이전 접미사 를 자동으로 업데이트합니다.

예를 들어, Kubernetes 연산자는 quay.io/mongodb/mongodb-enterprise-server:4.4.5-entquay.io/mongodb/mongodb-enterprise-server:4.4.5-ubi8 로 변경합니다.

Kubernetes 연산자가 접미사를 자동으로 업데이트하지 않도록 하려면 MDB_APPDB_ASSUME_OLD_FORMAT 또는 mongodb.appdbAssumeOldFormattrue 로 설정합니다. 예를 들어, 자체 리포지토리에서 이 이미지를 미러링하는 경우 자동 접미사 변경을 중지할 수 있습니다.

기본값은 ubi8 입니다. 일관성을 위해 ubi 이미지만 사용하는 것이 좋지만 필요한 경우 이 설정을 ubuntu2204 로 변경할 수 있습니다.

mongodb:
imageType: ubi8

Kubernetes Operator가 클러스터의 Kubernetes API 서버 엔드포인트에 연결을 시도하는 시간(초)입니다. 이 시간 제한은 다중 Kubernetes 클러스터 MongoDB 배포의 모든 Kubernetes 클러스터에 대해 설정하다 됩니다. Kubernetes Operator가 지정된 시간 내에 Kubernetes API 서버 로부터 응답을 받지 못하면 클러스터 상태를 '비정상'으로 기록합니다. 자세한 학습 은 Kubernetes 클러스터 문제 해결을 참조하세요.

기본값은 10 입니다.

multiCluster:
clusterClientTimeout: 10

Kubernetes Operator를 배포 하려는 네임스페이스입니다.

기본값 이외의 네임스페이스를 사용하려면 Kubernetes 연산자를 배포하려는 네임스페이스를 지정합니다.

기본값은 mongodb 입니다.

# Name of the Namespace to use
namespace: mongodb

Kubernetes Kubernetes Operator가 credentials.k8s.io API 사용하여 TLS 인증서에 서명할 수 있도록 허용하는 ClusterRole을 생성할지 여부를 결정합니다.

needsCAInfrastructure: true

기본값은 true 입니다.

Kubernetes 연산자 컨테이너의 이름입니다.

기본값은 mongodb-enterprise-operator 입니다.

operator:
deployment_name: mongodb-enterprise-operator

Kubernetes 연산자 배포 환경의 레이블입니다. 이 값은 기본 시간 초과와 로깅 수준 및 형식에 영향을 줍니다.

값은 다음과 같습니다.
로그 수준이 다음으로 설정된 경우
로그 형식이 다음으로 설정된 경우

dev

debug

text

prod

정보

JSON

기본값은 prod 입니다.

operator:
# Execution environment for the operator, dev or prod.
# Use dev for more verbose logging
env: prod

Kubernetes Operator가 수행할 수 있는 최대 동시 조정 수입니다.MaxConcurrentReconciles 를 설정합니다. 자세한 학습 은 Kubernetes Operator 여러 MongoDB 복제본 세트 배포를 참조하세요.

예시

operator:
# Control how many reconciles can be performed in parallel.
# Increasing the number of concurrent reconciliations decreases the time needed to reconcile all watched resources,
# but it might result in request load spikes and increased load on the Ops Manager API, and the Kubernetes API server generally.
maxConcurrentReconciles: 10

모든 배포에서 사용하는 컨테이너 아키텍처를 결정합니다.

기본값은 non-static입니다.

정적 컨테이너를 활성화하려면 static 으로 설정합니다.

참고

이 설정은 기존 배포를 포함한 모든 배포에 적용됩니다. 단일 배포에 대해 정적 컨테이너를 활성화하려면 metadata.annotations.mongodb.com/v1.architecture MongoDB 리소스 에서 를 대신 사용합니다.

operator.mdbDefaultArchitecture: static

Kubernetes가 배포, 서비스 계정, 역할, 파드와 같은 Kubernetes 연산자 객체에 할당하는 이름입니다.

이 값은 Kubernetes Operator가 있는 container 레지스트리의 이름에도 해당합니다.

기본값은 mongodb-enterprise-operator 입니다.

operator:
name: mongodb-enterprise-operator

Kubernetes Operator가 원격 분석을 수집하고 전송할 수 있도록 합니다. 다음 설정의 기본값 은 true입니다.

operator:
telemetry:
# Enables telemetry. Setting this to "false" will stop all telemetry.
enabled: true
# Adds RBAC clusterRole for kube-system UID detection for the Kubernetes cluster UID.
# Adds RBAC clusterRole for RBAC for nodes. We are listing exactly one node to detect the cluster provider (for example, eks).
# Adds RBAC clusterRole for /version query for detecting Kubernetes server version.
installClusterRole: true
collection:
# Controls how often the Kubernetes Operator collects and saves the data to the telemetry ConfigMap. It doesn't control whether this data is sent to MongoDB for analysis.
# Valid time units for frequency are "m", or "h". Anything less than one minute defaults to 1h.
frequency: 1h
# Enables the Kubernetes Operator to collect and send cluster-level telemetry.
# Note: the cluster UUID is unique but random and MongoDB has no way to map this to a customer.
clusters:
enabled: true
# Enables the Kubernetes Operator to collect and send deployment-level telemetry.
deployments:
enabled: true
# Enables the Kubernetes Operator to collect and send Kubernetes Operator-level telemetry.
operators:
enabled: true
# Enables sending the collected telemetry to MongoDB.
send:
enabled: true
# Controls how often the Kubernetes Operator sends the collected the data to MongoDB for analysis.
# Valid time units are "h". Anything less than one hour defaults to 168h, which is one week.
frequency: 168h

Kubernetes Operator가 HashiCorp Vault에 시크릿을 저장할지 여부를 결정합니다. 자세한 학습 은 시크릿 스토리지 도구 설정을 참조하세요. Vault와 함께 TLS를 사용하는 경우 연산자.vaultSecretBackend.tlsSecretRef도 지정해야 합니다.

기본값은 false 입니다.

operator:
# Set the following setting to "true" so that the MongoDB Kubernetes Operator stores secrets in Vault.
vaultSecretBackend: false

Vault에서 TLS 를 사용하는 경우 필수입니다. 볼트 구성에 사용된 TLS 시크릿으로 ca.crt 항목이 포함되어 있습니다. ca.crt 항목의 내용은 Vault TLS 인증서를 생성하는 데 사용된 CA 의 인증서와 일치해야 합니다. Kubernetes Operator는 이 TLS 시크릿을 시크릿 저장소 도구에 저장합니다. 자세한 내용은 Configure Secret Storage(시크릿 스토리지 구성)를 참조하세요. operator.vaultSecretBackend.enabledtrue 로 설정해야 합니다.

operator:
vaultSecretBackend: true
tlsSecretRef: "vault-tls-secret"

배포하려는 Kubernetes 연산자의 버전입니다.

기본값은 1.32 입니다.

operator:
version: 1.32

Kubernetes Operator가 MongoDB 리소스 변경 사항을 감시하는 네임스페이스입니다. 이 네임스페이스 기본값 과 다른 경우 Kubernetes Operator ServiceAccount가 이 네임스페이스 액세스 할 수 있는지 확인합니다.

  • 모든 네임스페이스를 감시하려면 *를 지정하고 mongodb-enterprise-operator Kubernetes Operator를 실행 데 사용하는 ServiceAccount에 ClusterRole을 할당합니다.

  • 모든 네임스페이스의 하위 집합 을 감시하려면 쉼표로 구분된 목록으로 지정하고 각 쉼표를 백슬래시로 이스케이프 처리한 다음 목록을 따옴표로 묶습니다(예: "operator.watchNamespace=ns1\,ns2".

네임스페이스의 하위 집합을 감시하는 것은 단일 Kubernetes 연산자 인스턴스가 다른 클러스터 리소스 유형을 감시하는 배포에서 유용합니다. 예를 들어, 네임스페이스의 한 하위 집합에서 MongoDB 리소스를 감시하고 네임스페이스의 다른 하위 집합에서 MongoDBMultiCluster 리소스를 감시하도록 Kubernetes 연산자를 구성할 수 있습니다. 리소스 조정 중에 경합 상태를 방지하려면 Kubernetes 연산자가 감시하려는 각 사용자 지정 리소스 유형에 대해 범위를 네임스페이스의 고유한 하위 집합으로 설정해야 합니다.

중요

Kubernetes Operator를 배포 하나 이상의 네임스페이스가 아닌 하나 이상의 네임스페이스에 Ops Manager 및 MongoDB 리소스를 배포 하려면 MongoDB 엔터프라이즈 Kubernetes Operator 배포의 범위 설정에서 사용해야 하는 값과 수행해야 할 추가 단계를 참조하세요.

기본값은 <metadata.namespace> 입니다.

# Watch one namespace
helm install enterprise-operator mongodb/enterprise-operator \
--set operator.watchNamespace='namespace-to-watch' <...>
# Watch both namespace-a and namespace-b
helm install enterprise-operator mongodb/enterprise-operator \
--set operator.watchNamespace="namespace-a\,namespace-b"
# Operator with name `mongodb-enterprise-operator-qa-envs` will
# watch ns-dev, ns-qa and ns-uat namespaces
helm install mongodb-enterprise-operator-qa-envs mongodb/enterprise-operator \
--set operator.watchNamespace="ns-dev\,ns-qa\,ns-uat"
# Operator with name `mongodb-enterprise-operator-staging` will
# watch ns-staging and ns-pre-prod
helm install mongodb-operator helm-chart --set operator.watchNamespace="ns-staging\,ns-pre-prod" mongodb-enterprise-operator-staging

Kubernetes 연산자가 감시하는 사용자 지정 리소스입니다.

Kubernetes Operator는 CustomResourceDefinitions를 설치하고 사용자가 지정한 리소스만 감시합니다.

Kubernetes Operator는 다음 값을 허용합니다:

설명

mongodb

데이터베이스 리소스에 대한 CustomResourceDefinitions를 설치하고 해당 리소스를 감시합니다.

mongodbusers

MongoDB 사용자 리소스에 대한 CustomResourceDefinitions를 설치하고 해당 리소스를 확인합니다.

opsmanagers

Ops Manager 리소스용 CustomResourceDefinitions를 설치하고 해당 리소스를 확인합니다.

operator:
watchedResources:
- mongodbusers
- mongodb
- opsmanagers

Ops Manager 이미지의 이름입니다.

기본값은 mongodb-enterprise-ops-manager 입니다.

opsManager:
name: mongodb-enterprise-ops-manager

MongoDB 이미지용 Quay 컨테이너 레지스트리의URL . 에이전트 .name이 추가되고 MDB_AGENT_IMAGE_REPOSITORY 환경 변수를 StatefulSet가 데이터베이스 배포를 위한 MongoDB Agent 이미지를 다운로드하는 전체 URL 로 설정합니다. 자세한 학습 은 컨테이너 이미지를 참조하세요.

기본값은 quay.io/mongodb 입니다.

registry:
agent: quay.io/mongodb/

Kubernetes 연산자가 애플리케이션 데이터베이스 이미지를 다운로드하는 리포지토리의 URL 입니다.

기본값은 quay.io/mongodb 입니다.

registry:
appDb: quay.io/mongodb

기본값 은 registration.connect.redhat.com/mongodb 입니다.

registry:
appDb: registry.connect.redhat.com/mongodb

리포지토리 에서 이미지를 가져오는 데 필요한 자격 증명 이 포함된 비밀입니다.

중요

OpenShift에는 이 설정이 필요합니다. 이 파일의 imagePullSecrets 설정에 정의하거나 Helm을 사용하여 Kubernetes 연산자를 설치할 때 전달합니다. Kubernetes 연산자를 사용하여 MongoDB 리소스를 여러 네임스페이스 또는 클러스터 전체 범위 에 배포하는 경우, Kubernetes 연산자를 설치한 네임스페이스에만 시크릿을 생성하십시오. Kubernetes 연산자는 모든 감시 대상 네임스페이스에서 시크릿을 동기화합니다.

registry:
# Specify the secret in the ``imagePullSecrets`` setting. If you
# use the MongoDB Kubernetes Operator to deploy MongoDB resources
# into multiple namespaces, create the secret only in the namespace
# where you installed the Operator. The Operator synchronizes
# the secret across all watched namespaces.
imagePullSecrets: <openshift-pull-secret>

애플리케이션 데이터베이스 시작 스크립트 및 준비성 프로브가 포함된 initContainer 이미지가 다운로드되는 리포지토리의 URL 입니다.

기본값은 quay.io/mongodb 입니다.

registry:
initAppDb: quay.io/mongodb

기본값 은 registration.connect.redhat.com/mongodb 입니다.

registry:
initAppDb: registry.connect.redhat.com/mongodb

Ops Manager 시작 스크립트 및 준비성 프로브가 포함된 initContainer 이미지가 다운로드되는 리포지토리의 URL 입니다.

기본값은 quay.io/mongodb 입니다.

registry:
initOpsManager: quay.io/mongodb

기본값 은 registration.connect.redhat.com/mongodb 입니다.

registry:
initOpsManager: registry.connect.redhat.com/mongodb

Kubernetes 연산자 이미지를 가져오는 리포지토리입니다. 비공개 리포지토리에서 Kubernetes 연산자 이미지를 가져오려면 이 값을 지정합니다.

기본값은 quay.io/mongodb 입니다.

registry:
operator: quay.io/mongodb

기본값 은 registration.connect.redhat.com/mongodb 입니다.

registry:
operator: registry.connect.redhat.com/mongodb

Ops Manager 리소스 의 이미지가 다운로드되는 리포지토리의URL 입니다.

기본값은 quay.io/mongodb 입니다.

registry:
opsManager: quay.io/mongodb

기본값 은 registration.connect.redhat.com/mongodb 입니다.

registry:
opsManager: registry.connect.redhat.com/mongodb

Kubernetes Operator의 CPU 및 메모리 소비 한도에 대한 사양입니다.

예시

# operator cpu requests and limits
resources:
requests:
cpu: 500m
memory: 200Mi

Kubernetes Operator의 CPU 및 메모리 소비 한도에 대한 사양입니다.

예시

# operator cpu requests and limits
resources:
limits:
cpu: 1100m
memory: 1Gi

Kubernetes 연산자 CustomResourceDefinition 에서 하위 리소스를 정의할 수 있는지 여부를 나타내는 플래그입니다.

기본값은 true 입니다.

subresourceEnabled: true

플래그를 사용하면 Kubernetes 클러스터 역할에 대한 사용자 유효성 검사 허용 웹훅을 구성할 수 있습니다.

배포서버 에서 Kubernetes 클러스터 역할을 허용하지 않는 경우 이 플래그를 false 로 설정합니다.

기본값은 true 입니다.

webhook:
installClusterRole: false

돌아가기

연산자 `kubectl` & `oc`