Observação
Em qualquer lugar nesta página que diz Gerente de Operações, você pode substituir o Gerenciador de Nuvem.
O Operador Kubernetes do MongoDB Enterprise 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:
Crie ou atualize uma especificação de recurso do
MongoDB.Oriente o MongoDB Enterprise 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 |
Cada recurso do MongoDB utiliza uma especificação de objeto no YAML para definir as características e configurações do objeto MongoDB: autônoma, conjunto de réplicas e cluster fragmentado.
Configurações de recursos comuns
Cada tipo de recurso deve usar as seguintes configurações:
Obrigatório
metadata.nameTipo: string
Nome do recurso
MongoDBque você cria.Os nomes de recursos devem ter 44 caracteres ou menos.
spec.credentialsTipo: 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.
No Ops Manager, o secret do Kubernetes que contém as credenciais precisa existir no mesmo namespace que o recurso que você deseja criar.
Importante
O operador gerencia alterações no segredo
O Operador Kubernetes rastreia quaisquer alterações no Segredo e reconcilia o estado do recurso
MongoDB.
spec.persistentTipo: booleano
Padrão: Verdadeiro
AVISO: conceda aos seus contêineres permissão para gravar no Volume Persistente. O Operador Kubernetes define
fsGroup = 2000,runAsUser = 2000erunAsNonRoot = trueemsecurityContext. O Kubernetes Operator definefsgroupcomorunAsUserpara 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 usar 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 dessa implementação.
spec.typeTipo: string
Tipo de recurso
MongoDBpara criar. Os valores aceitos são:StandaloneReplicaSetShardedCluster
spec.versionTipo: string
Versão do MongoDB que você instalou nesse recurso do
MongoDB.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
Se você atualizar esse valor para uma versão mais recente do MongoDB para seus recursos de banco de dados, o Feature Compatibility Version (FCV) será alterado automaticamente para essa versão, a menos que você defina
spec.featureCompatibilityVersionpara a versão original. Considere definirspec.featureCompatibilityVersionpara a versão original para ter a opção de fazer o downgrade, se necessário.
Condicional
Cada recurso deve usar uma das seguintes configurações:
spec.opsManager.configMapRef.nameTipo: 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.nameTipo: string
Alias para
spec.opsManager.configMapRef.name.
Opcional
Cada tipo de recurso pode usar as seguintes configurações:
metadata.annotations.mongodb.com/v1.architectureTipo: string
Determina a arquitetura do container usada por um sistema específico:
Os contêineres não estáticos padrão que baixam o binário MongoDB no tempo de execução, ou
Containers estáticos (visualização pública) que são imutáveis no tempo de execução.
Os valores aceitos são:
staticnon-static
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: my-project annotations: mongodb.com/v1.architecture: "static"
spec.agent.backupAgent.logRotateTipo: objeto
Limites após os quais o MongoDB Agent gira o log de backup.
spec.agent.backupAgent.logRotate.sizeThresholdMBTipo: 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.timeThresholdHrsTipo: inteiro
Número de horas após as quais o MongoDB Agent gira o arquivo de log de backup .
spec.agent.mongod.auditlogRotateTipo: objeto
Objeto que contém a configuração de rotação do registro de auditar para os processos MongoDB .
spec.agent.mongod.auditlogRotate.sizeThresholdMBTipo: número
Tamanho máximo, em MB, de um arquivo de log de auditar antes de o MongoDB Agent girar os registros.
spec.agent.mongod.auditlogRotate.timeThresholdHrsTipo: inteiro
Número de horas após as quais o MongoDB Agent gira o arquivo de log de auditar .
spec.agent.mongod.auditlogRotate.numUncompressedTipo: 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.numTotalTipo: 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.percentOfDiskspaceTipo: número
Porcentagem máxima de espaço total em disco que o Ops Manager pode usar para armazenar os arquivos de log expressos como decimal. Se esse limite for excedido, o Ops Manager excluirá os arquivos de log compactados até atingir esse limite. O Ops Manager exclui primeiro os arquivos de log mais antigos.
O padrão é 0,02.
spec.agent.mongod.logRotateTipo: objeto
Limites após os quais o MongoDB Ops Manager gira os registros MongoDB de um processo.
spec.agent.mongod.logRotate.sizeThresholdMBTipo: inteiro
Tamanho máximo em MB para um arquivo de log individual antes que o MongoDB Ops Manager o gire. O MongoDB Ops Manager gira o arquivo de log imediatamente se ele atender ao valor fornecido neste
sizeThresholdMBou nospec.agent.mongod.logRotate.timeThresholdHrs.
spec.agent.mongod.logRotate.timeThresholdHrsTipo: 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.
O MongoDB Ops Manager gira o arquivo de log quando o arquivo encontra este
timeThresholdHrsouspec.agent.mongod.logRotate.sizeThresholdMB.
spec.agent.monitoringAgent.logRotateTipo: objeto
Limites após os quais o MongoDB Agent gira o registro de monitoramento.
spec.agent.monitoringAgent.logRotate.sizeThresholdMBTipo: 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.timeThresholdHrsTipo: inteiro
Número de horas após as quais o MongoDB Agent gira o registro de monitoramento.
spec.agent.readinessProbe.environmentVariablesTipo: 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.featureCompatibilityVersionTipo: string
Limita as alterações aos dados que ocorrem com uma atualização para uma nova versão principal. Isso permite que você faça o downgrade para a versão principal anterior. Para saber mais sobre compatibilidade de funcionalidades, consulte
setFeatureCompatibilityVersionno Manual do MongoDB.
spec.clusterDomainTipo: 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
spec.clusterDomaino se seu cluster do Kubernetes tiver um domínio-padrão diferente docluster.localpadrão. Se você não usar o padrão nem definir a opçãospec.clusterDomain, o operador Kubernetes pode não funcionar conforme o esperado.
spec.clusterNameTipo: 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
spec.clusterDomaino se seu cluster do Kubernetes tiver um domínio-padrão diferente docluster.localpadrão. Se você não usar o padrão nem definir a opçãospec.clusterDomain, o operador Kubernetes pode não funcionar conforme o esperado.
metadata.namespaceTipo: string
namespace
MongoDBdo Kubernetes onde você cria este recurso do e outros objetos.
spec.serviceTipo: string
Padrão: <resource_name>+"-svc" and <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 Enterprise 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.logLevelTipo: string
Padrão: INFO
Configura o nível de registro do agente de automação dentro do Pod. Os valores aceitos incluem:
DEBUGINFOWARNERRORFATAL
spec.security.authentication.ignoreUnknownUsersTipo: booleano
Padrão:
falseDetermina 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.
Para gerenciar usuários de banco de dados diretamente pelo
mongodoumongos, defina essa configuração comotrue.
Configurações de recursos específicos de implementação
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:
Configurações standalone
Observação
Todas as configurações autônomas também se aplicam aos recursos do conjunto de réplicas.
spec.additionalMongodConfigTipo: 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.
Para saber quais opções de configuração você pode usar, consulte Opções avançadas para implantações do MongoDB na documentação do Ops Manager.
spec.agent.startupOptionsTipo: 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:
Configurações do MongoDB Agent para projetos do Cloud Manager.
Configurações do MongoDB Agent para a versão do Ops Manager que você distribuiu com o Kubernetes Operator.
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: my-standalone 6 spec: 7 version: "6.0.0-ent" 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.podSpecTipo: objeto
Objeto que contém as especificações dos pods CustomResourceDefinition do MongoDB.
spec.externalAccessTipo: 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:
CampoValorDescriçãoName<pod-name>-svc-externalNome do serviço externo. Não é possível alterar este valor.
TypeLoadBalancerCria um serviço LoadBalancer externo.
Port<Port Number>Uma porta para o
mongod.publishNotReadyAddresstrueEspecifica que registros DNS são criados mesmo que o Pod não esteja pronto. Não defina como
falsepara nenhum pod de banco de dados .Observação
Se você configurar o
spec.externalAccess.externalDomain, o serviço externo adicionará outra porta (Port Number + 1) para backups.
spec.externalAccess.externalServiceTipo: collection
Especificação para substituir os valores padrão em
spec.externalAccess.Quando você configura a configuração do
spec.externalAccess, o Operador Kubernetes cria automaticamente um serviço de balanceador de carga externo 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.annotationsTipo: 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.
ValorDescrição{resourceName}Igual a
metadata.name.{namespace}Igual a
metadata.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}O nome de domínio do servidor que está hospedando o processo mongod. Igual a se
spec.externalAccess.externalDomainespecificado. Caso contrário, igual ao domínio usado para omongodprocesso FQDN.Por exemplo, para o nome de host do processo
mdb-rs-1.example.com,example.comé o nome do domínio.{mongodProcessFQDN}O nome de host do processo
mongoddefinido na configuração de automação.O nome do host do processo depende da sua configuração de sistema. Se você configurou seu sistema para utilizar , o nome do host do processo utilizará o seguinte
external domainsformato:{resourceName}-{podIndex}.{mongodProcessDomain}Por exemplo:
mdb-rs-1.example.comSe 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.localPor exemplo:
mdb-rs-1.mdb-rs-1-svc.ns.svc.cluster.localObservaçã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.specTipo: collection
Configuração do ServiceSpec. Para saber mais, consulte
spec.externalAccess.externalService.
spec.podSpec.persistence.singleTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou as collections
persistence.multiple, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
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.
Por exemplo, se o sistema autônomo exigir 60 gigabytes de espaço de armazenamento, defina esse valor em
60Gi.storageClassstring
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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.podSpec.persistence.multiple.dataTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
Capacidade de armazenamento mínima que deve estar disponível em um nó do Kubernetes para hospedar sistema standalone 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
MongoDBexigir 60 gigabytes de espaço de armazenamento, defina esse valor como60Gi.storageClassstring
Tipo de armazenamento necessário para sistema autônomo. 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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.podSpec.persistence.multiple.journalTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
Capacidade de armazenamento mínima que deve estar disponível em um nó do Kubernetes para hospedar sistema standalone 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
MongoDBexigir 60 gigabytes de espaço de armazenamento, defina esse valor como60Gi.storageClassstring
Tipo de armazenamento necessário para sistema autônomo. 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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.podSpec.persistence.multiple.logsTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
Capacidade de armazenamento mínima que deve estar disponível em um nó do Kubernetes para hospedar sistema standalone 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
MongoDBexigir 60 gigabytes de espaço de armazenamento, defina esse valor como60Gi.storageClassstring
Tipo de armazenamento necessário para sistema autônomo. 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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.podSpec.podTemplate.affinity.nodeAffinityTipo: 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.affinity.podAffinityTipo: Estrutura
Regra
MongoDBdo 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.affinity.podAntiAffinityTipo: Estrutura
Default: kubernetes.io/hostname
Define uma regra para distribuir os Pods que hospedam o recurso
MongoDBpara 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.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKeyTipo: Estrutura
Default: kubernetes.io/hostname
Essa chave define qual rótulo é usado para determinar a qual domínio de topologia um nó pertence.
spec.podSpec.podTemplateTipo: collection
Modelo para os Pods Kubernetes que o Enterprise Kubernetes Operator MongoDB 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.metadataTipo: collection
Metadados para os Pods Kubernetes que o Enterprise Kubernetes Operator MongoDB 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.specTipo: collection
Especificações dos Pods Kubernetes que o Enterprise Kubernetes Operator MongoDB 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.
Configurações de conjunto de réplicas
Observação
Todas as configurações autônomas também se aplicam aos recursos do conjunto de réplicas.
As seguintes configurações se aplicam a tipos de recurso de conjunto de réplicas:
spec.backupTipo: collection
O contêiner de coleta para
spec.backup.mode, que permite backups contínuos para recursos do MongoDB no Kubernetes Operator.
spec.backup.assignmentLabelsTipo: array
Uma lista de rótulos separados por vírgulas para atribuir backup daemons, armazéns de oplog, blockstores, S3 snapshot stores e armazenamento do sistema de arquivos a projetos ou grupos específicos. Use rótulos de atribuição para identificar se armazéns 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 operador Kubernetes continuam a usar os valores definidos na IU do Ops Manager .
Observação
Se você definir este parâmetro, a chave de API vinculada ao valor de
spec.credentialsdeverá ter um roleGlobal Owner.
spec.backup.modeTipo: string
Permite backups contínuos para um recurso do MongoDB. Os valores possíveis são
enabled,disabledeterminated.Observação
A configuração
spec.backup.modedepende do backup habilitado no MongoDB Ops Manager e exige quespec.backup.enabledo valor na MongoDB Ops Manager especificação de recursos do seja definidotruecomo .Depois de habilitar backups contínuos para seu recurso do MongoDB com
spec.backup.mode, você pode conferir o status do backup.
spec.backup.encryptionTipo: objeto
Objeto que contém as definições de configuração de criptografia de backup.
spec.backup.encryption.kmipTipo: 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.clientTipo: objeto
Objeto que contém as definições de configuração do cliente de criptografia de backup KMIP.
spec.backup.snapshotScheduleTipo: 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.snapshotIntervalHoursTipo: número
Número de horas entre snapshots. Você pode definir um valor de
6,8,12ou24.
spec.backup.snapshotSchedule.snapshotRetentionDaysTipo: número
Número de dias para manter snapshots recentes. Você pode definir um valor entre
2e5.
spec.backup.snapshotSchedule.dailySnapshotRetentionDaysTipo: número
Número de dias para manter snapshots diários. Você pode definir um valor entre
1e365. Definir o valor em0desabilita esta regra.
spec.backup.snapshotSchedule.weeklySnapshotRetentionWeeksTipo: número
Número de semanas para manter snapshots semanais. Você pode definir um valor entre
1e52. Definir o valor em0desabilita esta regra.
spec.backup.snapshotSchedule.monthlySnapshotRetentionMonthsTipo: número
Número de meses para manter snapshots mensais. Você pode definir um valor entre
1e36. Definir o valor em0desabilita esta regra.
spec.backup.snapshotSchedule.pointInTimeWindowHoursTipo: número
Número de horas no passado para as quais você pode criar um snapshot de ponto no tempo.
spec.backup.snapshotSchedule.referenceHourOfDayTipo: número
Hora do dia UTC para agendar snapshots usando um relógio em formato 24 horas. Você pode definir um valor entre
0e23.
spec.backup.snapshotSchedule.referenceMinuteOfHourTipo: número
Minuto da hora UTC para agendar snapshots. Você pode definir um valor entre
0e59.
spec.backup.snapshotSchedule.fullIncrementalDayOfWeekTipo: 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.clusterNameTipo: 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
spec.clusterDomaino se seu cluster do Kubernetes tiver um domínio-padrão diferente docluster.localpadrão. Se você não usar o padrão nem definir a opçãospec.clusterDomain, o operador Kubernetes pode não funcionar conforme o esperado.
spec.connectivity.replicaSetHorizonsTipo: collection
Permite fornecer diferentes configurações de DNS para aplicativos de cliente e os MongoDB Agents. O Kubernetes Operator usa DNS de horizonte dividido para nós de conjuntos de réplicas. Esta funcionalidade permite uma comunicação dentro do cluster do Kubernetes e de fora do Kubernetes.
Você pode adicionar diversos mapeamentos externos por host.
Requisitos de horizonte dividido:
Certifique-se de que cada valor nesta array é único.
Certifique-se de que o número de entradas nesta array corresponda ao valor fornecido em
spec.members.Forneça um valor para a configuração do
spec.security.certsSecretPrefixpara habilitar o TLS. Este método para usar horizontes divididos requer a extensão MongoDB Server Name Indication do protocolo TLS .
Exemplo
Neste exemplo, os nós do conjunto de réplicas se comunicam entre si no horizonte de
example-localhost. Os clientes se comunicam com o conjunto de réplicas usando o horizonte deexample-website.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 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: <my-replica-set> 6 spec: 7 members: 3 8 version: "4.2.2-ent" 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.externalDomainTipo: string
Um domínio externo usado para expor externamente seu sistema de conjunto de réplicas.
Por padrão, cada nó do conjunto de réplicas utiliza o FQDN (
*.svc.cluster.local) do Pod do Kubernetes 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 tem o seguinte formato:<replica-set-name>-<pod-idx>.<externalDomain>Por exemplo:
replica-set-1.example.comDepois de implantar o conjunto de réplicas com essa configuração, o Kubernetes Operator usa o nome do host com domínio externo para substituir o
processes[n].hostnamecampo na MongoDB Ops Manager configuração de automação do . Em seguida, o MongoDB Agent utiliza este nome de host para se conectar aomongod.Para especificar outros nomes de host para conectar ao conjunto de réplica, você pode utilizar a configuração do
spec.connectivity.replicaSetHorizons. No entanto, as conexões abaixo continuam usando o nome de host com o domínio externo:AVISO: a especificação desse campo altera a forma como o MongoDB Ops Manager registra os processos
mongod. Você pode especificar esse campo somente para novas implantações de conjunto de réplicas começando no Kubernetes Operator versão 1.19. Você não pode alterar o valor desse campo ou de qualquerprocesses[n].hostnamecampo na MongoDB Ops Manager automation configuration do para uma implantação de replica set em execução.
spec.memberConfigTipo: 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 índice1, 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.priorityTipo: string
Número que indica a probabilidade relativa de um nó do conjunto de réplicas do MongoDB se tornar o primário.
Para aumentar a probabilidade relativa de que um nó do conjunto de réplicas se torne o primary, especifique um valor de
prioritymais alto.Para diminuir a probabilidade relativa de que um nó do conjunto de réplicas se torne o primary, especifique um valor de
prioritymais baixo.
Por exemplo, um nó com uma
memberConfig.priorityde1.5tem mais probabilidade do que um nó com umamemberConfig.priorityde0.5de se tornar o primary.Um nó com um
memberConfig.priorityde0não está qualificado para se tornar o primary. Para saber mais, consulte Priority do nó.
spec.memberConfig.tagsTipo: mapa
Mapa de tags de conjuntos de réplicas para direcionar operações de leitura e gravação para nós específicos do seu conjunto de réplicas MongoDB.
spec.memberConfig.votesTipo: número
Determina se um nó do conjunto de réplicas do MongoDB pode votar em uma eleição. Defina como
1para permitir que o membro vote. Defina como0para excluir o membro de uma eleição.
As seguintes configurações se aplicam somente a tipos de recurso de conjunto de réplicas:
spec.backup.autoTerminateOnDeletionTipo: booleano
Sinalizador que controla se o Kubernetes Operator interrompe e encerra o backup quando você exclui um recurso do MongoDB. Se omitido, o valor padrão é
false. Definir este sinalizador comotrueé recomendado se você deseja excluir o recurso customizado do MongoDB enquanto a configuraçãospec.backup.modeestá definida comoenabled.
Configurações de cluster fragmentado
Observação
Todas as Configurações de conjuntos de réplicas também se aplicam aos recursos do cluster fragmentado, a menos que especificado de outra forma.
As configurações a seguir se aplicam somente aos tipos de recursos de cluster fragmentado:
spec.backup.snapshotSchedule.clusterCheckpointIntervalMinTipo: número
Número de minutos entre checkpoints sucessivos de clusters. Esta configuração se aplica apenas a clusters fragmentados que executam MongoDB com FCV 4.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,30ou60.
spec.configServerCountTipo: inteiro
Obrigatório. Número de membros no servidor de configuração.
spec.configSrv.additionalMongodConfigTipo: collection
Opções de configurações adicionais recomendadas para 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.
Para saber quais opções de configuração você pode usar, consulte Opções avançadas para implantações do MongoDB na documentação do Ops Manager.
spec.configSrv.agentTipo: collection
Definições de configuração do MongoDB Agent para cada nó do servidor de configuração .
spec.configSrv.agent.startupOptionsTipo: collection
Configurações do MongoDB Agent para iniciar cada nó do servidor de configuração .
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:
Configurações do MongoDB Agent para projetos do Cloud Manager.
Configurações do MongoDB Agent para a versão do Ops Manager que você distribuiu com o Kubernetes Operator.
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: my-sharded-cluster-options 6 spec: 7 version: "6.0.0-ent" 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.configSrvPodSpecTipo: objeto
Objeto que contém as especificações dos pods do servidor de configuração MongoDB CustomResourceDefinition.
spec.configSrvPodSpec.persistence.singleTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou as collections
persistence.multiple, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
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.
Por exemplo, se cada servidor de configuração exigir 60 gigabytes de espaço de armazenamento, defina esse valor como
60Gi.storageClassstring
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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.configSrvPodSpec.persistence.multiple.dataTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
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
MongoDBexigir 60 gigabytes de espaço de armazenamento, defina esse valor como60Gi.storageClassstring
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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.configSrvPodSpec.persistence.multiple.journalTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
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
MongoDBexigir 60 gigabytes de espaço de armazenamento, defina esse valor como60Gi.storageClassstring
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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.configSrvPodSpec.persistence.multiple.logsTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
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
MongoDBexigir 60 gigabytes de espaço de armazenamento, defina esse valor como60Gi.storageClassstring
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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.configSrvPodSpec.podTemplateTipo: collection
Modelo para os Pods do Kubernetes que o MongoDB Enterprise Kubernetes Operator 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.affinity.podAffinityTipo: collection
Regra
MongoDBdo 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.affinity.nodeAffinityTipo: 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.affinity.podAntiAffinityTipo: string
Default: kubernetes.io/hostname
Define uma regra para distribuir os Pods que hospedam o recurso
MongoDBpara 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.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKeyTipo: string
Default: kubernetes.io/hostname
Essa chave define qual rótulo é usado para determinar a qual domínio de topologia um nó pertence.
spec.configSrvPodSpec.podTemplate.metadataTipo: collection
Metadados para os pods do Kubernetes que o Enterprise Kubernetes Operator MongoDB cria para cada nó do servidor de configuração.
Para revisar quais campos você pode adicionar a
spec.configSrvPodSpec.podTemplate.metadata, consulte a documentação do Kubernetes.
spec.configSrvPodSpec.podTemplate.specTipo: collection
Especificações dos pods do Kubernetes que o Enterprise Kubernetes Operator MongoDB 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.mongodsPerShardCountTipo: inteiro
Obrigatório. Número de membros por shard.
spec.mongosCountTipo: inteiro
Obrigatório. Número de instâncias do
mongosno cluster fragmentado.
spec.mongos.additionalMongodConfigTipo: collection
Opções de configurações adicionais recomendadas para iniciar cada instância de mongos .
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.
Para saber quais opções de configuração você pode usar, consulte Opções avançadas para implantações do MongoDB na documentação do Ops Manager.
spec.mongos.agentTipo: collection
Definições de configuração do MongoDB Agent para cada instância
mongos.
spec.mongos.agent.startupOptionsTipo: collection
Configurações do MongoDB Agent com as quais você deseja iniciar cada instância do
mongos.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:
Configurações do MongoDB Agent para projetos do Cloud Manager.
Configurações do MongoDB Agent para a versão do Ops Manager que você distribuiu com o Kubernetes Operator.
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: my-sharded-cluster-options 6 spec: 7 version: "6.0.0-ent" 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.mongosPodSpecTipo: objeto
Objeto que contém as especificações dos pods do MongoDB CustomResourceDefinition mongos.
spec.mongosPodSpec.podTemplateTipo: collection
Modelo para os Pods Kubernetes que o MongoDB Enterprise Kubernetes Operator 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.affinity.podAffinityTipo: collection
Opcional. Regra do Kubernetes rule para determinar se vários Pods de recursos
MongoDBdevem ser colocalizados com outros Pods.
spec.mongosPodSpec.podTemplate.affinity.nodeAffinityTipo: 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.affinity.podAntiAffinityTipo: string
Default: kubernetes.io/hostname
Define uma regra para distribuir os Pods que hospedam o recurso
MongoDBpara 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.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKeyTipo: string
Default: kubernetes.io/hostname
Essa chave define qual rótulo é usado para determinar a qual domínio de topologia um nó pertence.
spec.mongosPodSpec.podTemplate.metadataTipo: collection
Metadados para os Pods Kubernetes que o MongoDB Enterprise Kubernetes Operator cria para cada instância do
mongos.Para revisar quais campos você pode adicionar a
spec.mongosPodSpec.podTemplate.metadata, consulte a documentação do Kubernetes.
spec.mongosPodSpec.podTemplate.specTipo: collection
Especificações dos Pods Kubernetes que o MongoDB Enterprise Kubernetes Operator cria para cada instância do
mongos.Para analisar quais campos você pode adicionar ao
spec.mongosPodSpec.podTemplate.spec, consulte a API central do Kubernetes PodSpec v1.Observação
Quando você adiciona containers ao
spec.mongosPodSpec.podTemplate.spec.containers, o operador Kubernetes os adiciona ao pod do Kubernetes. Esses contêineres são anexados a cada container de instânciamongosno 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.shardCountTipo: inteiro
Obrigatório. Número de shards no cluster fragmentado.
spec.shard.additionalMongodConfigTipo: collection
Opções de configuração adicionais com as quais você deseja iniciar cada nó shard 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.
Para saber quais opções de configuração você pode usar, consulte Opções avançadas para implantações do MongoDB na documentação do Ops Manager.
spec.shard.agentTipo: collection
Configurações do MongoDB Agent para cada nó fragmento de cluster fragmentado.
spec.shard.agent.startupOptionsTipo: collection
Configurações do MongoDB Agent para iniciar cada nó de fragmento do cluster fragmentado.
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:
Configurações do MongoDB Agent para projetos do Cloud Manager.
Configurações do MongoDB Agent para a versão do Ops Manager que você distribuiu com o Kubernetes Operator.
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: my-sharded-cluster-options 6 spec: 7 version: "6.0.0-ent" 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.shardPodSpecTipo: objeto
Objeto que contém as especificações dos pods de shard do MongoDB CustomResourceDefinition.
spec.shardPodSpec.persistence.singleTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou as collections
persistence.multiple, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
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.
Por exemplo, se cada nó de shard do cluster fragmentado fragmentado requer 60 gigabytes de espaço de armazenamento, defina esse valor como
60Gi.storageClassstring
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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.shardPodSpec.persistence.multiple.journalTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
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
MongoDBexigir 60 gigabytes de espaço de armazenamento, defina esse valor como60Gi.storageClassstring
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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.shardPodSpec.persistence.multiple.dataTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
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
MongoDBexigir 60 gigabytes de espaço de armazenamento, defina esse valor como60Gi.storageClassstring
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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.shardPodSpec.persistence.multiple.logsTipo: 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
Você deve definir os valores nesta collection se
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Marcação usada para vincular volumes montados a diretórios.
storagestring
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
MongoDBexigir 60 gigabytes de espaço de armazenamento, defina esse valor como60Gi.storageClassstring
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
reclaimPolicycomo Retain. Isso garante que os dados sejam mantidos quando uma declaração de volume persistente for removida.
spec.shardPodSpec.podTemplateTipo: collection
Modelo para os Pods do Kubernetes que o MongoDB Enterprise Kubernetes Operator cria para cada membro 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.affinity.podAffinityTipo: string
Regra
MongoDBdo 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.affinity.nodeAffinityTipo: 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.affinity.podAntiAffinityTipo: string
Default: kubernetes.io/hostname
Define uma regra para distribuir os Pods que hospedam o recurso
MongoDBpara 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.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKeyTipo: string
Default: kubernetes.io/hostname
Essa chave define qual rótulo é usado para determinar a qual domínio de topologia um nó pertence.
spec.shardPodSpec.podTemplate.metadataTipo: collection
Metadados para os Pods Kubernetes que o MongoDB Enterprise Kubernetes Operator cria para cada nó de fragmento do cluster fragmentado.
Para revisar quais campos você pode adicionar a
spec.shardPodSpec.podTemplate.metadata, consulte a documentação do Kubernetes.
spec.shardPodSpec.podTemplate.specTipo: collection
Especificações dos Pods Kubernetes que o MongoDB Enterprise Kubernetes Operator cria para cada nó de fragmento 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
Quando você adiciona containers ao
spec.shardPodSpec.podTemplate.spec.containers, o operador Kubernetes os adiciona ao pod do Kubernetes. Esses containers são anexados a cada container de nó do shard do cluster fragmentado 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.shardSpecificPodSpecTipo: array
Lista que contém StatefulSet substitui por fragmento.
spec.shardSpecificPodSpec.podTemplateTipo: collection
Modelo para os Pods Kubernetes que o MongoDB Enterprise Kubernetes Operator 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.affinity.podAffinityTipo: string
Regra
MongoDBdo 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.affinity.podAntiAffinityTipo: string
Default: kubernetes.io/hostname
Define uma regra para distribuir os Pods que hospedam o recurso
MongoDBpara 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.affinity.podAntiAffinity.requiredDuringSchedulingIgnoredDuringExecution.topologyKeyTipo: 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.podTemplate.metadataTipo: collection
Metadados para os Pods Kubernetes que o MongoDB Enterprise Kubernetes Operator 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.specTipo: collection
Especificações dos Pods do Kubernetes que o MongoDB Enterprise Kubernetes Operator 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.
Configurações do Prometheus
Você pode usar o Prometheus com seu recurso standalone, conjuntos de réplicas ou clusters fragmentados. Para saber mais, consulte Distribuir 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.metricsPathTipo: 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.passwordSecretRefTipo: 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.keyTipo: 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.nameTipo: 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.portTipo: 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.tlseSecretKeyRefTipo: objeto
Opcional
Objeto que contém os detalhes do segredo para a autenticação TLS .
spec.prometheus.tlseSecretKeyRef.keyTipo: 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.nameTipo: 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.
Configurações de segurança
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.enabledTipo: booleano
Padrão:
falseImportante
spec.security.tls.enabledtornou-se obsoleto a partir da versão 1.19 do operador Kubernetes. Para habilitar o TLS, forneça um valor para a configuraçãospec.security.certsSecretPrefix.Criptografa comunicações usando certificados TLS entre:
O MongoDB hospeda em um conjunto de réplicas ou configuração de cluster fragmentado
Clientes (
mongoshell, drivers, MongoDB Compass e outros) e o deployment do MongoDB
Por padrão,
net.ssl.modeestá configurado pararequireSSL. Para alterar o modo TLS usado para conexões de cliente e banco de dados, consultespec.additionalMongodConfig.net.ssl.mode.
spec.security.tls.caTipo: string
Forneça o nome do ConfigMap que armazena a CA para o recurso
MongoDB.Importante
Se você usar uma CA customizada para assinar seus certificados TLS para o recurso
MongoDB, deverá especificar esse parâmetro.O operador Kubernetes exige que você nomeie o certificado de recurso
MongoDBca-pemno ConfigMap.
spec.security.certsSecretPrefixTipo: 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-deploymentde e definir o prefixo comomdb, deverá nomear o segredo TLS para as comunicações TLS do clientemdb-my-deployment-cert. Além disso, você deve nomear o segredo TLS para autenticação interna do cluster (se ativado) comomdb-my-deployment-clusterfile.Para saber mais sobre como nomear os segredos que contêm seus certificados TLS, veja o tópico em Distribuir um conjunto de réplicas que se aplica so seu sistema.
spec.security.tls.additionalCertificateDomainsTipo: booleano
Lista de todos os domínios que devem ser adicionados aos certificados TLS para cada pod neste sistema. Ao definir este parâmetro, cada CSR que o Kubernetes Operator transforma em um certificado TLS inclui um SAN no formato
<pod name>.<additional cert domain>.Os recursos do conjunto de réplicas não precisam desse parâmetro. Em vez disso, use
spec.connectivity.replicaSetHorizons.Observação
Se você adicionar esse parâmetro a um recurso habilitado para TLS, o Kubernetes exibirá um erro quando o recurso alcançar o estado
Pending. Este erro é exibido:Please manually remove the |csr| in order to proceed.Para corrigir esse problema: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.
Aprove os CSRs após o Kubernetes gerá-los.
spec.additionalMongodConfig.net.ssl.modeTipo: string
Padrão:
requireSSLEspecifica qual
sslModeé utilizado para conexões de rede. As seguintes opções são válidas:ValorDescriçãoallowSSLAs conexões entre servidores não usam TLS. Para conexões recebidas, o servidor aceita tanto TLS quanto não TLS.
preferSSLAs conexões entre servidores usam TLS. Para conexões recebidas, o servidor aceita tanto TLS quanto não TLS.
requireSSLO servidor utiliza e aceita somente conexões criptografadas TLS.
spec.additionalMongodConfig.net.tls.disabledProtocolsTipo: string
Novidade na versão 4.2 do MongoDB.
Impede que um servidor MongoDB em execução com TLS aceite conexões recebidas que usam um protocolo ou protocolos específicos. Para especificar vários protocolos, use 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_2e 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_1e habilitarTLS1_0eTLS1_2. Você também deve desabilitar pelo menosTLS1_0ouTLS1_2. Por exemplo,TLS1_0,TLS1_1desabilitaTLS1_2no 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 habilitar o TLS desabilitado 1.0, especifique
nonecomo o valor paraspec.additionalMongodConfig.net.tls.disabledProtocols. Para saber mais sobre essa configuração, consulte Desativar TLS 1.0.Os membros dos conjuntos de réplicas e cluster fragmentado devem falar pelo menos um protocolo em comum.
spec.security.authenticationTipo: collection
Especificações de autenticação para a implementação do MongoDB.
spec.security.authentication.enabledTipo: booleano
Padrão:
falseEspecifica se a autenticação está habilitada no projeto do Cloud Manager ou MongoDB Ops Manager . Se definido como
true, você deverá definir um mecanismo de autenticação emspec.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.modesTipo: array
Especifica o mecanismo de autenticação usado pelo deployment do MongoDB. Os valores válidos são
SCRAM,SCRAM-SHA-1,MONGODB-CR,X509eLDAP. RecomendamosSCRAM-SHA-256(SCRAM) em vez deSCRAM-SHA-1. Ao especificarSCRAM-SHA-1, você também deverá especificarMONGODB-CR.Observação
Autenticação interna do cluster X.509
Para habilitar a autenticação de cluster interno X.509 para o projeto do Cloud Manager ou MongoDB Ops Manager , defina este valor como
["X509"]e especifique as seguintes configurações:fornecer um valor para a configuração
spec.security.certsSecretPrefix.'
Se você fornecer mais de um valor para
spec.security.authentication.modes, também deverá especificar um valor paraspec.security.authentication.agents.mode.
spec.security.authentication.internalClusterTipo: string
Especifica se a autenticação interna do cluster X.509 está habilitada.
Para habilitar a autenticação de cluster interno X.509, defina como
"X509". Isso requer a especificação das seguintes configurações:O operador Kubernetes aceita os seguintes valores:
["X509"]: a autenticação interna do cluster X.509 está habilitada.""ou omitida: a autenticação interna do cluster não está habilitada.
Importante
Depois de habilitar a autenticação interna do cluster, não será possível desabilitá-la.
spec.security.authentication.requireClientTLSAuthenticationTipo: booleano
Padrão:
falseEspecifica se o host MongoDB exige que os clientes se conectem usando um certificado TLS. O padrão é
truese você habilitar a autenticação TLS.Para habilitar a autenticação TLS, forneça um valor para a configuração
spec.security.certsSecretPrefix.
spec.security.authentication.ldapTipo: collection
Necessário para a autenticação LDAP.
Configura a autenticação LDAP para o projeto do Cloud Manager ou MongoDB Ops Manager . Para ativar a autenticação LDAP , defina
spec.security.authentication.modescomo["LDAP"].
spec.security.authentication.ldap.serversTipo: 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.timeoutMSTipo: inteiro
Especifica quantos milissegundos uma solicitação de autenticação deve esperar antes de atingir o tempo limite.
spec.security.authentication.ldap.transportSecurityTipo: 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 esse valor em branco ou defina o valor comonone.Observação
Se você especificar uma string diferente de
noneoutls, o Kubernetes Operator continuará definindo a configuração comotls.
spec.security.authentication.ldap.caConfigMapRefTipo: collection
Necessário para a autenticação LDAP com TLS.
ConfigMap que contém um CA que valida o certificado LDAP do servidor TLS.
spec.security.authentication.ldap.caConfigMapRef.nameTipo: string
Necessário para a autenticação LDAP com TLS.
Nome do ConfigMap que contém um CA que valida o certificado LDAP do servidor TLS.
spec.security.authentication.ldap.caConfigMapRef.keyTipo: 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.bindQueryUserTipo: string
Necessário para a autenticação LDAP.
LDAP Nome distinto ao qual o MongoDB é associado ao conectar ao servidor LDAP.
spec.security.authentication.ldap.bindQueryPasswordSecretRefTipo: 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.nameTipo: 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.authzQueryTemplateTipo: 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}- Substitui o nome de usuário autenticado, ou o nome de usuário
transformed, na query LDAP.
{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.automationLdapGroupDNTipo: 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.authzQueryTemplateestá presente, espec.security.authentication.agents.modeéLDAPouX509.
spec.security.authentication.ldap.userToDNMappingTipo: string
Mapeia o nome de usuário fornecido para
mongodoumongospara autenticação em um Nome Distinto (DN) LDAP.Dica
security.ldap.userToDNMapping no Manual do MongoDB
spec.security.authentication.ldap.userCacheInvalidationIntervalTipo: inteiro
Especifica quantos segundos o MongoDB espera para limpar o cache do usuário LDAP. O padrão é 30 segundos.
spec.security.authentication.agentsTipo: collection
Configuração de autenticação do MongoDB Agent para o projeto do Cloud Manager ou Ops Manager.
spec.security.authentication.agents.modeTipo: string
O mecanismo de autenticação que os MongoDB Agents de seu deployment do MongoDB usam. Os valores válidos são
SCRAM,SCARM-SHA-1,MONGODB-CR,X509eLDAP. O valor especificado também deve estar presente emspec.security.authentication.modes. RecomendamosSCRAM-SHA-256(SCRAM) em vezSCRAM-SHA-1. Se você especificarSCRAM-SHA-1, você também deverá especificarMONGODB-CR.Esta configuração é necessária se você especificou mais de um valor para
spec.security.authentication.modes.
spec.security.authentication.agents.automationUserNameTipo: string
Nome do usuário que os MongoDB Agents usam para interagir com seu deployment do MongoDB. O nome de usuário é mapeado para um Nome Distinto (DN) LDAP de acordo com
spec.security.authentication.ldap.userToDNMapping. O DN resultante precisa existir em seu sistema de LDAP.Esta configuração é exigida se
spec.security.authentication.agents.modeforLDAP.
spec.security.authentication.agents.automationPasswordSecretRefTipo: collection
Detalhes do segredo que contém a senha do usuário
spec.security.authentication.agents.automationUserName.Esta configuração é exigida se
spec.security.authentication.agents.modeforLDAP.
spec.security.authentication.agents.automationPasswordSecretRef.nameTipo: 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> Este segredo deve conter uma chave cujo valor corresponda à senha do usuário
spec.security.authentication.agents.automationUserNameem seu sistema do LDAP.Esta configuração é exigida se
spec.security.authentication.agents.modeforLDAP.
spec.security.authentication.agents.automationPasswordSecretRef.keyTipo: string
Digite o
spec.security.authentication.agents.automationPasswordSecretRef.namesegredo que contém a senha do usuário emspec.security.authentication.agents.automationUserName.Esta configuração é exigida se
spec.security.authentication.agents.modeforLDAP.
spec.security.authentication.agents.clientCertificateSecretRef.nameTipo: string
Especifica o secreto que contém o certificado TLS do agente MongoDB. Se omitido, o padrão é
agent-certs.Este segredo deve conter a chave
mms-automation-agent-pem. O valor dessa chave deve ser um certificado TLS que possa ser validado pelo servidor.Você deve criar este segredo no mesmo namespace para o qual distribuirá o operador Kubernetes:
kubectl create secret generic agent-certs \ --from-file=mms-automation-agent-pem=<automation-cert.pem> \ --namespace=<metadata.namespace>
spec.security.rolesTipo: array
Array que define funções definidas pelo usuário que oferecem controle de acesso refinado sobre sua implantação MongoDB.
Para habilitar roles definidas pelo usuário, o
spec.security.authentication.enableddeve sertrue.Exemplo
Neste exemplo, um role definido pelo usuário denominado
customRolepermite aos usuários atribuídos a este role a:Inserir documentos na collection
catsno banco de dadospetseEncontre e insira documentos na collection
dogsno banco de dadospets.
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: <my-replica-set> 6 spec: 7 members: 3 8 version: "4.2.2-ent" 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.dbTipo: string
O banco de dados no qual você deseja armazenar a função definida pelo usuário.
Exemplo
admin
spec.security.roles.authenticationRestrictionsTipo: array
Array que define o endereço IP a partir do qual e para o qual os usuários atribuídos a este
spec.security.roles.rolepodem se conectar.
spec.security.roles.authenticationRestrictions.clientSourceTipo: array
Array de endereços IP ou blocos CIDR a partir dos quais os usuários atribuídos a este
spec.security.roles.rolepodem se conectar.Os servidores MongoDB rejeitam solicitações de conexão de usuários com esse role se as solicitações vierem de um cliente que não esteja presente nessa array.
spec.security.roles.authenticationRestrictions.serverAddressTipo: array
Array de endereços IP ou blocos CIDR aos quais os usuários atribuídos a este
spec.security.roles.rolepodem se conectar.Os servidores MongoDB rejeitam solicitações de conexão de usuários com esse role se o cliente solicitar a conexão a um servidor que não esteja presente nessa array.
spec.security.roles.privilegesTipo: array
Array que descreve os privilégios dos usuários que concederam esse role.
spec.security.roles.privileges.actionsTipo: array
Lista de ações que os usuários que receberam essa função podem executar. Para obter uma lista de valores aceitos, consulte Ações de privilégio no Manual do MongoDB das versões do MongoDB que você implementa com o Kubernetes Operator.
spec.security.roles.privileges.resourceTipo: collection
Recursos para os quais o privilégio
actionsse aplicam.Essa collection deve incluir:
As configurações
spec.security.roles.privileges.resource.databaseespec.security.roles.privileges.resource.collection, ouA configuração
spec.security.roles.privileges.resource.clustercom um valor detrue.
spec.security.roles.privileges.resource.databaseTipo: string
Banco de dados ao qual o privilégio
actionsse aplica.Se você fornecer um valor para esta configuração, você também deverá fornecer um valor para
spec.security.roles.privileges.resource.collection.
spec.security.roles.privileges.resource.collectionTipo: string
Collection no
databaseà qual o privilégioactionsse aplica.Se você fornecer um valor para esta configuração, você também deverá fornecer um valor para
spec.security.roles.privileges.resource.database.
spec.security.roles.privileges.resource.clusterTipo: booleano
Padrão: falso
Sinalizador que indica que o privilégio
actionsse aplica a todos os bancos de dados e collections no MongoDB deployment. Se omitido, o padrão éfalse.Se definido como true, não forneça valores para
spec.security.roles.privileges.resource.databaseespec.security.roles.privileges.resource.collection.
Exemplos
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: "4.2.2-ent" 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 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 ...
O exemplo a seguir mostra uma especificação de recurso para um conjunto de réplicas com cada configuração fornecida:
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: my-replica-set spec: members: 3 version: "6.0.0-ent" service: my-service opsManager: # Alias of cloudManager configMapRef: name: my-project credentials: my-credentials persistent: true type: ReplicaSet podSpec: persistence: multiple: data: storage: "10Gi" journal: storage: "1Gi" labelSelector: matchLabels: app: "my-app" logs: storage: "500M" storageClass: standard podTemplate: metadata: labels: label1: mycustomlabel 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 spec: affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: "mykey" weight: 50 security: certsSecretPrefix: "prefix" tls: ca: custom-ca authentication: enabled: true modes: ["X509"] internalCluster: "X509" statefulSet: spec: serviceName: my-service additionalMongodConfig: net: ssl: mode: preferSSL ...
O exemplo a seguir mostra uma especificação de recurso para um cluster fragmentado com cada configuração fornecida:
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: my-sharded-cluster spec: shardCount: 2 mongodsPerShardCount: 3 mongosCount: 2 configServerCount: 3 version: "6.0.0-ent" service: my-service type: ShardedCluster ## Please Note: The default Kubernetes cluster name is ## `cluster.local`. ## If your cluster has been configured with another name, you can ## specify it with the `clusterDomain` attribute. opsManager: # Alias of cloudManager configMapRef: name: my-project credentials: my-credentials persistent: true configSrvPodSpec: # if "persistence" element is omitted then Operator uses the # default size (5Gi) for mounting single Persistent Volume podTemplate: 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: requiredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: nodeId mongosPodSpec: podTemplate: 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: requiredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: nodeId shardPodSpec: persistence: multiple: # if the child of "multiple" is omitted then the default size will be used. # 16GB for "data", 1GB for "journal", 3GB for "logs" data: storage: "20Gi" logs: storage: "4Gi" storageClass: standard podTemplate: 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: requiredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: nodeId mongos: additionalMongodConfig: systemLog: logAppend: true verbosity: 4 configSrv: additionalMongodConfig: operationProfiling: mode: slowOp shard: additionalMongodConfig: storage: journal: commitIntervalMs: 50 security: certsSecretPrefix: "prefix" tls: ca: custom-ca authentication: enabled: true modes: ["X509"] internalCluster: "X509" statefulSet: spec: serviceName: my-service ...
Configurações do StatefulSet
As configurações StatefulSets a seguir se aplicam somente aos tipos de recursos de cluster fragmentado e conjunto de réplicas.
spec.statefulSet.specTipo: collection
Especificação do StatefulSet que o MongoDB Enterprise Kubernetes Operator cria para recursos
MongoDB.
spec.statefulSet.spec.serviceNameTipo: string
Padrão:
<resource_name>-svce<resource_name>-svc-externalNome do serviço Kubernetes a ser criado ou utilizado para um StatefulSet. Se o serviço com este nome já existir, o MongoDB Enterprise 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.