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 do recurso do banco de dados MongoDB

Observação

Em qualquer lugar nesta página que diz Gerente de Operações, você pode substituir o Gerenciador de Nuvem.

O Operador de Controladores do MongoDB para Kubernetes cria o Kubernetes statefulSets a partir de arquivos de especificação que você escreve.

O Kubernetes Operator cria recursos específicos do MongoDB no Kubernetes como recursos personalizados.

Para gerenciar esses recursos personalizados, use o seguinte processo:

  1. Crie ou atualize uma especificação de recurso MongoDB .

  2. Direcione os controladoras do MongoDB para o Kubernetes Operator para aplicá-lo ao seu ambiente Kubernetes. Como resultado, o Kubernetes Operator executa estas ações:

    • Cria os StatefulSets, serviços e outros recursos definidos do Kubernetes.

    • Atualiza a configuração de implantação do Ops Manager para refletir as alterações.

Tipo de implementação
StatefulSets
Tamanho do StatefulSet

Autônomo

1

1 Pod

Conjunto de réplicas

1

1 Pod por nó

Cluster fragmentado

<numberOfShards> + 2

1 Pod por mongos, shard ou nó do servidor de configuração

Each MongoDB resource uses an object specification in YAML to define the characteristics and settings of the MongoDB object: standalone, replica set, and sharded cluster.

Cada tipo de recurso deve usar as seguintes configurações:

apiVersion

Tipo: string

Versão do esquema de recursos do MongoDB.

kind

Tipo: string

Tipo de recurso MongoDB para criar. Defina isso como MongoDB

metadata.name

Tipo: string

Nome do recurso MongoDB que você cria.

Os nomes de recursos devem ter 44 caracteres ou menos.

spec.credentials

Tipo: string

Obrigatório. Nome das credenciais de autenticação do Kubernetes secreto que você criou como Ops Manager API para o Kubernetes Operator se comunicar com o Cloud Manager ou Ops Manager.

The Ops Manager Kubernetes Secret object holding the Credentials must exist on the same Namespace as the resource you want to create.

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.persistent

Tipo: booleano

Padrão: Verdadeiro

AVISO: conceda aos seus contêineres permissão para gravar no Volume Persistente. O Operador Kubernetes define fsGroup = 2000, runAsUser = 2000 e runAsNonRoot = true em securityContext. O Kubernetes Operator define fsgroup igual a runAsUser para tornar o volume gravável para um usuário que executa o processo principal no container. Para saber mais, consulte Configurar um contexto de segurança para um pod ou contêiner e a discussão relacionada na documentação do Kubernetes. Se a reimplementação do recurso não corrigir os problemas com o Volume Persistente, entre em contato com o Suporte do MongoDB.

Se você não utilizar Volumes Persistentes, os gráficos Disk Usage e Disk IOPS não poderão ser exibidos na guia Processes na página Deployment ou na página Metrics ao revisar os dados para este sistema.

spec.type

Tipo: string

Tipo de recurso MongoDB para criar. Os valores aceitos são:

  • Standalone

  • ReplicaSet

  • ShardedCluster

spec.version

Tipo: string

Versão do MongoDB que você instalou nesse recurso do MongoDB.

O formato deve ser X.Y.Z para a edição Community e X.Y.Z-ent para a edição Enterprise.

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.

Observação

If you update this value to a later version of MongoDB for your database resources, the feature compatibility version remains at the MongoDB version you're upgrading from to give you the option to downgrade if necessary. If you want the feature compatibility version to match the new MongoDB version, you must manually set spec.featureCompatibilityVersion to the new version or to AlwaysMatchVersion. To learn more, see spec.featureCompatibilityVersion.

Cada recurso deve usar uma das seguintes configurações:

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 nome alternativo para essa configuração e pode ser usada como substituto.

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.cloudManager.configMapRef.name

Tipo: string

Alias for spec.opsManager.configMapRef.name.

Cada tipo de recurso pode usar as seguintes configurações:

metadata.annotations.mongodb.com/v1.architecture

Tipo: string

Determina a arquitetura do container usada por um sistema específico:

Os valores aceitos são:

  • static

  • non-static

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-project
annotations:
mongodb.com/v1.architecture: "static"
spec.agent.backupAgent.logRotate

Tipo: objeto

Limites após os quais o MongoDB Agent gira o log de backup.

spec.agent.backupAgent.logRotate.sizeThresholdMB

Tipo: inteiro

Tamanho máximo, em MB, de um arquivo de log de backup antes que o MongoDB Agent gire os registros.

spec.agent.backupAgent.logRotate.timeThresholdHrs

Tipo: inteiro

Número de horas após as quais o MongoDB Agent gira o arquivo de log de backup .

spec.agent.mongod.auditlogRotate

Tipo: objeto

Objeto que contém a configuração de rotação do registro de auditar para os processos MongoDB .

spec.agent.mongod.auditlogRotate.sizeThresholdMB

Tipo: string

Tamanho máximo para um arquivo de log individual antes da rotação. A string precisa ser capaz de ser convertida em float64. Valores fracionários de MB são suportados.

spec.agent.mongod.auditlogRotate.timeThresholdHrs

Tipo: inteiro

Número de horas após as quais o MongoDB Agent gira o arquivo de log de auditar .

spec.agent.mongod.auditlogRotate.numUncompressed

Tipo: inteiro

Número máximo de arquivos de log de auditar totais para deixar descompactados, incluindo o arquivo de log atual.

spec.agent.mongod.auditlogRotate.numTotal

Tipo: inteiro

Número total de arquivos de log de auditar que o MongoDB Ops Manager mantém. Se você não definir esse valor, o número total de arquivos de log de auditar será padronizado como 0.

spec.agent.mongod.auditlogRotate.percentOfDiskspace

Tipo: string

Porcentagem máxima do espaço total em disco que esses arquivos de log devem ocupar. A string precisa ser capaz de ser convertida para float64.

spec.agent.mongod.logRotate

Tipo: objeto

Limites após os quais o MongoDB Ops Manager gira os registros MongoDB de um processo.

spec.agent.mongod.logRotate.sizeThresholdMB

Tipo: string

Tamanho máximo para um arquivo de log individual antes da rotação. A string precisa ser capaz de ser convertida em float64. Valores fracionários de MB são suportados.

spec.agent.mongod.logRotate.timeThresholdHrs

Tipo: inteiro

Duração máxima em horas para um arquivo de log individual antes da próxima rotação. O tempo é desde a última rotação.

Ops Manager rotates the log file once the file meets either this timeThresholdHrs or the spec.agent.mongod.logRotate.sizeThresholdMB.

spec.agent.monitoringAgent.logRotate

Tipo: objeto

Limites após os quais o MongoDB Agent gira o registro de monitoramento.

spec.agent.monitoringAgent.logRotate.sizeThresholdMB

Tipo: inteiro

Tamanho máximo em MB para um arquivo de log individual antes que o MongoDB Agent gire o registro de monitoramento.

spec.agent.monitoringAgent.logRotate.timeThresholdHrs

Tipo: inteiro

Número de horas após as quais o MongoDB Agent gira o registro de monitoramento.

spec.agent.readinessProbe.environmentVariables

Tipo: objeto

Configura as seguintes variáveis de ambiente usadas para controlar os arquivos de log do teste de preparação:

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-project
spec:
agent:
readinessProbe:
environmentVariables:
READINESS_PROBE_LOGGER_BACKUPS: 1
READINESS_PROBE_LOGGER_MAX_SIZE: 10
READINESS_PROBE_LOGGER_MAX_AGE: 3
READINESS_PROBE_LOGGER_COMPRESS: true
MDB_WITH_AGENT_FILE_LOGGING: false
LOG_FILE_PATH: /var/log/mongodb-mms-automation/readiness.log
spec.featureCompatibilityVersion

Tipo: string

O padrão é a versão principal anterior do MongoDB após a atualização do MongoDB .

Limita as alterações aos dados que ocorrem com uma atualização para uma nova versão principal. Por exemplo, se você atualizar do MongoDB 5.0 para o MongoDB 6.0, a versão de compatibilidade do recurso permanecerá em 5.0 para lhe dar a opção de fazer o downgrade, se necessário.

Se quiser que a versão de compatibilidade do recurso corresponda à nova versão do MongoDB , você deve definir manualmente featureCompatibilityVersion para a nova versão. Por exemplo, featureCompatibilityVersion: 6.0.

Como alternativa, você pode habilitar a opção AlwaysMatchVersion para atualizar automaticamente a versão de compatibilidade do recurso para corresponder à versão do MongoDB durante as atualizações. Por exemplo, featureCompatibilityVersion: AlwaysMatchVersion.

To learn more about feature compatibility, see setFeatureCompatibilityVersion in the MongoDB Manual.

spec.clusterDomain

Tipo: string

Padrão: cluster.local

Nome de domínio do cluster Kubernetes onde você implementa o Operador Kubernetes. Quando o Kubernetes cria um StatefulSet, o Kubernetes atribui a cada Pod um FQDN. Para atualizar o Cloud Manager ou o Ops Manager, o Kubernetes Operator calcula o FQDN para cada Pod usando um nome de cluster fornecido. O Kubernetes não fornece uma API para consultar esses nomes de host.

Aviso

Você deve configurar o spec.clusterDomain se seu cluster do Kubernetes tiver um domínio-padrão diferente do cluster.local padrão. Se você não usar o padrão nem definir a opção spec.clusterDomain, o operador Kubernetes pode não funcionar conforme o esperado.

spec.clusterName

Tipo: string

Padrão: cluster.local

Importante

spec.clusterName está obsoleto

Use spec.clusterDomain instead.

Nome de domínio do cluster Kubernetes onde você implementa o Operador Kubernetes. Quando o Kubernetes cria um StatefulSet, o Kubernetes atribui a cada Pod um FQDN. Para atualizar o Cloud Manager ou o Ops Manager, o Kubernetes Operator calcula o FQDN para cada Pod usando um nome de cluster fornecido. O Kubernetes não fornece uma API para consultar esses nomes de host.

Aviso

Você deve configurar o spec.clusterDomain se seu cluster do Kubernetes tiver um domínio-padrão diferente do cluster.local padrão. Se você não usar o padrão nem definir a opção spec.clusterDomain, o operador Kubernetes pode não funcionar conforme o esperado.

metadata.namespace

Tipo: string

namespace MongoDB do Kubernetes onde você cria este recurso do e outros objetos.

spec.service

Tipo: string

Padrão: <resource_name>+"-svc" and <resource_name>+"-svc-external"

Importante

spec.service está obsoleto

Use spec.statefulSet.spec.serviceName instead.

Nome do serviço Kubernetes a ser criado ou utilizado para um StatefulSet. Se o 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.logLevel

Tipo: string

Padrão: INFO

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

  • DEBUG

  • INFO

  • WARN

  • ERROR

  • FATAL

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 this setting to true.

Outras configurações que você pode e deve usar em uma especificação de recurso do MongoDB dependem de qual item do deployment do MongoDB você deseja criar:

Observação

All of the Standalone Settings also apply to replica set resources.

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:

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

To learn which configuration options you can use, see Advanced Options for MongoDB Deployments in the Ops Manager documentation.

spec.agent

Tipo: collection

Configurações do MongoDB Agent para o recurso de banco de dados MongoDB.

spec.agent.startupOptions

Tipo: collection

Configurações do MongoDB Agent com as quais você deseja iniciar o recurso do banco de dados 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:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-standalone
6spec:
7 version: "8.0.0"
8 service: my-service
9
10 opsManager:
11 configMapRef:
12 name: my-project
13 credentials: my-credentials
14 type: Standalone
15
16 persistent: true
17 agent:
18 startupOptions:
19 maxLogFiles: "30"
20 dialTimeoutSeconds: "40"
21...
spec.podSpec

Tipo: objeto

Objeto que contém as especificações dos pods CustomResourceDefinition do MongoDB.

spec.externalAccess

Tipo: collection

Especificação para expor seu cluster para conexões externas. Para saber como se conectar ao seu recurso do MongoDB de fora do cluster Kubernetes, consulte Como conectar a um recurso de banco de dados MongoDB de fora do Kubernetes.

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

Especifica que registros DNS são criados mesmo que o Pod não esteja pronto. Não defina como false para nenhum pod de banco de dados .

Observação

If you set spec.externalAccess.externalDomain, the external service adds another port (Port Number + 1) for backups.

spec.externalAccess.externalService

Tipo: collection

Specification for overriding the default values in 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 configurações específicas do provedor de nuvem a todos os clusters em seu sistema. 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}-{podIndex}.

{statefulSetName}

O StatefulSet. Igual a {resourceName}.

{externalServiceName}

Nome gerado do serviço externo, com base nos valores de espaço reservado que você especificou. Igual a {resourceName}-{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.

The process hostname depends on your deployment configuration. If you've configured your deployment to use external domains, the process hostname uses the following format:

{resourceName}-{podIndex}.{mongodProcessDomain}

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

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

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

Por exemplo: mdb-rs-1.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. Você também não pode usar um espaço reservado específico para sistemas de vários clusters Kubernetes para um único sistema de recursos do MongoDB .

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.podSpec.persistence.single

Tipo: collection

O Kubernetes Operator cria uma declaração de volume persistente e monta todos os três diretórios para dados, diário e registro no mesmo volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou as collections persistence.multiple, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Tamanho mínimo do volume persistente que deve ser montado. Esse valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 16Gi.

For example, if standalone deployment in requires 60 gigabytes of storage space, set this value to 60Gi.

storageClass

string

Tipo de armazenamento especificado em uma declaração de volume persistente. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.podSpec.persistence.multiple.data

Tipo: collection

O operador Kubernetes cria uma declaração de volume persistente e monta um diretório para dados em seu próprio volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou a collection persistence.single, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Capacidade mínima de armazenamento que deve estar disponível em um nó do Kubernetes para hospedar a implantação autônomo no Kubernetes. Este valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 16Gi.

Por exemplo, se esse recurso MongoDB exigir 60 gigabytes de espaço de armazenamento, defina esse valor como 60Gi.

storageClass

string

Tipo de armazenamento necessário para sistema standalone. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.podSpec.persistence.multiple.journal

Tipo: collection

O operador Kubernetes cria uma declaração de volume persistente e monta um diretório para diários em seu próprio volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou a collection persistence.single, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Capacidade mínima de armazenamento que deve estar disponível em um nó do Kubernetes para hospedar a implantação autônomo no Kubernetes. Este valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 1Gi.

Por exemplo, se esse recurso MongoDB exigir 60 gigabytes de espaço de armazenamento, defina esse valor como 60Gi.

storageClass

string

Tipo de armazenamento necessário para sistema standalone. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.podSpec.persistence.multiple.logs

Tipo: collection

O operador Kubernetes cria uma declaração de volume persistente e monta um diretório para registros em seu próprio volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou a collection persistence.single, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Capacidade mínima de armazenamento que deve estar disponível em um nó do Kubernetes para hospedar a implantação autônomo no Kubernetes. Este valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 3Gi.

Por exemplo, se esse recurso MongoDB exigir 60 gigabytes de espaço de armazenamento, defina esse valor como 60Gi.

storageClass

string

Tipo de armazenamento necessário para sistema standalone. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.podSpec.podTemplate

Tipo: collection

Modelo para os Pods Kubernetes que o Operador MongoDB Controladores para Kubernetes cria para os recursos de banco de dados MongoDB .

Os valores do modelo têm precedência sobre os valores especificados no spec.podSpec.

Observação

O Kubernetes Operator não valida os campos que você fornece no spec.podSpec.podTemplate.

spec.podSpec.podTemplate.metadata

Tipo: collection

Metadados para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para os recursos de banco de dados MongoDB .

Para revisar quais campos você pode adicionar a spec.podSpec.podTemplate.metadata, consulte a documentação do Kubernetes.

spec.podSpec.podTemplate.spec

Tipo: collection

Especificações dos Pods Kubernetes que o Operador Controladores MongoDB para Kubernetes cria para os recursos de banco de dados MongoDB .

Para analisar quais campos você pode adicionar ao spec.podSpec.podTemplate.spec, consulte a API central do Kubernetes PodSpec v1.

Observação

Quando você adiciona containers ao spec.podSpec.podTemplate.spec.containers, o Kubernetes Operator os adiciona ao pod do Kubernetes. Estes containers são anexados aos containers de recursos de banco de dados MongoDB no pod.

Use essa configuração para especificar as alocações de CPU e RAM de cada Pod. Por exemplo,consulte as amostras no Github.

spec.podSpec.podTemplate.spec.affinity.nodeAffinity

Tipo: Estrutura

Regra do Kubernetes rule para colocar Pods para conjunto de réplicas em uma faixa específica de nós.

Para obter um desempenho otimizado de leitura e gravação, use regras de afinidade de nós que restringem a execução de Pods em nós específicos ou prefere-se executar em nós específicos.

spec.podSpec.podTemplate.spec.affinity.podAffinity

Tipo: Estrutura

Regra MongoDB do Kubernetes para determinar se vários Pods de recursos devem ser colocalizados com outros Pods. Para saber mais sobre os casos de uso, consulte Afinidade e Antiafinidade na documentação do Kubernetes.

spec.podSpec.podTemplate.spec.affinity.podAntiAffinity

Tipo: Estrutura

Default: kubernetes.io/hostname

Define uma regra para distribuir os Pods que hospedam o recurso MongoDB para diferentes locais. Um local pode ser um único nó, rack ou região. Por padrão, o Kubernetes Operator tenta espalhar Pods em diferentes nós.

spec.podSpec.podTemplate.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

Tipo: Estrutura

Default: kubernetes.io/hostname

Essa chave define qual rótulo é usado para determinar a qual domínio de topologia um nó pertence.

Observação

All of the Standalone Settings also apply to replica set resources.

As seguintes configurações se aplicam a tipos de recurso de conjunto de réplicas:

spec.backup

Tipo: collection

The collection container for spec.backup.mode, which enables continuous backups for MongoDB resources in Kubernetes Operator.

spec.backup.assignmentLabels

Tipo: array

Uma lista de rótulos separados por vírgulas para atribuir daemons de backup, armazenamentos de oplog, armazenamentos de blocos, armazenamentos de snapshots do S3 e armazenamentos do sistema de arquivos a projetos ou grupos específicos. Use rótulos de atribuição para identificar se armazenar de backup específicos 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 IU do 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 Ops Manager.

Observação

If you set this parameter, the API key linked with the value of spec.credentials must have a Global Owner role.

spec.backup.mode

Tipo: string

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

Observação

The spec.backup.mode setting relies on Backup that is enabled in the Ops Manager and requires that spec.backup.enabled value in the Ops Manager resource specification is set to true.

After you enable continuous backups for your MongoDB resource with spec.backup.mode, you can check the backup status.

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.encryption.kmip.client.clientCertificatePrefix

Tipo: string

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.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.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.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.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 dia UTC para agendar snapshots usando um relógio de 24 horas. Você pode definir um valor entre 0 e 23.

spec.backup.snapshotSchedule.referenceMinuteOfHour

Tipo: número

Minuto da hora UTC para agendar snapshots. Você pode definir um valor entre 0 e 59, inclusive.

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.clusterName

Tipo: string

Padrão: cluster.local

Importante

spec.clusterName está obsoleto

Use spec.clusterDomain instead.

Nome de domínio do cluster Kubernetes onde você implementa o Operador Kubernetes. Quando o Kubernetes cria um StatefulSet, o Kubernetes atribui a cada Pod um FQDN. Para atualizar o Cloud Manager ou o Ops Manager, o Kubernetes Operator calcula o FQDN para cada Pod usando um nome de cluster fornecido. O Kubernetes não fornece uma API para consultar esses nomes de host.

Aviso

Você deve configurar o spec.clusterDomain se seu cluster do Kubernetes tiver um domínio-padrão diferente do cluster.local padrão. Se você não usar o padrão nem definir a opção spec.clusterDomain, o operador Kubernetes pode não funcionar conforme o esperado.

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.

Requisitos de horizonte dividido:

Exemplo

Conjunto de réplicas comunicam-se entre si usando os nomes de host configurados na configuração de replicação (members[n].host). O horizonte example-website fornece endereços alternativos para clientes que se conectam por meio desse horizonte.

Os nomes dos horizontes determinados são arbitrários para os fins deste exemplo. Você pode nomear seu horizonte qualquer coisa, mas certifique-se de que o nome do horizonte seja o mesmo para todos os nomes de host que fazem parte desse horizonte.

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-replica-set>
6spec:
7 members: 3
8 version: "8.0.0"
9 type: ReplicaSet
10 opsManager:
11 configMapRef:
12 name: <configMap.metadata.name>
13 credentials: <mycredentials>
14 persistent: true
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.externalAccess.externalDomain

Tipo: string

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

Por padrão, cada membro do conjunto de réplica utiliza o FQDN (*.svc.cluster.local) do Kubernetes Pode como o nome de host padrão. No entanto, se você adicionar um domínio externo a esta configuração, o conjunto de réplicas usará um nome de host que é um subdomínio do domínio especificado. Este nome de host usa o seguinte formato:

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

Por exemplo:

replica-set-1.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.

To specify other hostnames for connecting to the replica set, you can use the spec.connectivity.replicaSetHorizons setting. However, the following connections still use the hostname with the external domain:

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.

spec.members

Tipo: inteiro

Obrigatório. Número de membros do conjunto de réplicas.

spec.memberConfig

Tipo: collection

Especificação para cada conjunto de réplicas MongoDB distribuído a partir do recurso MongoDB.

A ordem dos elementos na array deve refletir a ordem dos nós no conjunto de réplicas. Por exemplo, o primeiro elemento da array 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 conjunto de réplicas de três nós:

spec:
memberConfig:
- votes: 1
priority: "0.5"
tags:
tag1: "value1"
environment: "prod"
- votes: 1
priority: "1.5"
tags:
tag2: "value2"
environment: "prod"
- votes: 0
priority: "0.5"
tags:
tag2: "value2"
environment: "prod"
spec.memberConfig.priority

Tipo: string

Number that indicates the relative likelihood of a MongoDB replica set member to become the 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.

A member with a memberConfig.priority of 0 is ineligible to become the primary. To learn more, see Member Priority.

spec.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.memberConfig.votes

Tipo: número

Determina se um nó do conjunto de réplicas do MongoDB pode votar em uma eleição. Defina como 1 para permitir que o nó vote. Defina como 0 para excluir o nó de uma eleição.

As seguintes configurações se aplicam somente a tipos de recurso de conjunto de réplicas:

spec.backup.autoTerminateOnDeletion

Tipo: booleano

Flag that controls whether the Kubernetes Operator stops and terminates the backup when you delete a MongoDB resource. If omitted, the default value is false. Setting this flag to true is useful when you want to delete the MongoDB custom resource while the spec.backup.mode setting is set to enabled.

Observação

All of the Replica Set Settings also apply to sharded cluster resources unless otherwise specified.

As configurações a seguir se aplicam somente aos tipos de recursos de cluster fragmentado:

spec.backup.snapshotSchedule.clusterCheckpointIntervalMin

Tipo: número

Número de minutos entre checkpoints sucessivos de clusters. Esta configuração se aplica apenas a clusters fragmentados que executam MongoDB com uma versão de compatibilidade do recurso do 7.0 ou anterior. Este número determina a granularidade das restaurações point-in-time para clusters fragmentados. Você pode definir um valor de 15, 30 ou 60.

spec.configServerCount

Tipo: inteiro

Required. Number of members in the config server.

spec.configSrv.additionalMongodConfig

Tipo: collection

Opções de configuração adicionais com as quais você deseja iniciar cada nó do servidor de configuração.

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:

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

To learn which configuration options you can use, see Advanced Options for MongoDB Deployments in the Ops Manager documentation.

spec.configSrv.agent

Tipo: collection

MongoDB Agent configuration settings for each config server member.

spec.configSrv.agent.startupOptions

Tipo: collection

MongoDB Agent settings with which you want to start each config server member.

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:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "8.0.0"
8 type: ShardedCluster
9 opsManager:
10 configMapRef:
11 name: my-project
12 credentials: my-credentials
13 persistent: true
14 shardCount: 2
15 mongodsPerShardCount: 3
16 mongosCount: 2
17 configServerCount: 1
18
19 mongos:
20 agent:
21 startupOptions:
22 maxLogFiles: "30"
23
24 configSrv:
25 agent:
26 startupOptions:
27 dialTimeoutSeconds: "40"
28 shard:
29 agent:
30 startupOptions:
31 serverSelectionTimeoutSeconds: "20"
32...
spec.configSrvPodSpec

Tipo: objeto

Objeto que contém as especificações dos pods do servidor de configuração MongoDB CustomResourceDefinition.

spec.configSrvPodSpec.persistence.single

Tipo: collection

O Kubernetes Operator cria uma declaração de volume persistente e monta todos os três diretórios para dados, diário e registro no mesmo volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou as collections persistence.multiple, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Tamanho mínimo do volume persistente que deve ser montado. Esse valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 5Gi.

For example, if each config server member in requires 60 gigabytes of storage space, set this value to 60Gi.

storageClass

string

Tipo de armazenamento especificado em uma declaração de volume persistente. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.configSrvPodSpec.persistence.multiple.data

Tipo: collection

O operador Kubernetes cria uma declaração de volume persistente e monta um diretório para dados em seu próprio volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou a collection persistence.single, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Capacidade mínima de armazenamento que deve estar disponível em um nó do Kubernetes para hospedar cada membro do servidor de configuração no Kubernetes. Esse valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 16Gi.

Por exemplo, se esse recurso MongoDB exigir 60 gigabytes de espaço de armazenamento, defina esse valor como 60Gi.

storageClass

string

Tipo de armazenamento necessário para cada nó do servidor de configuração. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.configSrvPodSpec.persistence.multiple.journal

Tipo: collection

O operador Kubernetes cria uma declaração de volume persistente e monta um diretório para diários em seu próprio volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou a collection persistence.single, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Capacidade mínima de armazenamento que deve estar disponível em um nó do Kubernetes para hospedar cada membro do servidor de configuração no Kubernetes. Esse valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 1Gi.

Por exemplo, se esse recurso MongoDB exigir 60 gigabytes de espaço de armazenamento, defina esse valor como 60Gi.

storageClass

string

Tipo de armazenamento necessário para cada nó do servidor de configuração. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.configSrvPodSpec.persistence.multiple.logs

Tipo: collection

O operador Kubernetes cria uma declaração de volume persistente e monta um diretório para registros em seu próprio volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou a collection persistence.single, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Capacidade mínima de armazenamento que deve estar disponível em um nó do Kubernetes para hospedar cada membro do servidor de configuração no Kubernetes. Esse valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 3Gi.

Por exemplo, se esse recurso MongoDB exigir 60 gigabytes de espaço de armazenamento, defina esse valor como 60Gi.

storageClass

string

Tipo de armazenamento necessário para cada nó do servidor de configuração. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.configSrvPodSpec.podTemplate

Tipo: collection

Modelo para os Pods do Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para cada nó do servidor de configuração.

Os valores do modelo têm precedência sobre os valores especificados no spec.configSrvPodSpec.

Observação

O Kubernetes Operator não valida os campos que você fornece no spec.configSrvPodSpec.podTemplate.

spec.configSrvPodSpec.podTemplate.metadata

Tipo: collection

Metadata for the Kubernetes Pods that the MongoDB Controllers for Kubernetes Operator creates for each config server member.

Para revisar quais campos você pode adicionar a spec.configSrvPodSpec.podTemplate.metadata, consulte a documentação do Kubernetes.

spec.configSrvPodSpec.podTemplate.spec

Tipo: collection

Especificações dos Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para cada nó do servidor de configuração.

Para analisar quais campos você pode adicionar ao spec.configSrvPodSpec.podTemplate.spec, consulte a API central do Kubernetes PodSpec v1.

Observação

Quando você adiciona containers ao spec.configSrvPodSpec.podTemplate.spec.containers, o operador Kubernetes os adiciona ao pod do Kubernetes. Esses containers são anexados a cada container-membro do servidor de configuração no Pod.

Use essa configuração para especificar as alocações de CPU e RAM de cada Pod. Por exemplo,consulte as amostras no Github.

spec.configSrvPodSpec.podTemplate.spec.affinity.podAffinity

Tipo: collection

Regra MongoDB do Kubernetes para determinar se vários Pods de recursos devem ser colocalizados com outros Pods. Para saber mais sobre os casos de uso, consulte Afinidade e Antiafinidade na documentação do Kubernetes.

spec.configSrvPodSpec.podTemplate.spec.affinity.nodeAffinity

Tipo: collection

Regra do Kubernetes rule para colocar Pods para conjunto de réplicas em uma faixa específica de nós.

Para obter um desempenho otimizado de leitura e gravação, use regras de afinidade de nós que restringem a execução de Pods em nós específicos ou prefere-se executar em nós específicos.

spec.configSrvPodSpec.podTemplate.spec.affinity.podAntiAffinity

Tipo: string

Default: kubernetes.io/hostname

Define uma regra para distribuir os Pods que hospedam o recurso MongoDB para diferentes locais. Um local pode ser um único nó, rack ou região. Por padrão, o Kubernetes Operator tenta espalhar Pods em diferentes nós.

spec.configSrvPodSpec.podTemplate.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

Tipo: string

Default: kubernetes.io/hostname

Essa chave define qual rótulo é usado para determinar a qual domínio de topologia um nó pertence.

spec.mongodsPerShardCount

Tipo: inteiro

Required. Number of members per shard.

spec.mongosCount

Tipo: inteiro

Required. Number of mongos instances in the sharded cluster.

spec.mongos.additionalMongodConfig

Tipo: collection

Additional configuration options with which you want to start each mongos instance.

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:

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

To learn which configuration options you can use, see Advanced Options for MongoDB Deployments in the Ops Manager documentation.

spec.mongos.agent

Tipo: collection

MongoDB Agent configuration settings for each mongos instance.

spec.mongos.agent.startupOptions

Tipo: collection

MongoDB Agent settings with which you want to start each mongos instance.

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:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "8.0.0"
8 type: ShardedCluster
9 opsManager:
10 configMapRef:
11 name: my-project
12 credentials: my-credentials
13 persistent: true
14 shardCount: 2
15 mongodsPerShardCount: 3
16 mongosCount: 2
17 configServerCount: 1
18
19 mongos:
20 agent:
21 startupOptions:
22 maxLogFiles: "30"
23
24 configSrv:
25 agent:
26 startupOptions:
27 dialTimeoutSeconds: "40"
28 shard:
29 agent:
30 startupOptions:
31 serverSelectionTimeoutSeconds: "20"
32...
spec.mongosPodSpec

Tipo: objeto

Objeto que contém as especificações dos pods do MongoDB CustomResourceDefinition mongos.

spec.mongosPodSpec.podTemplate

Tipo: collection

Modelo para os Pods Kubernetes que o Operador MongoDB Controladores para Kubernetes cria para cada instância do mongos.

Os valores do modelo têm precedência sobre os valores especificados no spec.mongosPodSpec.

Observação

O Kubernetes Operator não valida os campos que você fornece no spec.mongosPodSpec.podTemplate.

spec.mongosPodSpec.podTemplate.metadata

Tipo: collection

Metadata for the Kubernetes Pods that the MongoDB Controllers for Kubernetes Operator creates for each mongos instance.

Para revisar quais campos você pode adicionar a spec.mongosPodSpec.podTemplate.metadata, consulte a documentação do Kubernetes.

spec.mongosPodSpec.podTemplate.spec

Tipo: collection

Specifications of the Kubernetes Pods that the MongoDB Controllers for Kubernetes Operator creates for each mongos instance.

Para analisar quais campos você pode adicionar ao spec.mongosPodSpec.podTemplate.spec, consulte a API central do Kubernetes PodSpec v1.

Observação

When you add containers to spec.mongosPodSpec.podTemplate.spec.containers, the Kubernetes Operator adds them to the Kubernetes pod. These containers are appended to each mongos instance containers in the pod.

Use essa configuração para especificar as alocações de CPU e RAM de cada Pod. Por exemplo,consulte as amostras no Github.

spec.mongosPodSpec.podTemplate.spec.affinity.podAffinity

Tipo: collection

Opcional. Regra do Kubernetes rule para determinar se vários Pods de recursos MongoDB devem ser colocalizados com outros Pods.

spec.mongosPodSpec.podTemplate.spec.affinity.nodeAffinity

Tipo: collection

Regra do Kubernetes rule para colocar Pods para conjunto de réplicas em uma faixa específica de nós.

Para obter um desempenho otimizado de leitura e gravação, use regras de afinidade de nós que restringem a execução de Pods em nós específicos ou prefere-se executar em nós específicos.

spec.mongosPodSpec.podTemplate.spec.affinity.podAntiAffinity

Tipo: string

Default: kubernetes.io/hostname

Define uma regra para distribuir os Pods que hospedam o recurso MongoDB para diferentes locais. Um local pode ser um único nó, rack ou região. Por padrão, o Kubernetes Operator tenta espalhar Pods em diferentes nós.

spec.mongosPodSpec.podTemplate.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

Tipo: string

Default: kubernetes.io/hostname

Essa chave define qual rótulo é usado para determinar a qual domínio de topologia um nó pertence.

spec.shardCount

Tipo: inteiro

Required. Number of shards in the sharded cluster.

spec.shard.additionalMongodConfig

Tipo: collection

Opções de configuração adicionais com as quais você deseja iniciar cada nó fragmento de cluster fragmentado .

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:

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

To learn which configuration options you can use, see Advanced Options for MongoDB Deployments in the Ops Manager documentation.

spec.shard.agent

Tipo: collection

Configurações do MongoDB Agent para cada nó shard de cluster fragmentado.

spec.shard.agent.startupOptions

Tipo: collection

MongoDB Agent settings with which you want to start each sharded cluster shard member.

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:

1---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: my-sharded-cluster-options
6spec:
7 version: "8.0.0"
8 type: ShardedCluster
9 opsManager:
10 configMapRef:
11 name: my-project
12 credentials: my-credentials
13 persistent: true
14 shardCount: 2
15 mongodsPerShardCount: 3
16 mongosCount: 2
17 configServerCount: 1
18
19 mongos:
20 agent:
21 startupOptions:
22 maxLogFiles: "30"
23
24 configSrv:
25 agent:
26 startupOptions:
27 dialTimeoutSeconds: "40"
28 shard:
29 agent:
30 startupOptions:
31 serverSelectionTimeoutSeconds: "20"
32...
spec.shardPodSpec

Tipo: objeto

Objeto que contém as especificações dos pods de shard do MongoDB CustomResourceDefinition.

spec.shardPodSpec.persistence.multiple.data

Tipo: collection

O operador Kubernetes cria uma declaração de volume persistente e monta um diretório para dados em seu próprio volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou a collection persistence.single, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Capacidade mínima de armazenamento que deve estar disponível em um nó do Kubernetes para hospedar cada nó de shard do cluster fragmentado no Kubernetes. Esse valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 16Gi.

Por exemplo, se esse recurso MongoDB exigir 60 gigabytes de espaço de armazenamento, defina esse valor como 60Gi.

storageClass

string

Tipo de armazenamento necessário para cada nó de shard do cluster fragmentado. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.shardPodSpec.persistence.multiple.journal

Tipo: collection

O operador Kubernetes cria uma declaração de volume persistente e monta um diretório para diários em seu próprio volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou a collection persistence.single, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Capacidade mínima de armazenamento que deve estar disponível em um nó do Kubernetes para hospedar cada nó de shard do cluster fragmentado no Kubernetes. Esse valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 1Gi.

Por exemplo, se esse recurso MongoDB exigir 60 gigabytes de espaço de armazenamento, defina esse valor como 60Gi.

storageClass

string

Tipo de armazenamento necessário para cada nó de shard do cluster fragmentado. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.shardPodSpec.persistence.multiple.logs

Tipo: collection

O operador Kubernetes cria uma declaração de volume persistente e monta um diretório para registros em seu próprio volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou a collection persistence.single, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Capacidade mínima de armazenamento que deve estar disponível em um nó do Kubernetes para hospedar cada nó de shard do cluster fragmentado no Kubernetes. Esse valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 3Gi.

Por exemplo, se esse recurso MongoDB exigir 60 gigabytes de espaço de armazenamento, defina esse valor como 60Gi.

storageClass

string

Tipo de armazenamento necessário para cada nó de shard do cluster fragmentado. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

spec.shardPodSpec.podTemplate

Tipo: collection

Modelo para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para cada nó de shard do cluster fragmentado.

Os valores do modelo têm precedência sobre os valores especificados no spec.shardPodSpec.

Observação

O Kubernetes Operator não valida os campos que você fornece no spec.shardPodSpec.podTemplate.

spec.shardPodSpec.podTemplate.metadata

Tipo: collection

Metadados para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes criam para cada nó de shard do cluster fragmentado.

Para revisar quais campos você pode adicionar a spec.shardPodSpec.podTemplate.metadata, consulte a documentação do Kubernetes.

spec.shardPodSpec.podTemplate.spec

Tipo: collection

Especificações dos Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para cada nó de shard do cluster fragmentado.

Para analisar quais campos você pode adicionar ao spec.shardPodSpec.podTemplate.spec, consulte a API central do Kubernetes PodSpec v1.

Observação

When you add containers to spec.shardPodSpec.podTemplate.spec.containers, the Kubernetes Operator adds them to the Kubernetes pod. These containers are appended to each sharded cluster shard member containers in the pod.

Use essa configuração para especificar as alocações de CPU e RAM de cada Pod. Por exemplo,consulte as amostras no Github.

spec.shardPodSpec.podTemplate.spec.affinity.podAffinity

Tipo: string

Regra MongoDB do Kubernetes para determinar se vários Pods de recursos devem ser colocalizados com outros Pods. Para saber mais sobre os casos de uso, consulte Afinidade e Antiafinidade na documentação do Kubernetes.

spec.shardPodSpec.podTemplate.spec.affinity.nodeAffinity

Tipo: string

Regra do Kubernetes rule para colocar Pods para conjunto de réplicas em uma faixa específica de nós.

Para obter um desempenho otimizado de leitura e gravação, use regras de afinidade de nós que restringem a execução de Pods em nós específicos ou prefere-se executar em nós específicos.

spec.shardPodSpec.podTemplate.spec.affinity.podAntiAffinity

Tipo: string

Default: kubernetes.io/hostname

Define uma regra para distribuir os Pods que hospedam o recurso MongoDB para diferentes locais. Um local pode ser um único nó, rack ou região. Por padrão, o Kubernetes Operator tenta espalhar Pods em diferentes nós.

spec.shardPodSpec.podTemplate.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

Tipo: string

Default: kubernetes.io/hostname

Essa chave define qual rótulo é usado para determinar a qual domínio de topologia um nó pertence.

spec.shardSpecificPodSpec

Tipo: array

Lista que contém StatefulSet substitui por fragmento.

spec.shardSpecificPodSpec.podTemplate

Tipo: collection

Modelo para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para o shard específico.

Os valores do modelo têm precedência sobre os valores especificados no spec.shardSpecificPodSpec.

Observação

O Kubernetes Operator não valida os campos que você fornece no spec.shardSpecificPodSpec.podTemplate.

spec.shardSpecificPodSpec.podTemplate.metadata

Tipo: collection

Metadados para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para o shard específico.

Para revisar quais campos você pode adicionar a spec.shardSpecificPodSpec.podTemplate.metadata, consulte a documentação do Kubernetes.

spec.shardSpecificPodSpec.podTemplate.spec

Tipo: collection

Especificações dos Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para o shard específico.

Para analisar quais campos você pode adicionar ao spec.shardSpecificPodSpec.podTemplate.spec, consulte a API central do Kubernetes PodSpec v1.

Observação

Quando você adiciona containers ao spec.shardSpecificPodSpec.podTemplate.spec.containers, o operador Kubernetes os adiciona ao pod do Kubernetes. Esses containers são anexados aos containers de shard específicos no pod.

Use essa configuração para especificar as alocações de CPU e RAM de cada Pod. Por exemplo,consulte as amostras no Github.

spec.shardSpecificPodSpec.podTemplate.spec.affinity.podAffinity

Tipo: string

Regra MongoDB do Kubernetes para determinar se vários Pods de recursos devem ser colocalizados com outros Pods. Para saber mais sobre os casos de uso, consulte Afinidade e Antiafinidade na documentação do Kubernetes.

spec.shardSpecificPodSpec.podTemplate.spec.affinity.podAntiAffinity

Tipo: string

Default: kubernetes.io/hostname

Define uma regra para distribuir os Pods que hospedam o recurso MongoDB para diferentes locais. Um local pode ser um único nó, rack ou região. Por padrão, o Kubernetes Operator tenta espalhar Pods em diferentes nós.

spec.shardSpecificPodSpec.podTemplate.spec.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKey

Tipo: string

Default: kubernetes.io/hostname

Essa chave define qual rótulo é usado para determinar a qual domínio de topologia um nó pertence.

spec.topology

Tipo: string

Opcional

Padrão: SingleCluster

Define a topologia do cluster fragmentado. Não pode ser alterado para um sistema existente. Se definido como MultiCluster:

  • Todos os componentes do cluster fragmentado devem ter clusterSpecList definido:

    • spec.mongos.clusterSpecList

    • spec.configSrv.clusterSpecList

    • spec.shard.clusterSpecList

  • Os seguintes campos são ignorados, pois seus valores equivalentes são passados para cada agrupamento nos objetos spec.<section>.clusterSpecList:

    • spec.mongodsPerShardCount está definido em spec.shard.clusterSpecList.members

    • spec.mongosCount está definido em spec.mongos.clusterSpecList.members

    • spec.configServerCount está definido em spec.configSrv.clusterSpecList.members

    • spec.shardOverrides.memberConfig está definido em spec.shardOverrides.clusterSpecList.memberConfig

    • spec.shardOverrides.members está definido em spec.shardOverrides.clusterSpecList.members

    • spec.shardOverrides.statefulSet está definido em spec.shardOverrides.clusterSpecList.statefulSet

Exemplo:

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: sc
spec:
shardCount: 3
# we don't specify mongodsPerShardCount, mongosCount and configServerCount as they don't make sense for multi-cluster
topology: MultiCluster
type: ShardedCluster
version: 7.0.12
cloudManager:
configMapRef:
name: my-project
credentials: my-credentials
persistent: true
shard:
clusterSpecList:
- clusterName: member-cluster-0
members: 2 # each shard will have 2 members in cluster 0, unless overriden
- clusterName: member-cluster-1
members: 2
- clusterName: member-cluster-2
members: 1
shardOverrides:
- shardNames: [sc-2] # this override will apply to the third shard (here, shards are indexed from 0 to 2 as we have 3 shards)
clusterSpecList:
- clusterName: member-cluster-0 # all other fields are optional, if not provided the fields from matching member cluster from shard.clusterSpecList will be taken by default
members: 3
- clusterName: member-cluster-1 # we don't deploy this shard to member-cluster-1
# Note that it is also possible to make it explicit with members: 0
# we don't provide entry for clusterName: member-cluster-1, so it won't be deployed there
- clusterName: member-cluster-2
members: 2
configSrv:
clusterSpecList:
- clusterName: member-cluster-0
members: 2 # config server will have 2 members in this cluster
- clusterName: member-cluster-1
members: 1
- clusterName: member-cluster-2
members: 2
mongos:
clusterSpecList:
- clusterName: member-cluster-0
members: 2 # router will have 2 members in this cluster
- clusterName: member-cluster-1
members: 1

Os campos a seguir estão relacionados exclusivamente a implantações nas quais topology=MultiCluster:

spec.configSrv.clusterSpecList

Observação

Este campo está disponível exclusivamente para sistemas de cluster fragmentado de vários clusters.

Tipo : array de objetos

Necessário se topology=MultiCluster

Uma array de objetos para uso em sistemas de cluster fragmentado de cluster fragmentado com os seguintes campos de nível superior:

clusterName

Tipo: string

Nome do cluster onde o Operador do MongoDB Controladores para Kubernetes agenda o StatefulSet.

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

Especifica que registros DNS são criados mesmo que o Pod não esteja pronto. Não defina como false para nenhum pod de banco de dados .

Observação

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

members

Tipo: número

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

memberConfig

Tipo: collection

Especificação para cada shard do MongoDB e seus membros em sua implantação do MongoDB de cluster multi-Kubernetes.

A ordem dos elementos no objeto para shard deve refletir a ordem dos membros no conjunto de réplicas. 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"

podSpec.persistence

Tipo: collection

Only available in clusterSpecItem objects passed to spec.configSrv.clusterSpecList and spec.shard.clusterSpecList. Overrides the existing persistence configuration for a given cluster.

statefulSet

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.duplicateServiceObjects

Observação

Este campo está disponível exclusivamente para sistemas de cluster fragmentado de vários clusters.

Tipo: booleano

Opcional

Padrão: true

Ignorado se a topologia não for MultiCluster. Aplica-se a serviços para todos os componentes do cluster fragmentado : mongos, configSrv e shards.

Se definido como true:

O Kubernetes operador cria todos os Pod Services de todos os nó cluster em cada nó cluster.

Se definido como false:

O Kubernetes operador cria apenas o Pod Services para os Pods hospedados em cada cluster nó.
spec.mongos.clusterSpecList

Observação

Este campo está disponível exclusivamente para sistemas de cluster fragmentado de vários clusters.

Tipo : array de objetos

Necessário se topology=MultiCluster

Uma array de objetos para uso em sistemas de cluster fragmentado de cluster fragmentado com os seguintes campos de nível superior:

clusterName

Tipo: string

Nome do cluster onde o Operador do MongoDB Controladores para Kubernetes agenda o StatefulSet.

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

Especifica que registros DNS são criados mesmo que o Pod não esteja pronto. Não defina como false para nenhum pod de banco de dados .

Observação

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

members

Tipo: número

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

memberConfig

Tipo: collection

Especificação para cada shard do MongoDB e seus membros em sua implantação do MongoDB de cluster multi-Kubernetes.

A ordem dos elementos no objeto para shard deve refletir a ordem dos membros no conjunto de réplicas. 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"

statefulSet

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.shard.clusterSpecList

Observação

Este campo está disponível exclusivamente para sistemas de cluster fragmentado de vários clusters.

Tipo : array de objetos

Necessário se topology=MultiCluster

Uma array de objetos para uso em sistemas de cluster fragmentado de cluster fragmentado com os seguintes campos de nível superior:

clusterName

Tipo: string

Nome do cluster onde o Operador do MongoDB Controladores para Kubernetes agenda o StatefulSet.

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

Especifica que registros DNS são criados mesmo que o Pod não esteja pronto. Não defina como false para nenhum pod de banco de dados .

Observação

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

members

Tipo: número

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

memberConfig

Tipo: collection

Especificação para cada shard do MongoDB e seus membros em sua implantação do MongoDB de cluster multi-Kubernetes.

A ordem dos elementos no objeto para shard deve refletir a ordem dos membros no conjunto de réplicas. 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"

podSpec.persistence

Tipo: collection

Only available in clusterSpecItem objects passed to spec.configSrv.clusterSpecList and spec.shard.clusterSpecList. Overrides the existing persistence configuration for a given cluster.

statefulSet

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.shardOverrides

Tipo : array de objetos

Opcional

Lista que contém substituições por fragmento. Cada objeto contém os seguintes campos:

  • shardNames

    Obrigatório

    O nome do shard ao qual esta substituição se aplica.

  • podSpec.Persistence

    Opcional

    Define como o Operador Kubernetes cria e vincula volumes persistentes a shards. Para topology=MultiCluster , ele define as configurações de persistência para todos os clusters de membros. Você pode definir as configurações de persistência para um cluster de membros específico no spec.shardOverrides.clusterSpecList.persistence.

  • additionalMongodConfig

    Opcional

    Substituição específica de fragmento para spec.shard.additionalMongodConfig.

  • agent

    Opcional

    Substituição específica de fragmento para spec.shard.agent.

  • statefulSet

    Opcional

    Substituição específica de shard para spec.shardPodSpec.podTemplate e spec.shard.clusterSpecList.statefulSet.

  • members

    Opcional

    Disponível apenas quando topology=SingleCluster. Substituição específica do fragmento para substituição de spec.mongodsPerShardCount.

  • memberConfig

    Opcional

    Disponível apenas quando topology=SingleCluster. Substituição específica de fragmento para spec.shard.memberConfig.

spec.shardPodSpec.persistence.single

Tipo: collection

O Kubernetes Operator cria uma declaração de volume persistente e monta todos os três diretórios para dados, diário e registro no mesmo volume persistente.

Observação

  • You must set the values in this collection if spec.persistent : true.

  • Você pode definir esta collection ou as collections persistence.multiple, mas não ambas.

Escalar
Tipo de Dados
Descrição

labelSelector

string

Tag usada para vincular volumes montados a diretórios.

storage

string

Tamanho mínimo do volume persistente que deve ser montado. Esse valor é expresso como um número inteiro seguido por uma unidade de armazenamento na notação JEDEC.

O valor padrão é 16Gi.

For example, if each sharded cluster shard member in requires 60 gigabytes of storage space, set this value to 60Gi.

storageClass

string

Tipo de armazenamento especificado em uma declaração de volume persistente. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.

Certifique-se de definir a StorageClass reclaimPolicy como Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.

Você pode usar o Prometheus com seus conjuntos de réplicas ou clusters fragmentados. O monitoramento do Prometheus não é compatível com recursos autônomos. Para monitorar uma implantação de nó único com o Prometheus, implante um conjunto de réplicas de um único nó. Para aprender mais, consulte implantar um recurso para usar com Prometheus. Para ver um exemplo, consulte Recurso MongoDB com Prometheus.

As seguintes configurações se aplicam quando você usa Prometheus com o recurso MongoDB:

spec.prometheus

Tipo: array

Opcional

Lista que contém os parâmetros para expor métricas ao Prometheus.

spec.prometheus.metricsPath

Tipo: string

Opcional

Padrão: "/metrics"

String legível por humanos que indica o caminho para o endpoint de métricas. Se você não especificar essa configuração, o padrão será aplicado.

spec.prometheus.passwordSecretRef

Tipo: objeto

Condicional

Objeto que contém os detalhes do segredo para autenticação HTTP básica. Se você deseja usar o Prometheus com seu recurso MongoDB, especifique esta configuração.

spec.prometheus.passwordSecretRef.key

Tipo: string

Opcional

Padrão: "password"

String legível por humanos que identifica a chave no segredo que armazena a senha para autenticação HTTP básica. Se você não especificar essa configuração, o padrão será aplicado.

spec.prometheus.passwordSecretRef.name

Tipo: string

Condicional

Etiqueta legível por humanos que identifica o segredo que contém a senha para autenticação HTTP básica. Se você deseja usar o Prometheus com seu recurso MongoDB, especifique esta configuração.

spec.prometheus.port

Tipo: inteiro

Opcional

Padrão: 9216

Número que identifica a porta à qual o endpoint de métricas se conectará. Se você não especificar essa configuração, o padrão será aplicado.

spec.prometheus.tlseSecretKeyRef

Tipo: objeto

Opcional

Objeto que contém os detalhes do segredo para a autenticação TLS .

spec.prometheus.tlseSecretKeyRef.key

Tipo: string

Opcional

Padrão: "password"

String legível por humanos que identifica a chave no segredo que armazena a senha para autenticação TLS. Se você não especificar essa configuração, o padrão será aplicado.

spec.prometheus.tlseSecretKeyRef.name

Tipo: string

Condicional

Etiqueta legível por humanos que identifica o segredo que contém a senha para autenticação TLS . Se quiser usar o Prometheus com seu recurso MongoDB e quiser usar a autenticação TLS , você deverá especificar essa configuração.

spec.prometheus.username

Tipo: string

Condicional

Etiqueta legível que identifica o usuário para autenticação HTTP básica. Se você deseja usar o Prometheus com seu recurso MongoDB, especifique esta configuração.

As configurações de segurança a seguir se aplicam somente aos tipos de recursos do conjunto de réplicas e do cluster fragmentado:

spec.security.tls.ca

Tipo: string

Forneça o nome do ConfigMap que armazena a CA para o recurso MongoDB.

Importante

Se você utilizar um CA personalizado para registrar seus certificados TLS para o recurso do MongoDB , você deverá especificar este parâmetro.

O operador Kubernetes exige que você nomeie o certificado de recurso MongoDB ca-pem no ConfigMap.

spec.security.certsSecretPrefix

Tipo: string

Texto para prefixar os segredos do Kubernetes que você criou e que contêm as chaves e certificados TLS do seu conjunto de réplicas ou do cluster fragmentado.

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

Por exemplo, se você chamar sua implantação my-deployment e definir o prefixo como mdb, deverá nomear o segredo TLS para as comunicações TLS do cliente como mdb-my-deployment-cert. Além disso, você deve nomear o segredo TLS para autenticação interna do cluster (se ativado) como mdb-my-deployment-clusterfile.

Para saber mais sobre nomear os segredos que contêm seus certificados TLS, consulte o tópico em Implementar um conjunto de réplicas que se aplica à sua implantação.

spec.security.tls.additionalCertificateDomains

Tipo: booleano

Lista de todos os domínios que devem ser adicionados aos certificados TLS para cada pod neste sistema. Quando você define esse parâmetro, cada CSR que o operador Kubernetes transforma em um certificado TLS inclui uma SAN no formato <pod name>.<additional cert domain>.

Replica set resources don't need this parameter. Use spec.connectivity.replicaSetHorizons instead.

Observação

Se você adicionar este parâmetro a um recurso habilitado para TLS, o Kubernetes exibirá um erro quando o recurso alcançar o estado do Pending. Este erro é exibido: Please manually remove the |csr| in order to proceed. Para corrigir este problema:

  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.additionalMongodConfig.net.ssl.mode

Tipo: string

Padrão: requireSSL

Especifica qual sslMode é utilizado para conexões de rede. As seguintes opções são válidas:

Valor
Descrição

allowSSL

As conexões entre servidores não usam TLS. Para conexões recebidas, o servidor aceita tanto TLS quanto não TLS.

preferSSL

As conexões entre servidores usam TLS. Para conexões recebidas, o servidor aceita tanto TLS quanto não TLS.

requireSSL

O servidor utiliza e aceita somente conexões criptografadas TLS.

spec.additionalMongodConfig.net.tls.disabledProtocols

Tipo: string

Novidade na versão 4.2 do MongoDB.

Impede que um servidor MongoDB em execução com TLS aceite conexões de entrada que usam um protocolo ou protocolos específicos. Para especificar protocolos, insira uma lista de protocolos separados por vírgulas. Por exemplo, TLS1_0,TLS1_1.

Esta configuração reconhece os seguintes protocolos: TLS1_0, TLS1_1, TLS1_2 e iniciando no MongoDB 4.0.4 (e 3.6.9), TLS1_3. Se você especificar um protocolo não reconhecido, o servidor não será iniciado.

No macOS, você não pode desabilitar TLS1_1 e habilitar TLS1_0 e TLS1_2. Você também deve desabilitar pelo menos TLS1_0 ou TLS1_2. Por exemplo, TLS1_0,TLS1_1 desabilita TLS1_2 no macOS.

A lista de protocolos que você desabilita substitui a lista padrão de protocolos desabilitados.

A partir da versão 4.0 do MongoDB , o MongoDB desabilita o uso do TLS 1.0 se o TLS 1.1+ estiver disponível no sistema. Para ativar o TLS desabilitado 1.0, especifique none como o valor para spec.additionalMongodConfig.net.tls.disabledProtocols.

Os membros dos conjuntos de réplicas e cluster fragmentado devem falar pelo menos um protocolo em comum.

spec.security.authentication

Tipo: collection

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

spec.security.authentication.enabled

Tipo: booleano

Padrão: false

Specifies whether authentication is enabled on the Cloud Manager or Ops Manager project. If set to true, you must set an authentication mechanism in spec.security.authentication.modes.

Importante

O Kubernetes Operator gerencia 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 UI ou as APIs do Cloud Manager ou do Ops Manager enquanto essa configuração existir na especificação do recurso.

Omita esta configuração se quiser gerenciar a autenticação usando a UI ou as APIs do Cloud Manager ou do Ops Manager.

spec.security.authentication.modes

Tipo: array

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

Observação

Autenticação interna do cluster X.509

To enable X.509 internal cluster authentication for the Cloud Manager or Ops Manager project, set this value to ["X509"] and specify the following settings:

If you provide more than one value for spec.security.authentication.modes, you must also specify a value for spec.security.authentication.agents.mode.

spec.security.authentication.internalCluster

Tipo: string

Specifies whether X.509 internal cluster authentication is enabled.

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.requireClientTLSAuthentication

Tipo: booleano

Padrão: false

Especifica se o host MongoDB exige que os clientes se conectem usando um certificado TLS. O padrão é true se você habilitar a autenticação TLS.

To enable TLS authentication, provide a value for the spec.security.certsSecretPrefix setting.

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.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.

Se o servidor LDAP aceitar TLS, configure o valor para tls. Se o servidor LDAP não aceitar TLS, deixe este valor em branco ou defina o valor para 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.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.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.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.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.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.

O segredo deve conter apenas um campo password, que armazena a senha.

spec.security.authentication.ldap.authzQueryTemplate

Tipo: string

Necessário para a autorização LDAP.

Um modelo de URL de query com formatação LDAP RFC4515 e RFC4516 executado pelo MongoDB para obter os grupos LDAP aos quais o usuário pertence. A query é relativa ao host ou hosts especificados no spec.security.authentication.ldap.servers. Você pode utilizar os seguintes tokens no 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. (Disponível a partir da versão 4.2 do MongoDB)

Dica

Modelos de query LDAP no Manual do MongoDB

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.ldap.userToDNMapping

Tipo: string

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

Dica

security.ldap.userToDNMapping no Manual do MongoDB

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.oidcProviderConfigs

Tipo: collection

Obrigatório

  • A versão do MongoDB deve ser 7.0.11+ ou 8.0.0+

  • Somente MongoDB Enterprise é suportado

Observação

Pelo menos um elemento na coleção é exigido quando spec.security.authentication.mode está definido como OIDC.

spec.security.authentication.oidcProviderConfigs.audience

Tipo: string

Obrigatório

Entidade para a qual seu provedor de identidade externo (IdP) pretende o token. Insira o valor de público da aplicação que você registrou com seu IdP externo. Quando mais de um IdP for definido, deve ser um valor exclusivo para cada configuração que compartilha um issuerURI.

spec.security.authentication.oidcProviderConfigs.authorizationMethod

Tipo: string

Obrigatório

Valid values are WorkforceIdentityFederation and WorkloadIdentityFederation. Configure single-sign-on for human user access to deployments with Workforce Identity Federation. For programmatic application access to deployments, use Workload Identity Federation. Only one Workforce Identity Federation IdP can be configured per MongoDB resource. To learn more, see Authentication and Authorization with OIDC/OAuth 2.0.

spec.security.authentication.oidcProviderConfigs.authorizationType

Tipo: string

Obrigatório

Os valores válidos são GroupMembership e UserID. Selecione GroupMembership para conceder autorização com base na associação do grupo de usuários do IdP ou selecione UserID para conceder uma autorização de usuário individual.

spec.security.authentication.oidcProviderConfigs.clientId

Tipo: string

Obrigatório

Identificador único do seu aplicação registrado . Insira o valor clientId do aplicativo que você registrou em um provedor de identidade externo.

spec.security.authentication.oidcProviderConfigs.configurationName

Tipo: string

Obrigatório

Etiqueta exclusiva que identifica esta configuração. Esse rótulo é visível para os usuários do Ops Manager e é usado ao criar usuários e roles para autorização. Ela diferencia maiúsculas de minúsculas e só pode conter os seguintes caracteres:

  • caracteres alfanuméricos (combinação de a a z e 0 a 9)

  • hifens (-)

  • sublinhados (_)

spec.security.authentication.oidcProviderConfigs.groupsClaim

Tipo: string

Opcional

O identificador da declaração que inclui a identidade principal do usuário. Aceite o valor padrão, a menos que seu IdP use outra declaração.

spec.security.authentication.oidcProviderConfigs.issuerURI

Tipo: string

Obrigatório

Valor do emissor fornecido pelo seu aplicação IdP registrado. Usando este URI, o MongoDB encontra um documento de configuração do provedor OpenID, que está disponível no endpoint /.wellknown/open-id-configuration. Para o MongoDB 8.0+, a combinação de issuerURI e público deve ser exclusiva nas configurações do provedor OIDC. Para outras versões MongoDB , o issuerURI em si deve ser exclusivo.

spec.security.roleRefs

Tipo: array

Array que referencia ClusterMongoDBRole recursos personalizados que oferecem controle de acesso refinado sobre seu MongoDB deployment.

spec.security.roleRefs.kind

Tipo: string

O tipo do recurso personalizado referenciado. Por exemplo, ClusterMongoDBRole.

spec.security.roleRefs.kind

Tipo: string

O tipo do recurso personalizado referenciado. Por exemplo, ClusterMongoDBRole.

spec.security.authentication.oidcProviderConfigs.requestedScopes

Tipo: string

Opcional

Tokens que dão aos usuários permissão para solicitar dados do endpoints de autorização . Usado apenas para o método de autorização Federação de Identidade da Força de Trabalho.

spec.security.authentication.oidcProviderConfigs.userClaim

Tipo: string

Obrigatório

O identificador da declaração que inclui a identidade principal do usuário. Aceite o valor padrão, a menos que seu IdP use outra declaração.

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.mode

Tipo: string

The authentication mechanism that the MongoDB Agents for your MongoDB deployment use. Valid values are SCRAM, SCRAM-SHA-1, MONGODB-CR, X509, OIDC, and LDAP. The value you specify must also be present in spec.security.authentication.modes. We recommend SCRAM-SHA-256 (SCRAM) over SCRAM-SHA-1. If you specify SCRAM-SHA-1, you must also specify MONGODB-CR.

This setting is required if you specified more than one value for spec.security.authentication.modes.

spec.security.authentication.agents.automationUserName

Tipo: string

Name of the user that the MongoDB Agents use to interact with your MongoDB deployment. The username is mapped to an LDAP Distinguished Name (DN) according to spec.security.authentication.ldap.userToDNMapping. The resulting DN must already exist in your LDAP deployment.

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

spec.security.authentication.agents.automationPasswordSecretRef

Tipo: collection

Detalhes do segredo que contém a senha do usuáriospec.security.authentication.agents.automationUserName.

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

spec.security.authentication.agents.automationPasswordSecretRef.name

Tipo: string

Nome do segredo que contém a senha do usuário spec.security.authentication.agents.automationUserName. 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>

This secret must contain one key, the value of which matches the password of the spec.security.authentication.agents.automationUserName user in your LDAP deployment.

This setting is required if spec.security.authentication.agents.mode is 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.

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

spec.security.authentication.agents.clientCertificateSecretRef.name

Tipo: string

Especifica o secreto que contém o certificado TLS do agente MongoDB. Se omitido, o padrão será agent-certs.

Você deve criar este segredo no mesmo namespace para o qual distribuirá o Operador Kubernetes, e o segredo deve ser do tipo kubernetes.io/tls.

spec.security.roles

Tipo: array

Array que define funções definidas pelo usuário que oferecem controle de acesso refinado sobre sua implantação MongoDB.

To enable user-defined roles, the spec.security.authentication.enabled must be true.

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---
2apiVersion: mongodb.com/v1
3kind: MongoDB
4metadata:
5 name: <my-replica-set>
6spec:
7 members: 3
8 version: "8.0.0"
9 type: ReplicaSet
10 opsManager:
11 configMapRef:
12 name: <configMap.metadata.name>
13 credentials: <mycredentials>
14 persistent: true
15 security:
16 authentication:
17 enabled: true
18 modes:
19 - "SCRAM"
20 roles:
21 - role: "customRole"
22 db: admin
23 privileges:
24 - actions:
25 - insert
26 resource:
27 collection: cats
28 db: pets
29 - actions:
30 - insert
31 - find
32 resource:
33 collection: dogs
34 db: pets
35...
spec.security.roles.role

Tipo: string

Nome do role definido pelo usuário.

spec.security.roles.db

Tipo: string

O banco de dados no qual você deseja armazenar a função definida pelo usuário.

Exemplo

admin

spec.security.roles.authenticationRestrictions

Tipo: array

Array that defines the IP address from which and to which users assigned this spec.security.roles.role can connect.

spec.security.roles.authenticationRestrictions.clientSource

Tipo: array

Array of IP addresses or CIDR blocks from which users assigned this spec.security.roles.role can connect.

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 of IP addresses or CIDR blocks to which users assigned this spec.security.roles.role can connect.

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.privileges

Tipo: array

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

spec.security.roles.privileges.actions

Tipo: array

List of actions that users granted this role can perform. For a list of accepted values, see Privilege Actions in the MongoDB Manual for the MongoDB versions you deploy with the Kubernetes Operator.

spec.security.roles.privileges.resource

Tipo: collection

Resources for which the privilege actions apply.

Essa collection deve incluir:

spec.security.roles.privileges.resource.database

Tipo: string

Database for which the privilege actions apply.

If you provide a value for this setting, you must also provide a value for spec.security.roles.privileges.resource.collection.

spec.security.roles.privileges.resource.collection

Tipo: string

Collection in the database for which the privilege actions apply.

If you provide a value for this setting, you must also provide a value for spec.security.roles.privileges.resource.database.

spec.security.roles.privileges.resource.cluster

Tipo: booleano

Padrão: falso

Flag that indicates that the privilege actions apply to all databases and collections in the MongoDB deployment. If omitted, defaults to false.

If set to true, do not provide values for spec.security.roles.privileges.resource.database and spec.security.roles.privileges.resource.collection.

O exemplo a seguir mostra uma especificação de recurso para um sistema standalone com cada configuração fornecida:

apiVersion: mongodb.com/v1
kind: MongoDB
metadata:
name: my-standalone
spec:
version: "8.0.0"
service: my-service
opsManager: # Alias of cloudManager
configMapRef:
name: my-project
credentials: my-credentials
persistent: true
type: Standalone
additionalMongodConfig:
systemLog:
logAppend: true
verbosity: 4
operationProfiling:
mode: slowOp
podSpec:
persistence:
single:
storage: "12Gi"
storageClass: standard
labelSelector:
matchExpressions:
- {key: environment, operator: In, values: [dev]}
podTemplate:
metadata:
labels:
label1: mycustomlabel
spec:
affinity:
podAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: security
operator: In
values:
- S1
topologyKey: failure-domain.beta.kubernetes.io/zone
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/e2e-az-name
operator: In
values:
- e2e-az1
- e2e-az2
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
topologyKey: "mykey"
weight: 50
...

As configurações StatefulSets a seguir se aplicam somente aos tipos de recursos de cluster fragmentado e conjunto de réplicas.

The Kubernetes Operator supports overriding the Kubernetes Operator default StatefulSet and PVC settings by specifying values for spec.statefulSet.spec fields in the MongoDB resource specification. However, only certain fields are preserved during the merge process. The following tables list the supported override fields.

spec.statefulSet.spec

Tipo: collection

Especificação do StatefulSet que o Operador do MongoDB Controladores para Kubernetes cria para recursos do MongoDB.

Os seguintes campos são mesclados e têm precedência sobre as configurações padrão do StatefulSet quando você especifica valores em spec.statefulSet.spec. Os caminhos de campo são relativos à definição do StatefulSet, portanto, spec.replicas corresponde a spec.statefulSet.spec.replicas na especificação de recurso do MongoDB.

Campo

spec.replicas

spec.selector

spec.podManagementPolicy

spec.revisionHistoryLimit

spec.updateStrategy.type

spec.updateStrategy.rollingUpdate

spec.serviceName

spec.template

spec.volumeClaimTemplates

spec.statefulSet.spec.serviceName

Tipo: string

Padrão: <resource_name>-svc e <resource_name>-svc-external

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

O operador do Kubernetes mescla um modelo de solicitação de volume que você especifica em spec.statefulSet.spec.volumeClaimTemplates somente se seu metadata.name corresponder ao nome de um modelo de solicitação de volume existente. A tabela a seguir mostra quais campos de PVC o operador Kubernetes preserva e quais ele descarta quando você especifica valores em spec.statefulSet.spec.volumeClaimTemplates. Os caminhos do campo são relativos a um modelo de reivindicação de volume individual, portanto, spec.volumeMode corresponde a spec.statefulSet.spec.volumeClaimTemplates.spec.volumeMode na especificação de recurso do MongoDB.

Suportado (preservado)
Não compatível (descartado)

metadata.namespace
metadata.labels
metadata.annotations
spec.volumeMode
spec.storageClassName
spec.accessModes [1]
spec.selector
spec.resources.limits
spec.resources.requests
spec.dataSource

spec.volumeAttributesClassName
spec.dataSourceRef
spec.volumeName

[1] O operador Kubernetes anexa os modos de acesso que você especifica aos modos de acesso padrão em vez de substituí-los.