Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Especificação de recursos de multi-Kubernetes-Cluster

O recurso MongoDBMultiCluster define sua implantação do MongoDB de clusters multi-Kubernetes e fornece aos Controladores MongoDB para o Operador Kubernetes as informações necessárias para criar ou atualizar seus clusters, sistema do Ops Manager, statefulSets, serviços e outros recursos do Kubernetes.

O exemplo a seguir mostra uma especificação de recurso para uma implantação do MongoDB em cluster multi-Kubernetes:

1# This example provides statefulSet overrides per cluster.
2
3apiVersion: mongodb.com/v1
4kind: MongoDBMultiCluster
5metadata:
6 name: multi-replica-set
7spec:
8 version: 8.0.0
9 type: ReplicaSet
10 duplicateServiceObjects: false
11 credentials: my-credentials
12 opsManager:
13 configMapRef:
14 name: my-project
15 clusterSpecList:
16 - clusterName: cluster1.example.com
17 members: 2
18 statefulSet:
19 spec:
20 template:
21 spec:
22 containers:
23 # Example of custom sidecar containers. Remove it before using the file in production.
24 - name: sidecar1
25 image: busybox
26 command: [ "sleep" ]
27 args: [ "infinity" ]
28 # Use the following settings to override the default storage size of the "data" Persistent Volume.
29 volumeClaimTemplates:
30 - metadata:
31 name: data
32 spec:
33 resources:
34 requests:
35 storage: 1Gi
36 - clusterName: cluster2.example.com
37 members: 1
38 statefulSet:
39 spec:
40 template:
41 spec:
42 containers:
43 # Example of custom sidecar containers. Remove it before using the file in production.
44 - name: sidecar2
45 image: busybox
46 command: [ "sleep" ]
47 args: [ "infinity" ]
48 volumeClaimTemplates:
49 - metadata:
50 name: data
51 spec:
52 resources:
53 requests:
54 storage: 1Gi
55 - clusterName: cluster3.example.com
56 members: 1
57 statefulSet:
58 spec:
59 template:
60 spec:
61 containers:
62 # Example of custom sidecar containers. Remove it before using the file in production.
63 - name: sidecar3
64 image: busybox
65 command: [ "sleep" ]
66 args: [ "infinity" ]
67 volumeClaimTemplates:
68 - metadata:
69 name: data
70 spec:
71 resources:
72 requests:
73 storage: 1Gi
74
75...

Esta seção descreve as configurações que você deve utilizar para seu recurso MongoDBMultiCluster .

apiVersion

Tipo: string

Versão do esquema de recursos do MongoDB Kubernetes.

kind

Tipo: string

Tipo de recurso MongoDB Kubernetes para criar. Defina isso como MongoDBMultiCluster.

metadata.name

Tipo: string

Nome do recurso Kubernetes MongoDB que você está criando.

Os nomes de recursos devem ter 44 caracteres ou menos.

spec.credentials

Tipo: string

Nome do secret que você criou como credenciais de autenticação da API do Ops Manager para o Kubernetes Operator se comunicar com o Ops Manager.

O objeto Ops Manager Kubernetes Secret contendo as credenciais deve existir no mesmo namespace do recurso que você deseja criar.

Importante

O operador gerencia alterações no segredo

O Operador Kubernetes rastreia quaisquer alterações no Segredo e reconcilia o estado do recurso MongoDB.

spec.type

Tipo: string

Tipo de recurso MongoDB Kubernetes para criar. O único valor aceito para uma implantação do MongoDB em cluster multi-Kubernetes é ReplicaSet.

spec.version

Tipo: string

Versão do MongoDB instalada para este recurso do MongoDBMultiCluster .

Importante

Certifique-se de escolher uma versão compatível do MongoDB Server.

Versões compatíveis diferem dependendo da imagem base que o recurso do banco de dados MongoDB utiliza.

MongoDBMultiCluster recursos podem usar as seguintes configurações:

spec.additionalMongodConfig

Tipo: collection

Opções de configuração adicionais para iniciar processos no MongoDB.

O Kubernetes Operator aceita todas as opções de configuração que a versão do MongoDB que você distribui pelo MongoDB Agent aceita, exceto que o Kubernetes Operator substitui os valores que você fornece para qualquer uma das seguintes opções:

  • net.port

  • net.tls.certificateKeyFile

  • net.tls.clusterFile

  • replication.replSetName

  • security.clusterAuthMode

  • sharding.clusterRole

  • storage.dbPath

  • systemLog.destination

  • systemLog.path

Para saber mais sobre as opções de configuração que o operador Kubernetes possui, consulte Configurações exclusivas do operador Kubernetes do MongoDB.

Para saber quais opções de configuração você pode usar, consulte Opções avançadas para implantações do MongoDB na documentação do Ops Manager.

spec.agent

Tipo: collection

Configurações do MongoDB Agent para o recurso do MongoDB database.

spec.agent.startupOptions

Tipo: collection

Configurações do MongoDB Agent com as quais você deseja iniciar o recurso de reconhecimento de data center MongoDB.

Você deve fornecer as configurações do MongoDB Agent como pares de valor-chave. Os valores devem ser strings. Para obter uma lista das configurações do MongoDB Agent compatíveis, consulte:

spec.backup

Tipo: collection

O contêiner de coleta para spec.backup.mode, que permite backups contínuos para recursos MongoDB no Kubernetes Operator.

spec.backup.assignmentLabels

Tipo: array

Uma lista de etiquetas de atribuição para os processos do Serviço de Backup Daemon . Use rótulos de atribuição para identificar se processos específicos de daemon de backup estão associados a projetos específicos. Se você definir rótulos de atribuição usando o operador Kubernetes , os valores definidos no arquivo de configuração do Kubernetes para rótulos de atribuição substituirão os valores definidos na UI do MongoDB Ops Manager . Os rótulos de atribuição que você não define usando o Kubernetes Operator continuam a usar os valores definidos na interface do usuário do MongoDB Ops Manager .

spec.backup.autoTerminateOnDeletion

Tipo: booleano

Sinalizador que indica se o Kubernetes Operator interrompe e encerra o backup quando você exclui um MongoDBMultiCluster recurso. O valor padrão false é. Definir este sinalizador como true é recomendado se você deseja excluir o MongoDBMultiCluster recurso enquanto o spec.backup. configuração do modo está definida enabled para.

spec.backup.encryption

Tipo: objeto

Objeto que contém as definições de configuração de criptografia de backup.

spec.backup.encryption.kmip

Tipo: objeto

Objeto que contém as definições de configuração de criptografia de backup KMIP. Para saber mais, consulte Configurar o KMIP Backup Encryption para o Ops Manager.

spec.backup.encryption.kmip.client

Tipo: objeto

Objeto que contém as definições de configuração de criptografia de backup KMIP.

spec.backup.mode

Tipo: string

Habilita backups contínuos para um recurso do MongoDBMultiCluster . Os valores possíveis são enabled, disabled e terminated.

Observação

O spec.backup. A configuração de modo depende do backup habilitado no Ops Manager e exige que o valor na spec.backup.enabled especificação de recursos do Ops Manager seja definido true como.

Depois de ativar backups contínuos para seu recurso do MongoDB com spec.backup.mode, você pode verificar o status da cópia de segurança.

spec.backup.snapshotSchedule

Tipo: collection

Container de collection para configurações de agendamento de snapshots para backups contínuos de recursos do MongoDB no Kubernetes Operator.

spec.backup.snapshotSchedule.dailySnapshotRetentionDays

Tipo: número

Número de dias para manter snapshots diários. Você pode definir um valor entre 1 e 365. Definir o valor em 0 desabilita esta regra.

spec.backup.snapshotSchedule.fullIncrementalDayOfWeek

Tipo: string

Dia da semana em que o Ops Manager tira um snapshot completo. Essa configuração garante um backup completo recente. O Ops Manager define o valor-padrão como SUNDAY.

spec.backup.snapshotSchedule.monthlySnapshotRetentionMonths

Tipo: número

Número de meses para manter snapshots mensais. Você pode definir um valor entre 1 e 36. Definir o valor em 0 desabilita esta regra.

spec.backup.snapshotSchedule.pointInTimeWindowHours

Tipo: número

Número de horas no passado para as quais você pode criar um snapshot de ponto no tempo.

spec.backup.snapshotSchedule.referenceHourOfDay

Tipo: número

Hora do diaUTC para agendar snapshots usando um relógio de uma hora 24. Você pode definir um valor entre 0 e 23, inclusive.

spec.backup.snapshotSchedule.referenceMinuteOfHour

Tipo: número

UTC minute of the hour to schedule snapshots. You can set a value between 0 and 59, inclusive.

spec.backup.snapshotSchedule.snapshotIntervalHours

Tipo: número

Número de horas entre snapshots. Você pode definir um valor de 6, 8, 12 ou 24.

spec.backup.snapshotSchedule.snapshotRetentionDays

Tipo: número

Número de dias para manter snapshots recentes. Você pode definir um valor entre 2 e 5.

spec.backup.snapshotSchedule.weeklySnapshotRetentionWeeks

Tipo: número

Número de semanas para manter snapshots semanais. Você pode definir um valor entre 1 e 52. Definir o valor em 0 desabilita esta regra.

spec.cloudManager.configMapRef.name

Tipo: string

Alias para spec.opsManager.configMapRef.name.

spec.clusterSpecList

Tipo: collection

Lista de especificações para cada cluster do Kubernetes em um recurso do MongoDBMultiCluster .

spec.clusterSpecList.clusterName

Tipo: string

Nome do cluster onde o Operador do MongoDB Controladores para Kubernetes agenda o StatefulSet. Quando o Operador Kubernetes implementa este MongoDBMultiCluster recurso, ele cria uma conta de serviço. Esse nome é o que a conta de serviço no cluster do operador usa para se comunicar com os clusters de volume de trabalho.

spec.clusterSpecList.externalAccess.externalDomain

Tipo: string

Um domínio externo usado para expor externamente seu sistema de conjunto de réplicas.

By default, each replica set member uses the Kubernetes Pod's FQDN (*.svc.cluster.local) as the default hostname. However, if you add an external domain to this setting, the replica set uses a hostname that is a subdomain of the specified domain instead. This hostname uses the following format:

<replica-set-name>-<cluster-idx>-<pod-idx>.<externalDomain>

Por exemplo:

multi-replica-set-0-1.cluster-0.example.com

After you deploy the replica set with this setting, the Kubernetes Operator uses the hostname with the external domain to override the processes[n].hostname field in the Ops Manager automation configuration. Then, the MongoDB Agent uses this hostname to connect to mongod.

Para especificar outros nomes de host para conectar ao conjunto de réplica, você pode utilizar a configuração do spec.connectivity.replicaSetHorizons. No entanto, as seguintes conexões ainda usam o nome de host com o domínio externo:

WARNING: Specifying this field changes how Ops Manager registers mongod processes. You can't change the value of this field or any processes[n].hostname fields in the Ops Manager automation configuration for a running replica set deployment.

Importante

Use essa configuração somente ao implantar um conjunto de réplicas de sistema do MongoDB de cluster multi-Kubernetes sem uma interface de serviço. Consulte Implantar conjuntos de réplicas em um cluster multi-Kubernetes sem uma interface de serviço.

spec.clusterSpecList.externalAccess.externalService

Tipo: collection

Configuração para expor externamente um cluster específico em sua implantação do MongoDB de cluster multi-Kubernetes. Essas configurações substituem o spec.externalAccess.externalService global configurações.

Ao definir a configuração spec.externalAccess, o Kubernetes Operator automaticamente cria um serviço de balanceador de carga externa com valores padrão. Você pode substituir determinados valores ou adicionar novos valores dependendo de suas necessidades. Por exemplo, se você deseja criar serviços NodePort e não precisa de um balanceador de carga , será necessário configurar substituições em sua especificação do Kubernetes:

externalAccess:
externalService:
annotations:
# cloud-specific annotations for the service
spec:
type: NodePort # default is LoadBalancer
# you can specify other spec overrides if necessary

Para obter mais informações sobre a especificação do Kubernetes, consulte ServiceSpec na documentação do Kubernetes.

spec.clusterSpecList.externalAccess.externalService.annotations

Tipo: collection

Pares de valores-chave que permitem adicionar definições de configuração específicas do provedor de nuvem a um cluster específico em seu sistema do MongoDB de vários clusters Kubernetes. Esta configuração substitui a configuração global, spec.externalAccess.externalService.annotations. Para saber mais, consulte as anotações e a documentação do seu provedor de nuvem Kubernetes.

Você pode usar anotações para especificar valores de espaço reservado para serviços externos usados por sistemas do Kubernetes Operator. O operador Kubernetes substitui automaticamente estes valores pelos valores corretos, conforme descrito na tabela a seguir. O uso de espaços reservados permite fornecer anotações específicas em cada serviço para um Pod específico.

Valor
Descrição

{resourceName}

{namespace}

{podIndex}

Índice do Pod atribuído pelo StatefulSet e direcionado pelo serviço externo atual.

{podName}

Igual a {resourceName}-{clusterIndex}-{podIndex}.

{clusterName}

O nome do cluster atual definido em spec.clusterSpecList.clusterName.

{clusterIndex}

O índice atribuído inicialmente pelo Operador Kubernetes para o nome do cluster atual definido em spec.clusterSpecList.clusterName.

Este valor pode não refletir a ordem dos clusters de membros definidos em spec.clusterSpecList. Embora você possa alterar a ordem dos clusters de membros em spec.clusterSpecList, o Operador Kubernetes ainda usa o índice que ele atribuiu inicialmente para o nome do cluster atual.

{statefulSetName}

The StatefulSet. Equal to {resourceName}-{clusterIndex}.

{externalServiceName}

Nome gerado do serviço externo, com base nos valores de espaço reservado que você especificou. Igual a {resourceName}-{clusterIndex}-{podIndex}-svc-external.

{mongodProcessDomain}

The domain name of the server that is hosting the mongod process. Equal to spec.externalAccess.externalDomain if specified. Otherwise, equal to the domain used for the mongod process FQDN.

Por exemplo, para o nome de host do processo mdb-rs-1.example.com, example.com é o nome do domínio.

{mongodProcessFQDN}

The mongod process hostname set in the automation configuration.

O nome do host do processo depende da sua configuração de sistema. Se você tiver configurado sua implantação do MongoDB em clusters multi-Kubernetes para usar domínios externos, como para uma implantação sem Service Mesh, o nome do host do processo usará o seguinte formato:

{resourceName}-{clusterIndex}-{podIndex}.{mongodProcessDomain}

Por exemplo: mdb-rs-0-1.example.com

Se o seu sistema não utilizar domínios externos, o nome do host do processo utilizará o seguinte formato:

{resourceName}-{clusterIndex}-{podIndex}-svc.{namespace}.svc.cluster.local

Por exemplo: mdb-rs-1-svc.ns.svc.cluster.local

Observação

Você deve usar apenas valores de espaço reservado conhecidos, conforme especificado na tabela, e garantir que seus espaços reservados não usem valores vazios ou nulos. Caso contrário, o Kubernetes Operator retorna um erro. Por exemplo, você pode encontrar a seguinte mensagem de erro:

error replacing placeholders in map with key=external-dns.alpha.kubernetes.io/hostname, value={resourceName}-{podIndex}-{unknownPlaceholder}.{clusterName}-{clusterIndex}.example.com: missing values for the following placeholders: {clusterName}, {clusterIndex}, {unknownPlaceholder}``

Exemplo

O exemplo a seguir especifica os espaços reservados {resourceName}, {podIndex} e {namespace} :

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: mdb-rs
namespace: ns
spec:
replicas: 3
externalAccess:
externalService:
annotations:
external-dns.alpha.kubernetes.io/hostname: {resourceName}-{podIndex}-{namespace}.example.com

O Operador do Kubernetes preenche automaticamente as anotações para os serviços externos com base no valor apropriado para cada espaço reservado. Por exemplo:

mdb-rs-0-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-0-ns.example.com
mdb-rs-1-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-1-ns.example.com
mdb-rs-2-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-2-ns.example.com
spec.clusterSpecList.externalAccess.externalService.spec

Tipo: collection

Configuração do ServiceSpec. Para saber mais, consulte spec.clusterSpecList.externalAccess.externalService.

spec.clusterSpecList.memberConfig

Tipo: collection

Especificação para cada conjunto de réplicas MongoDB e seus membros em sua implantação do MongoDB de multikubernetes cluster.

The order of the elements in the object for each replica set must reflect the order of members in the replica set. Por exemplo, o primeiro elemento afeta o Pod no índice 0, o segundo elemento afeta o índice 1, e assim por diante.

Exemplo

Considere o seguinte exemplo de especificação para um sistema MongoDB de cluster multi-Kubernetes com três conjuntos de réplicas:

apiVersion: mongodb.com/v1
kind: MongoDBMultiCluster
metadata:
name: multi-replica-set
spec:
version: 8.0.0
type: ReplicaSet
duplicateServiceObjects: false
credentials: my-credentials
opsManager:
configMapRef:
name: my-project
clusterSpecList:
- clusterName: cluster1.example.com
members: 2
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- votes: 1
priority: "1.5"
tags:
tag2: "value2"
environment: "prod"
- clusterName: cluster2.example.com
members: 1
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- clusterName: cluster3.example.com
members: 1
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
spec.clusterSpecList.memberConfig.priority

Tipo: string

Número que indica a probabilidade relativa de um nó do conjunto de réplicas do MongoDB se tornar o primary.

  • Para aumentar a probabilidade relativa de que um nó do conjunto de réplicas se torne o primary, especifique um valor de priority mais alto.

  • Para diminuir a probabilidade relativa de que um nó do conjunto de réplicas se torne o primary, especifique um valor de priority mais baixo.

Por exemplo, um nó com uma memberConfig.priority de 1.5 tem mais probabilidade do que um nó com uma memberConfig.priority de 0.5 de se tornar o primary.

Um nó com um memberConfig.priority de 0 não está qualificado para se tornar o primary. Para saber mais, consulte Priority do nó.

spec.clusterSpecList.memberConfig.tags

Tipo: mapa

Mapa de tags de conjuntos de réplicas para direcionar operações de leitura e escrita para nós específicos do seu conjunto de réplicas MongoDB.

spec.clusterSpecList.memberConfig.votes

Tipo: número

Determines whether a MongoDB replica set member can vote in an election. Set to 1 to allow the member to vote. Set to 0 to exclude the member from an election.

spec.clusterSpecList.members

Tipo: número

Número de membros no conjunto de réplicas MongoDB.

spec.clusterSpecList.service

Tipo: string

Padrão: <resource_name>+"-service"

Nome do serviço Kubernetes que você deseja criar ou usar para um StatefulSet. Se um serviço com este nome já existir, o MongoDB Drivers for Kubernetes Operator não o excluirá nem recriará. Esta configuração permite que você crie seus próprios serviços personalizados e permite que o operador Kubernetes os reutilize.

spec.clusterSpecList.statefulSet.spec

Tipo: collection

Fornece a configuração para a substituição do StatefulSet para cada um dos StatefulSets do cluster em um sistema MongoDB de cluster multi-Kubernetes. Para definir a configuração global que se aplica a todos os clusters em sua implantação do MongoDB de multi-Kubernetes cluster, consulte spec.statefulSet.spec.

Esta configuração se aplica somente a tipos de recurso de conjunto de réplicas em sistemas do MongoDB de clusters multikubernetes.

spec.connectivity.replicaSetHorizons

Tipo: collection

Permite que você forneça configurações de DNS diferentes para os aplicativos clientes e os agentes do MongoDB. O Operador Kubernetes utiliza o DNS de horizonte dividido para membros do conjunto de réplica. Este recurso permite comunicação dentro do cluster Kubernetes e de fora do Kubernetes.

Você pode adicionar diversos mapeamentos externos por host.

Observação

Neste exemplo, os clientes se comunicam com o conjunto de réplicas usando o horizonte de example-website .

15 security:
16 tls:
17 enabled: true
18 connectivity:
19 replicaSetHorizons:
20 - "example-website": "web1.example.com:30907"
21 - "example-website": "web2.example.com:32350"
22 - "example-website": "web3.example.com:31185"
23...
spec.duplicateServiceObjects

Tipo: booleano

Padrão: true

Specifies whether the Kubernetes Operator duplicates a Pod's service mesh object in each cluster to allow DNS resolution. Set to false if you configure a DNS proxy for your service mesh. For example, see DNS Proxying in the Istio documentation.

spec.externalAccess

Tipo: collection

Especificação para expor sua implantação do MongoDB de cluster multi-Kubernetes para conexões externas. Para saber como se conectar ao MongoDB deployment de seu cluster multi-Kubernetes de fora do cluster Kubernetes, consulte Como conectar a recursos de vários clusters de fora do Kubernetes.

Essas configurações se aplicam a serviços em todos os clusters. Para substituir essas configurações globais em um cluster específico, use spec.clusterSpecList.externalAccess.externalService.

Se você adicionar spec.externalAccess, o Kubernetes Operator criará um serviço externo para cada Pod em um conjunto de réplicas. Os serviços externos fornecem um ponto de entrada externo para cada Pod do banco de dados MongoDB em um cluster. Cada serviço externo tem seletores que relacionam o serviço externo a um Pod específico.

Se você adicionar esta configuração sem um valor, o Kubernetes Operator criará um serviço externo com os seguintes valores padrão:

Campo
Valor
Descrição

Name

<pod-name>-svc-external

Nome do serviço externo. Não é possível alterar este valor.

Type

LoadBalancer

Cria um serviço LoadBalancer externo.

Port

<Port Number>

A port for mongod.

publishNotReadyAddress

true

Specifies that DNS records are created even if the Pod isn't ready. Do not set to false for any database Pod.

Observação

Se você configurar spec.clusterSpecList.externalAccess.externalDomain, o serviço externo adicionará outra portaPort Number + 1 () para backups.

spec.externalAccess.externalService

Tipo: collection

Especificação para substituir os valores padrão em spec.externalAccess.

Ao definir a configuração spec.externalAccess, o Kubernetes Operator automaticamente cria um serviço de balanceador de carga externa com valores padrão. Você pode substituir determinados valores ou adicionar novos valores dependendo de suas necessidades. Por exemplo, se você deseja criar serviços NodePort e não precisa de um balanceador de carga , será necessário configurar substituições em sua especificação do Kubernetes:

externalAccess:
externalService:
annotations:
# cloud-specific annotations for the service
spec:
type: NodePort # default is LoadBalancer
# you can specify other spec overrides if necessary

Para obter mais informações sobre a especificação do Kubernetes, consulte ServiceSpec na documentação do Kubernetes.

spec.externalAccess.externalService.annotations

Tipo: collection

Pares de valores-chave que permitem adicionar definições de configuração específicas do provedor de nuvem a todos os clusters em seu sistema do MongoDB de vários clusters Kubernetes. Para substituições específicas do cluster, consulte spec.clusterSpecList.externalAccess.externalService.annotations. Para saber mais, consulte as anotações e a documentação do provedor de nuvem que você usa para os sistemas do Kubernetes.

Você pode usar anotações para especificar valores de espaço reservado para serviços externos usados por sistemas do Kubernetes Operator. O operador Kubernetes substitui automaticamente estes valores pelos valores corretos, conforme descrito na tabela a seguir. O uso de espaços reservados permite fornecer anotações específicas em cada serviço para um Pod específico.

Valor
Descrição

{resourceName}

{namespace}

{podIndex}

Índice do Pod atribuído pelo StatefulSet e direcionado pelo serviço externo atual.

{podName}

Igual a {resourceName}-{clusterIndex}-{podIndex}.

{clusterName}

O nome do cluster atual definido em spec.clusterSpecList.clusterName.

{clusterIndex}

O índice atribuído inicialmente pelo Operador Kubernetes para o nome do cluster atual definido em spec.clusterSpecList.clusterName.

Este valor pode não refletir a ordem dos clusters de membros definidos em spec.clusterSpecList. Embora você possa alterar a ordem dos clusters de membros em spec.clusterSpecList, o Operador Kubernetes ainda usa o índice que ele atribuiu inicialmente para o nome do cluster atual.

{statefulSetName}

The StatefulSet. Equal to {resourceName}-{clusterIndex}.

{externalServiceName}

Nome gerado do serviço externo, com base nos valores de espaço reservado que você especificou. Igual a {resourceName}-{clusterIndex}-{podIndex}-svc-external.

{mongodProcessDomain}

The domain name of the server that is hosting the mongod process. Equal to spec.externalAccess.externalDomain if specified. Otherwise, equal to the domain used for the mongod process FQDN.

Por exemplo, para o nome de host do processo mdb-rs-1.example.com, example.com é o nome do domínio.

{mongodProcessFQDN}

The mongod process hostname set in the automation configuration.

O nome do host do processo depende da sua configuração de sistema. Se você tiver configurado sua implantação do MongoDB em clusters multi-Kubernetes para usar domínios externos, como para uma implantação sem Service Mesh, o nome do host do processo usará o seguinte formato:

{resourceName}-{clusterIndex}-{podIndex}.{mongodProcessDomain}

Por exemplo: mdb-rs-0-1.example.com

Se o seu sistema não utilizar domínios externos, o nome do host do processo utilizará o seguinte formato:

{resourceName}-{clusterIndex}-{podIndex}-svc.{namespace}.svc.cluster.local

Por exemplo: mdb-rs-1-svc.ns.svc.cluster.local

Observação

Você deve usar apenas valores de espaço reservado conhecidos, conforme especificado na tabela, e garantir que seus espaços reservados não usem valores vazios ou nulos. Caso contrário, o Kubernetes Operator retorna um erro. Por exemplo, você pode encontrar a seguinte mensagem de erro:

error replacing placeholders in map with key=external-dns.alpha.kubernetes.io/hostname, value={resourceName}-{podIndex}-{unknownPlaceholder}.{clusterName}-{clusterIndex}.example.com: missing values for the following placeholders: {clusterName}, {clusterIndex}, {unknownPlaceholder}``

Exemplo

O exemplo a seguir especifica os espaços reservados {resourceName}, {podIndex} e {namespace} :

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: mdb-rs
namespace: ns
spec:
replicas: 3
externalAccess:
externalService:
annotations:
external-dns.alpha.kubernetes.io/hostname: {resourceName}-{podIndex}-{namespace}.example.com

O Operador do Kubernetes preenche automaticamente as anotações para os serviços externos com base no valor apropriado para cada espaço reservado. Por exemplo:

mdb-rs-0-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-0-ns.example.com
mdb-rs-1-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-1-ns.example.com
mdb-rs-2-svc-external:
annotations:
external-dns.alpha.kubernetes.io/hostname: mdb-rs-2-ns.example.com
spec.externalAccess.externalService.spec

Tipo: collection

Configuração do ServiceSpec. Para saber mais, consulte spec.externalAccess.externalService.

spec.featureCompatibilityVersion

Tipo: número

Limita as alterações aos dados que ocorrem com uma atualização para uma nova versão principal. Isso permite que você faça o downgrade para a versão principal anterior. Para saber mais sobre compatibilidade de funcionalidades, consulte no Manual do MongoDB setFeatureCompatibilityVersion .

spec.logLevel

Tipo: string

Configura o nível de registro do agente de automação dentro do Pod. Os valores aceitos incluem:

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

spec.opsManager.configMapRef.name

Tipo: string

Nome do ConfigMap com a configuração de conexão do Cloud Manager ou Ops Manager. A configuração spec.cloudManager.configMapRef.name é um alias para essa configuração e pode ser usada em seu lugar.

Esse valor deve existir no mesmo namespace que o recurso que você deseja criar.

Importante

O operador gerencia alterações no ConfigMap

O Kubernetes Operator acompanha todas as alterações no ConfigMap e reconcilia o estado do recurso do MongoDB.

spec.persistent

Tipo: booleano

Padrão: true

WARNING: Grant your containers permission to write to your Persistent Volume. The Kubernetes Operator sets fsGroup = 2000, runAsUser = 2000, and runAsNonRoot = true in securityContext. Kubernetes Operator sets fsgroup equal to runAsUser to make the volume writable for a user that runs the main process in the container. To learn more, see Configure a Security Context for a Pod or Container and the related discussion in the Kubernetes documentation. If redeploying the resource doesn't fix issues with your Persistent Volume, contact MongoDB Support.

If you do not use Persistent Volumes, the Disk Usage and Disk IOPS charts cannot be displayed in either the Processes tab on the Deployment page or in the Metrics page when reviewing the data for this deployment.

spec.security.authentication

Tipo: collection

Especificações de autenticação para a implementação do MongoDB de clusters multikubernetes.

spec.security.authentication.agents

Tipo: collection

Configuração de autenticação do MongoDB Agent para o projeto do Cloud Manager ou Ops Manager.

spec.security.authentication.agents.automationLdapGroupDN

Tipo: string

O Nome Distinto (DN) do grupo LDAP ao qual o usuário do MongoDB Agent pertence.

Esta configuração é necessária se:

spec.security.authentication.agents.automationPasswordSecretRef

Tipo: collection

Detalhes do segredo que contém a senha para o spec.security.authentication.agents.automationUserName usuário.

Esta configuração é necessária se spec.security.authentication.agents. o modo LDAP é.

spec.security.authentication.agents.automationPasswordSecretRef.key

Tipo: string

Digite o spec.security.authentication.agents.automationPasswordSecretRef.name segredo que contém a senha do usuário em spec.security.authentication.agents.automationUserName.

Esta configuração é necessária se spec.security.authentication.agents. o modo LDAP é.

spec.security.authentication.agents.automationPasswordSecretRef.name

Tipo: string

Nome do segredo que contém a senha do spec.security.authentication.agents.automationUserName usuário. Você deve criar este segredo no mesmo namespace para o qual distribuirá o operador Kubernetes:

kubectl create secret generic ldap-agent-user \
--from-literal="password=<password>" -n <metadata.namespace>

Esse segredo deve conter uma chave cujo valor corresponda à senha do especificador.security.authentication.agents.automationUserName usuário em seu sistema de LDAP.

This setting is required if spec.security.authentication.agents.mode is LDAP.

spec.security.authentication.agents.automationPasswordSecretRef.optional

Tipo: booleano

Especifica se estas opções são obrigatórias ou opcionais:

spec.security.authentication.agents.automationUserName

Tipo: string

Nome do usuário que os MongoDB Agents usam para interagir com sua deployment do MongoDB de vários Kubernetes clusters. O nome de usuário é mapeado para um Nome Distinto (DN) LDAP de acordo com spec.security.authentication.ldap.userToDNMapping. O DN resultante precisa existir em seu sistema de LDAP.

This setting is required if spec.security.authentication.agents.mode is LDAP.

spec.security.authentication.agents.clientCertificateSecretRef.name

Tipo: string

Padrão: agente-certs

Especifica o secreto que contém o certificado TLS do agente MongoDB.

Este segredo deve conter a chave mms-automation-agent-pem. O valor dessa chave deve ser um certificado TLS que possa ser validado pelo servidor.

Você deve criar este segredo no mesmo namespace para o qual distribuirá o operador Kubernetes:

kubectl create secret generic agent-certs \
--from-file=mms-automation-agent-pem=<automation-cert.pem> \
--namespace=<metadata.namespace>
spec.security.authentication.enabled

Tipo: booleano

Padrão: false

Especifica se a autenticação está habilitada no projeto do Cloud Manager ou MongoDB Ops Manager . Se configurado para , você deverá configurar um mecanismo de autenticação em true .

Importante

O Kubernetes Operator managed a autenticação para esse recurso MongoDB se você incluir essa configuração, mesmo que ela esteja definida como false. Você não pode configurar a autenticação para esse recurso usando a interface de usuário ou as API do Cloud Manager ou do Ops Manager enquanto essa configuração existir na especificação do recurso.

Omita esta configuração se quiser managed a autenticação usando a interface de usuário ou as API do Cloud Manager ou do Ops Manager.

spec.security.authentication.agents.mode

Tipo: string

O mecanismo de autenticação que os MongoDB Agents de seu sistema do MongoDB de cluster multi-Kubernetes usam. Os valores válidos SCRAM SCRAM-SHA-1MONGODB-CRsão,,, X509 LDAPe. O valor especificado também deve estar presente em spec.security.authentication.modes. Recomendamos em SCRAM-SHA-256 (SCRAM) vez SCRAM-SHA-1 de. Se você SCRAM-SHA-1 especificar, você também deverá MONGODB-CR especificar.

Esta configuração é necessária se você especificou mais de um valor para spec.security.authentication.modes.

spec.security.authentication.ignoreUnknownUsers

Tipo: booleano

Padrão: false

Determina se você pode modificar usuários de banco de dados que não foram configurados por meio do Kubernetes Operator nem da interface de usuário do Cloud Manager ou do Ops Manager.

To manage database users directly through the mongod or mongos, set to true.

spec.security.authentication.internalCluster

Tipo: string

Especifica se a autenticação interna do cluster X.509 está habilitada.

Para habilitar a autenticação de cluster interno X.509, defina como "X509". Isso requer a especificação das seguintes configurações:

O operador Kubernetes aceita os seguintes valores:

  • ["X509"]: a autenticação interna do cluster X.509 está habilitada.

  • "" ou omitida: a autenticação interna do cluster não está habilitada.

Importante

Depois de habilitar a autenticação interna do cluster, não será possível desabilitá-la.

spec.security.authentication.ldap

Tipo: collection

Necessário para a autenticação LDAP.

Configures LDAP authentication for the Cloud Manager or Ops Manager project. To enable LDAP authentication, set spec.security.authentication.modes to ["LDAP"].

spec.security.authentication.ldap.authzQueryTemplate

Tipo: string

Necessário para a autorização LDAP.

Um modelo de URL de consulta com formatação LDAP RFC4515 e RFC executado pelo MongoDB para obter os grupos LDAP aos quais o usuário pertence. A query é relativa ao host ou hosts especificados no. Você pode utilizar os seguintes tokens no4516 spec.security.authentication.ldap.servers modelo:

  • {USER}
    Substitutes the authenticated username, or the transformed username, into the LDAP query.
  • {PROVIDED_USER}
    Substitui o nome de usuário fornecido, antes da autenticação ou transformação LDAP, na query LDAP. (Available starting in MongoDB version 4.2).

Para obter mais detalhes, consulte Modelos de query LDAP no Manual do MongoDB.

spec.security.authentication.ldap.bindQueryPasswordSecretRef

Tipo: collection

Necessário para a autenticação LDAP.

Especifica o secreto que contém a senha com a qual MongoDB se liga ao conectar ao servidor LDAP.

spec.security.authentication.ldap.bindQueryPasswordSecretRef.name

Tipo: string

Necessário para a autenticação LDAP.

Nome do segredo que contém a senha com a qual o MongoDB se vincula ao se conectar ao servidor LDAP.

The secret must contain only one password field which stores the password.

spec.security.authentication.ldap.bindQueryUser

Tipo: string

Necessário para a autenticação LDAP.

LDAP Nome Distinto ao qual MongoDB se liga ao conectar ao servidor LDAP.

spec.security.authentication.ldap.caConfigMapRef

Tipo: collection

Necessário para a autenticação LDAP com TLS.

ConfigMap que contém um CA que valida o certificado TLS do servidor LDAP.

spec.security.authentication.ldap.caConfigMapRef.key

Tipo: string

Necessário para a autenticação LDAP com TLS.

Nome do campo que armazena o CA que valida o certificado LDAP do servidor TLS.

spec.security.authentication.ldap.caConfigMapRef.name

Tipo: string

Necessário para a autenticação LDAP com TLS.

Nome do ConfigMap que contém um CA que valida o certificado TLS do servidor LDAP.

spec.security.authentication.ldap.caConfigMapRef.optional

Tipo: booleano

Especifica se estas opções são obrigatórias ou opcionais:

spec.security.authentication.ldap.servers

Tipo: array de strings

Necessário para a autenticação LDAP.

Lista de nomes de hosts e portas dos servidores LDAP. Especifique os nomes de host com suas respectivas portas no seguinte formato:

spec:
security:
authentication:
ldap:
servers:
- "<hostname1>:<port1>"
- "<hostname2>:<port2>"
spec.security.authentication.ldap.timeoutMS

Tipo: inteiro

Especifica quantos milissegundos uma solicitação de autenticação deve esperar antes de atingir o tempo limite.

spec.security.authentication.ldap.transportSecurity

Tipo: string

Necessário para a autenticação LDAP.

Especifica se o servidor LDAP aceita TLS.

If the LDAP server accepts TLS, set the value to tls. If the LDAP server doesn't accept TLS, leave this value blank or set the value to none.

Observação

Se você especificar uma string diferente de none ou tls, o Kubernetes Operator continuará definindo a configuração como tls.

spec.security.authentication.ldap.userCacheInvalidationInterval

Tipo: inteiro

Especifica quantos segundos o MongoDB espera para limpar o cache do usuário LDAP. O padrão é 30 segundos.

spec.security.authentication.ldap.userToDNMapping

Tipo: string

Maps the username provided to mongod or mongos for authentication to an LDAP Distinguished Name (DN).

Para obter mais detalhes, consulte security.ldap.userToDNMapping no Manual do MongoDB.

spec.security.authentication.modes

Tipo: array

Especifica o mecanismo de autenticação usado pelo sistema do MongoDB de clusters multikubernetes. Os valores válidos são SCRAM, SCRAM-SHA-1, MONGODB-CR, X509 e LDAP. Recomendamos SCRAM-SHA-256 (SCRAM) em vez SCRAM-SHA-1. Se você especificar SCRAM-SHA-1, também deverá especificar MONGODB-CR.

Observação

Para habilitar a autenticação de cluster interno X.509 para o projeto do Cloud Manager ou Ops Manager, defina este valor como ["X509"] e especifique as seguintes configurações:

Se você fornecer mais de um valor para spec.security.authentication.modes, também deverá especificar um valor para spec.security.authentication.agents.mode.

spec.security.authentication.requireClientTLSAuthentication

Tipo: booleano

Padrão: false

Specifies whether the MongoDB host requires clients to connect using a TLS certificate. Defaults to true if you enable TLS authentication.

Para habilitar a autenticação TLS , forneça um valor para o spec.security.certsSecretPrefix configuração.

spec.security.certsSecretPrefix

Tipo: string

Text to prefix to the Kubernetes secrets that you created that contain your replica set's TLS keys and certificates.

É necessário prefixar os segredos com <prefix>-<metadata.name>.

For example, if you call your deployment my-deployment and you set the prefix to mdb, you must name the TLS secret for the client TLS communications mdb-my-deployment-cert. Also, you must name the TLS secret for internal cluster authentication (if enabled) mdb-my-deployment-clusterfile.

Para saber mais sobre nomear os segredos que contêm seus certificados TLS , consulte o tópico em Início Rápido do Multi-Kubernetes-Cluster que se aplica à sua implantação.

spec.security.roles

Tipo: array

Array que define funções definidas pelo usuário que oferecem controle de acesso refinado sobre seu sistema do MongoDB de vários clusters Kubernetes.

Para habilitar roles definidas pelo usuário, o spec.security.authentication.enabled deve true ser.

Exemplo

Neste exemplo, um role definido pelo usuário denominado customRole permite aos usuários atribuídos a este role a:

  • Inserir documentos na collection cats no banco de dados pets e

  • Encontre e insira documentos na collection dogs no banco de dados pets.

1 security:
2 authentication:
3 enabled: true
4 modes:
5 - "SCRAM"
6 roles:
7 - role: "customRole"
8 db: admin
9 privileges:
10 - actions:
11 - insert
12 resource:
13 collection: cats
14 db: pets
15 - actions:
16 - insert
17 - find
18 resource:
19 collection: dogs
20 db: pets
21...
spec.security.roles.authenticationRestrictions

Tipo: array

Array que define o endereço IP de e para o qual os usuários atribuídos a esta spec.security.roles.role podem se conectar.

spec.security.roles.authenticationRestrictions.clientSource

Tipo: array

Array de endereços IP ou blocos CIDR a partir dos quais os usuários atribuídos a este spec.security.roles.role podem se conectar.

Os servidores MongoDB rejeitam solicitações de conexão de usuários com esse role se as solicitações vierem de um cliente que não esteja presente nessa array.

spec.security.roles.authenticationRestrictions.serverAddress

Tipo: array

Array de endereços IP ou blocos CIDR aos quais os usuários atribuídos a este spec.security.roles.role podem se conectar.

Os servidores MongoDB rejeitam solicitações de conexão de usuários com esse role se o cliente solicitar a conexão a um servidor que não esteja presente nessa array.

spec.security.roles.db

Tipo: string

O reconhecimento de data center no qual armazenar o role definido pelo usuário.

Exemplo

admin

spec.security.roles.privileges

Tipo: array

Array que descreve os privilégios dos usuários que concederam esse role.

spec.security.roles.privileges.actions

Tipo: array

Lista de ações que os usuários que receberam essa função podem executar. Para obter uma lista de valores aceitos, consulte Ações de privilégio no Manual do MongoDB das versões do MongoDB que você implementa com o Kubernetes Operator.

spec.security.roles.privileges.resource

Tipo: collection

Recursos para os quais o privilégio spec.security.roles.privilegios.actions se aplicam.

Essa collection deve incluir:

spec.security.roles.privileges.resource.cluster

Tipo: booleano

Padrão: false

Sinalizador que indica que o privilégio spec.security.roles.privilegest.actions se aplica a todos os bancos de dados e collections no MongoDB deployment.

Se definido como verdadeiro, não forneça valores para spec.security.roles.privilege.resource.db e spec.security.roles.privilege.resource.collection.

spec.security.roles.privileges.resource.collection

Tipo: string

Coleção no spec.security.roles.privilegest.resource.db para o qual o privilégio spec.security.roles.privilegest.actions se aplica.

Se você fornecer um valor para esta configuração, você também deverá fornecer um valor para spec.security.roles.privilegios.resource.db.

spec.security.roles.privileges.resource.db

Tipo: string

Banco de dados ao qual o privilégio spec.security.roles.privilegios.actions se aplicam.

Se você fornecer um valor para esta configuração, você também deverá fornecer um valor para spec.security.roles.privilege.resource.collection.

spec.security.roles.role

Tipo: string

Nome do role definido pelo usuário.

spec.security.tls.additionalCertificateDomains

Tipo: collection

List of every domain that should be added to TLS certificates to each Pod in this deployment. When you set this parameter, every CSR that the Kubernetes Operator transforms into a TLS certificate includes a SAN in the form <pod name>.<additional cert domain>.

Os recursos do conjunto de réplicas não precisam desse parâmetro. Use spec.connecttivity.replicaSetHorizons no lugar.

Observação

If you add this parameter to a TLS-enabled resource, Kubernetes displays an error when the resource reaches the Pending state. This error displays: Please manually remove the |csr| in order to proceed. To remedy this issue:

  1. Remova todos os CSR existentes para que o Kubernetes possa gerar novos CSRs. Para saber como excluir um recurso, consulte a exclusão de recursos na documentação do Kubernetes.

  2. Aprove os CSRs após o Kubernetes gerá-los.

spec.security.tls.ca

Tipo: string

Forneça o nome do ConfigMap que armazena a CA.

Importante

If you use a custom CA to sign your TLS certificates for the MongoDBMultiCluster resource, you must specify this parameter.

O Operador Kubernetes exige que você nomeie o certificado para o recurso do MongoDBMultiCluster ca-pem no ConfigMap.

spec.security.tls.enabled

Tipo: booleano

Importante

spec.security.tls.enabled está obsoleto e será removido em uma versão futura do Kubernetes Operator. Para habilitar o TLS, forneça um valor para o spec.security.certsSecretPrefix configuração.

Criptografa comunicações usando certificados TLS entre:

  • O MongoDB hospeda em um conjunto de réplicas ou configuração de cluster fragmentado

  • Clientes (mongo shell, drivers, MongoDB Compass e outros) e o deployment do MongoDB

spec.statefulSet.spec

Tipo: collection

Especificação global para o StatefulSet que o Operador de Controladores Kubernetes do MongoDB cria para sua implantação do MongoDB de clusters multi Kubernetes.

Para revisar quais campos você pode adicionar aos spec.statefulSet.spec aplicativos, consulte StatefulSetSpec v1 na documentação do Kubernetes.