O MongoDB Operators for Kubernetes Operator cria um sistema do Ops Manager em contêiner a partir de arquivos de especificação que você escreve.
Depois de criar ou atualizar uma especificação de recursos do Ops Manager, você direciona os Controladores MongoDB para o Operador Kubernetes a aplicar esta especificação ao seu ambiente Kubernetes. O Kubernetes Operator cria os serviços e os recursos personalizados do Kubernetes que o Ops Manager exige e, em seguida, implementa o Ops Manager e seu banco de dados de aplicativos de apoio em containers em seu ambiente Kubernetes.
Cada recurso do Ops Manager usa uma especificação de objeto no YAML para definir as características e configurações do sistema.
Exemplos
Os exemplos a seguir mostram uma especificação de recurso para um sistema do Ops Manager:
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: om 5 spec: 6 topology: SingleCluster # optional, SingleCluster by default 7 opsManagerURL: https://link.to.configured.load-balancer.example.com # optional OM URL for the operator 8 replicas: 1 9 version: "8.0.0" 10 adminCredentials: ops-manager-admin-secret 11 configuration: 12 mms.fromEmailAddr: admin@example.com 13 mms.security.allowCORS: "false" 14 security: 15 tls: 16 ca: issuer-ca 17 backup: 18 enabled: true 19 encryption: 20 kmip: 21 server: 22 url: kmip.corp.mongodb.com:5696 23 ca: mongodb-kmip-certificate-authority-pem 24 headDB: 25 storage: "30Gi" 26 labelSelector: 27 matchLabels: 28 app: my-app 29 opLogStores: 30 - name: oplog1 31 # Sets labels for the oplog store. 32 assignmentLabels: ["test1", "test2"] 33 mongodbResourceRef: 34 name: my-oplog-db 35 mongodbUserRef: 36 name: my-oplog-user 37 s3Stores: 38 - name: s3store1 39 # Sets labels for the S3 store. 40 assignmentLabels: ["test1", "test2"] 41 42 mongodbResourceRef: 43 name: my-s3-metadata-db 44 mongodbUserRef: 45 name: my-s3-store-user 46 s3SecretRef: 47 name: my-s3-credentials 48 pathStyleAccessEnabled: true 49 s3BucketEndpoint: s3.region.amazonaws.com 50 s3BucketName: my-bucket 51 applicationDatabase: 52 passwordSecretKeyRef: 53 name: om-db-user-secret 54 key: password 55 members: 3 56 topology: SingleCluster 57 version: "8.0.0-ubi8" 58 security: 59 certsSecretPrefix: appdb 60 tls: 61 ca: issuer-ca
1 apiVersion: mongodb.com/v1 2 kind: MongoDBOpsManager 3 metadata: 4 name: om 5 spec: 6 topology: MultiCluster # optional, SingleCluster by default 7 opsManagerURL: https://link.to.configured.lb.example.com # optional OM URL for the operator 8 clusterSpecList: # optional ClusterSpecOMItem list, the type is different than ClusterSpecItem for AppDB and MongoDB 9 - clusterName: cluster-1 # required 10 replicas: 1 # required, OM application replicas 11 # optional parameters to override those defined at MongoDBOpsManager level 12 clusterDomain: cluster-1.example.com # optional, default cluster.local 13 jvmParameters: ["-Xmx4352m","-Xms4352m"] 14 externalConnectivity: # optional to override 15 type: LoadBalancer 16 port: 9090 17 annotations: 18 key: value 19 statefulSet: # StatefulSetSpecWrapper override 20 spec: {} 21 metadata: {} 22 configuration: 23 automation.versions.source: mongodb 24 mms.adminEmailAddr: cloud-manager-support@mongodb.com 25 backup: # MongoDBOpsManagerBackup, optional, we only support a subset of fields 26 members: 1 # backup daemon replicas, optional, default=1 27 assignmentLabels: [] # assignment labels to override 28 jvmParameters: ["-Xmx4352m","-Xms4352m"] # optional 29 statefulSet: # mdbc.StatefulSetConfiguration, optional to override for backup daemon 30 spec: {} 31 metadata: {} 32 - clusterName: cluster-2 33 replicas: 1 34 35 .... 36 37 replicas: 1 38 version: "8.0.0" 39 adminCredentials: ops-manager-admin-secret 40 configuration: 41 mms.fromEmailAddr: admin@example.com 42 mms.security.allowCORS: "false" 43 backup: 44 enabled: true 45 encryption: 46 kmip: 47 server: 48 url: kmip.corp.mongodb.com:5696 49 ca: mongodb-kmip-certificate-authority-pem 50 headDB: 51 storage: "30Gi" 52 labelSelector: 53 matchLabels: 54 app: my-app 55 opLogStores: 56 - name: oplog1 57 # Sets labels for the oplog store. 58 assignmentLabels: ["test1", "test2"] 59 mongodbResourceRef: 60 name: my-oplog-db 61 mongodbUserRef: 62 name: my-oplog-user 63 s3Stores: 64 - name: s3store1 65 # Sets labels for the S3 store. 66 assignmentLabels: ["test1", "test2"] 67 68 mongodbResourceRef: 69 name: my-s3-metadata-db 70 mongodbUserRef: 71 name: my-s3-store-user 72 s3SecretRef: 73 name: my-s3-credentials 74 pathStyleAccessEnabled: true 75 s3BucketEndpoint: s3.region.amazonaws.com 76 s3BucketName: my-bucket 77 security: 78 tls: 79 ca: issuer-ca 80 applicationDatabase: 81 passwordSecretKeyRef: 82 name: om-db-user-secret 83 key: password 84 version: "8.0.0-ubi8" 85 topology: MultiCluster 86 clusterSpecList: 87 - clusterName: cluster1.example.com 88 members: 4 89 - clusterName: cluster2.example.com 90 members: 3 91 - clusterName: cluster3.example.com 92 members: 2 93 security: 94 certsSecretPrefix: appdb 95 tls: 96 ca: issuer-ca
Configurações necessárias MongoDB Ops Manager
Esta seção descreve as configurações que você deve usar para todos os recursos do Ops Manager.
kindTipo: string
Obrigatório. Tipo de recurso MongoDB Kubernetes para criar. Defina isso como
MongoDBOpsManager.
metadata.nameTipo: string
Obrigatório. Nome do recurso Kubernetes MongoDB que você está criando.
Os nomes de recursos devem ter 44 caracteres ou menos.
spec.versionTipo: string
Obrigatório. Versão do Ops Manager que você deseja instalar nesse recurso do MongoDB Kubernetes.
spec.adminCredentialsTipo: string
Obrigatório. Nome do segredo do Kubernetes que você criou para o usuário administrador do Ops Manager. Quando você implementa o recurso Ops Manager, o Kubernetes Operator cria um usuário com estas credenciais.
Observação
Para evitar o armazenamento de segredos em sistemas do Kubernetes de cluster único, você pode migrar todos os segredos para umaferramenta de armazenamento de segredos . As implantações em vários clusters do Kubernetes não suportam o armazenamento de segredos no armazenamento de segredos FERRAMENTAS, como o HashiCorp Vault.
O usuário administrador recebe a função Proprietário global .
spec.replicasTipo: inteiro
Condicional. Número de instâncias do MongoDB Ops Manager a serem executadas em paralelo. Se você especificar
SingleClusteremspec.topology, este parâmetro será obrigatório. O valor mínimo aceito é1.Se você especificar
MultiClusteremspec.topology, este parâmetro será ignorado.
Configurações opcionais MongoDB Ops Manager
Os recursos MongoDB Ops Manager também podem usar as seguintes configurações:
spec.backup.logging.LogBackAccessRefTipo: string
Referência a um ConfigMap que contém um arquivo
logback-access.xmlpersonalizado para configurar registros de backup MongoDB Ops Manager .A chave no ConfigMap deve corresponder exatamente ao nome do
logback-access.xmlpara garantir que substitua o arquivo padrão nos pods do MongoDB Ops Manager .Para saber mais, consulte Configurar registros do MongoDB Ops Manager com o CRD.
spec.backup.logging.LogBackRefTipo: string
Referência a um ConfigMap que contém um arquivo
logback.xmlpersonalizado. Este arquivo configura o comportamento geral de registro para backups MongoDB Ops Manager , incluindo políticas de rotação de registro, níveis de registro e outros parâmetros de registro.A chave no ConfigMap deve corresponder exatamente ao nome do
logback-access.xmlpara garantir que substitua o arquivo padrão nos pods do MongoDB Ops Manager . Para saber mais, consulte Configurar registros do MongoDB Ops Manager com o CRD.
spec.logging.LogBackAccessRefTipo: string
Referência a um ConfigMap que contém um arquivo
logback-access.xmlpersonalizado para configurar registros MongoDB Ops Manager .A chave no ConfigMap deve ser exatamente
logback-access.xmlpara garantir que substitua o arquivo padrão nos Pods do MongoDB Ops Manager .Para saber mais, consulte Configurar registros do MongoDB Ops Manager com o CRD.
spec.logging.LogBackRefTipo: string
Referência a um ConfigMap que contém um arquivo
logback.xmlpersonalizado. Este arquivo configura o comportamento geral de registro do MongoDB Ops Manager, incluindo políticas de rotação de registro, níveis de registro e outros parâmetros de registro.A chave no ConfigMap deve ser exatamente
logback.xmlpara garantir que substitua o arquivo padrão nos Pods do MongoDB Ops Manager .Para saber mais, consulte Configurar registros do MongoDB Ops Manager com o CRD.
spec.opsManagerURLTipo: string
Opcional. A URL do recurso MongoDB Ops Manager no Operador Kubernetes , por exemplo:
https://link.to.configured.lb.example.com.Se você omitir este parâmetro, para conectar às instâncias do MongoDB Ops Manager , o Operador Kubernetes utilizará o seguinte URL como padrão para a instância do MongoDB Ops Manager :
<om-name>-svc.{namespace}.svc.cluster.local. Este é o FQDN do serviço headless para MongoDB Ops Manager.Se você especificar este parâmetro, isso permitirá que você altere esta URL para outra.
Observação
Não confunda o
spec.opsManagerURLcom a URL que você especifica em um ConfigMap para uma implantação específica para configurar implantações do MongoDB e Agentes de monitoramento para o Banco de Dados do Aplicativo. O Operador Kubernetes requer ospec.opsManagerURLpara se conectar diretamente às instâncias MongoDB Ops Manager e configurar os MongoDB Ops Manager e do Banco de Dados de Aplicativos. O Operador Kubernetes não utiliza ospec.opsManagerURLpara gerenciar bancos de dados MongoDB específicos.Altere o parâmetro
spec.opsManagerURLpara uma URL personalizada nos seguintes casos:Quando você implementa o MongoDB Ops Manager em vários clusters Kubernetes e a URL padrão não está acessível a partir do MongoDB Ops Manager-hosting Pod. Por exemplo, quando você implanta o MongoDB Ops Manager em outros clusters Kubernetes além daqueles nos quais você implanta o Kubernetes Operator, o FQDN do serviço do MongoDB Ops Manager pode não estar acessível. Nesse caso, você pode especificar uma URL personalizada.
Ao configurar o acesso externo à instância do MongoDB Ops Manager em um domínio externo, você pode especificar uma URL personalizada. Isso também exige que o Operador do Kubernetes e os Agentes de Monitoramento do Banco de Dados do Aplicativo usem esse URL personalizado em vez do padrão.
spec.clusterDomainTipo: string
Kubernetes atribui a cada Pod um FQDN. O Operador Kubernetes calcula o FQDN para cada Pod utilizando um
clusterDomainfornecido. O Kubernetes não fornece uma API para consultar esses nomes de host.
spec.clusterNameTipo: string
Kubernetes atribui a cada Pod um FQDN. O Operador Kubernetes calcula o FQDN para cada Pod utilizando um
clusterNamefornecido. O Kubernetes não fornece uma API para consultar esses nomes de host.
spec.configurationTipo: collection
Propriedades de configuração MongoDB Ops Manager . Consulte Definições de configuraçãoMongoDB Ops Manager para obter nomes e descrições de propriedades. Cada propriedade obtém um valor do tipo
string.Importante
Se o Ops Manager managed os recursos do MongoDB distribuídos fora do cluster Kubernetes para o qual está distribuído, você deverá adicionar a configuração
mms.centralUrlaspec.configuration.Defina o valor como URL pela qual o Ops Manager é exposto fora do cluster Kubernetes.
Para saber mais, consulte Gerenciando sistemas externos do MongoDB .
spec.configuration.mms.featureFlag.automation.verifyDownloadsTipo: string
Quando definido como
enabled, o MongoDB Agent requer arquivos de assinatura para todos os sistemas do MongoDB que sua instância do Ops Manager managed.Quando você atualiza o MongoDB Agent com esta opção habilitada, a versão atual do MongoDB Agent exigirá arquivos de assinatura do novo binário do MongoDB Agent.
Para saber mais, consulte Verificar assinaturas MongoDB.
spec.configuration.mms.featureFlag.backup.queryableTipo: booleano
Defina como
falsepara desativar os queryable backups.
spec.configuration.mms.featureFlag.backup.wt.queryableTipo: booleano
Defina como
falsepara desativar os queryable backups ao usar o WiredTiger.
spec.configuration.mms.mongoDbUsage.defaultUsageTypeTipo: string
O tipo de servidor padrão do serviço Kubernetes.
Os valores aceitos são:
PRODUCTION_SERVER,TEST_SERVER,DEV_SERVEReRAM_POOL.
spec.jvmParametersTipo: array de strings
Opcional. Parâmetros JVM passados para o aplicativo Ops Manager no container. Todos os parâmetros fornecidos substituem os parâmetros JVM padrão para o aplicativo Ops Manager.
Este parâmetro do Kubernetes Operator é padronizado para uma lista vazia.
spec: jvmParameters: ["-XX:+HeapDumpOnOutOfMemoryError","-XX:HeapDumpPath=/tmp"] Importante
Altere os valores do heap de memória JVM por sua conta e risco
O Kubernetes Operator calcula seus valores de heap de memória JVM da aplicação Ops Manager com base na memória do container. Alterar os valores
-Xmse-Xmxpode causar problemas com o Ops Manager.
spec.security.certsSecretPrefixTipo: string
Texto para prefixo para o segredo do Kubernetes que você criou que contém a chave TLS e o certificado do Ops Manager.
Você deve nomear seu segredo
<prefix>-<metadata.name>-cert.Para saber como configurar sua instância do Ops Manager para ser executada por HTTPS, consulte Implantar um recurso do Ops Manager .
spec.security.tls.caNome do Kubernetes ConfigMap que contém um arquivo CA personalizado para o Ops Manager.
Importante
spec.security.tls.caé necessário se você usar uma CA customizada para assinar seus MongoDB Ops Manager certificados TLS .O Operador Kubernetes exige que você nomeie o certificado para o recurso do Ops Manager
mms-ca.crtno ConfigMap.Esta CA assina os certificados que:
que os clientes usam para se conectar ao aplicativo Ops Manager e
os agentes no banco de dados de aplicativos que os Pods usam para se comunicar com o Ops Manager.
Aviso
Você deve concatenar seu arquivo CA personalizado e toda a cadeia de certificados TLS do
downloads.mongodb.compara evitar que o Ops Manager se torne inoperável se o reconhecimento de data center da aplicação for reiniciado.
spec.security.tls.enabledImportante
spec.security.tls.enabledestá obsoleto e será removido em uma versão futura. Para habilitar TLS, forneça um valor para a configuraçãospec.security.certsSecretPrefix.Criptografa comunicações usando certificados TLS entre clientes e o Ops Manager.
spec.statefulSet.specTipo: collection
Especificação do StatefulSet que o operador MongoDB Operators for Kubernetes cria para o Ops Manager.
Para analisar quais campos você pode adicionar a
spec.statefulSet.spec, consulte aplicativos StatefulSetSpec v1 na documentação do Kubernetes.
spec.statefulSet.spec.templateTipo: collection
Modelo para os Pods do Kubernetes no StatefulSet que os Controladores MongoDB para o Operador Kubernetes cria para o Ops Manager.
Observação
O Kubernetes Operator não valida os campos que você fornece no
spec.statefulSet.spec.template.
spec.statefulSet.spec.template.metadataTipo: collection
Metadados para os Pods Kubernetes no StatefulSet que os Controladores MongoDB para o Operador Kubernetes cria para o Ops Manager.
Para revisar quais campos você pode adicionar a
spec.statefulSet.spec.template.metadata, consulte a documentação do Kubernetes.
spec.statefulSet.spec.template.specTipo: collection
Especificações dos Pods Kubernetes no StatefulSet que os Controladores MongoDB para o Operador Kubernetes cria para o Ops Manager.
Para revisar a lista completa de campos que você pode adicionar a
spec.statefulSet.spec.template.spec, consulte a documentação do Kubernetes.O exemplo
spec.statefulSet.spec.template.speca seguir define a capacidade mínima e máxima de CPU e memória para um container do Ops Manager que o MongoDB Operators for Kubernetes Operator implementa:statefulSet: spec: template: spec: containers: - name: mongodb-ops-manager resources: requests: cpu: "0.70" memory: "6Gi" limits: cpu: "1" memory: "7000M"
spec.statefulSet.spec.template.spec.containersTipo: collection
Lista de contêineres que pertencem aos Pods do Kubernetes no StatefulSet que o Operador de Controladores do MongoDB para Kubernetes cria para o Ops Manager.
Para modificar as especificações do container do Ops Manager, você deve fornecer o nome exato do container utilizando o campo
name, como mostrado no seguinte exemplo:backup: statefulSet: spec: template: spec: containers: - name: mongodb-ops-manager Observação
Quando você adiciona containers ao
spec.statefulSet.spec.template.spec.containers, o operador Kubernetes os adiciona ao pod do Kubernetes. Esses containers são anexados aos containers do Ops Manager no pod.
spec.statefulSet.spec.template.spec.containers.resources.requests.cpuTipo: string
Capacidade mínima da CPU que deve estar disponível em um nó do Kubernetes para hospedar o Ops Manager.
O valor solicitado deve ser menor ou igual a
spec.statefulSet.spec.template.spec.containers.resources.limits.cpu.
spec.statefulSet.spec.template.spec.containers.resources.limits.cpuTipo: string
Capacidade máxima da CPU para o nó que está sendo criado para hospedar o Ops Manager. Se omitido, este valor é definido como
spec.statefulSet.spec.template.spec.containers.resources.requests.cpu.
spec.statefulSet.spec.template.spec.containers.resources.requests.memoryTipo: string
Capacidade mínima de memória que deve estar disponível em um nó do Kubernetes para hospedar o Ops Manager no Kubernetes. Este valor é expresso como um número inteiro seguido por uma unidade de memória na notação JEDEC.
Exemplo
Se o Ops Manager no Kubernetes exigir 6 gigabytes de memória, defina esse valor como
6Gi.Observação
O MongoDB recomenda definir esse valor para pelo menos
5Gi.O valor solicitado deve ser menor ou igual a
spec.statefulSet.spec.template.spec.containers.resources.limits.memory.
spec.statefulSet.spec.template.spec.containers.resources.limits.memoryTipo: string
Capacidade máxima de memória para o nó que está sendo criado para hospedar o Ops Manager. Se omitido, este valor é definido como
spec.statefulSet.spec.template.spec.containers.resources.requests.memory.O Operador Kubernetes calcula e define parâmetros para o tamanho de heap Java baseado na memória do container.
Aviso
Limite este valor para menos de 32 GB
Definir esse valor para um valor superior a 32 GB (
32Gi) pode causar problemas com o serviço de backup. O excesso de heaps pode causar resultados imprevisíveis no Ops Manager.
Configurações de conectividade externa
Esta seção descreve as configurações opcionais relacionadas à conectividade externa no MongoDB Ops Manager. Para obter configurações opcionais de conectividade externa específicas para sua implantação MongoDB Ops Manager de vários clusters, consulte Configurações de vários clusters.
spec.externalConnectivityTipo: collection
objeto de configuração que habilita a conectividade externa com o Ops Manager. Se fornecido, o operador do Kubernetes cria um serviço do Kubernetes que permite que o tráfego originado de fora do cluster do Kubernetes chegue ao aplicação Ops Manager.
Se não for fornecido, o Operador Kubernetes não cria um serviço Kubernetes. Você deve criar uma manualmente ou usar uma solução de terceiros que permita rotear o tráfego externo para o aplicativo de Ops Manager no cluster do Kubernetes.
spec.externalConnectivity.typeTipo: string
O serviço do Kubernetes ServiceType que expõe o Ops Manager fora do Kubernetes.
Obrigatório se
spec.externalConnectivity.typeestiver presente.Os valores aceitos são:
LoadBalancereNodePort.LoadBalanceré recomendado se o seu fornecedor de nuvem suportar. Utilize oNodePortpara sistemas locais.
spec.externalConnectivity.portTipo: inteiro
O valor que indica qual porta um serviço do Kubernetes expõe o aplicativo de Ops Manager deve usar para tráfego externo.
Se
spec.externalConnectivity.typeforNodePort:O serviço do Kubernetes expõe o aplicativo Ops Manager ao tráfego externo por meio dessa porta.
Se você não fornecer um valor
spec.externalConnectivity.port, o serviço do Kubernetes o tráfego para o aplicativo MongoDB Ops Manager a partir de uma porta disponível selecionada aleatoriamente a partir do seguinte intervalo padrão:30000-32767.Observação
Você deve configurar o firewall da sua rede para permitir o tráfego por esta porta.
Se
spec.externalConnectivity.typeforLoadBalancer:O recurso do balanceador de carga que seu fornecedor de nuvem cria expõe a aplicação Ops Manager por meio dessa porta.
Se você não fornecer um valor de
spec.externalConnectivity.port, o serviço do Kubernetes expõe o aplicativo MongoDB Ops Manager ao tráfego externo por meio da porta HTTP (8080) ou HTTPS (8443) padrão.
spec.externalConnectivity.loadBalancerIPTipo: string
O endereço IP que o serviço Kubernetes
LoadBalancerusa quando o Operador Kubernetes o cria.Essa configuração só pode ser usada se o seu provedor de nuvem suportar e
spec.externalConnectivity.typeforLoadBalancer. Para saber mais sobre o Type LoadBalancer, consulte a documentação do Kubernetes.
spec.externalConnectivity.externalTrafficPolicyTipo: string
Política de roteamento de tráfego externo para o serviço Kubernetes do Ops Manager. O serviço roteia o tráfego externo para endpoints locais do nó ou em todo o cluster, dependendo do valor dessa configuração.
Os valores aceitos são:
ClustereLocal. Para saber quais valores atendem aos seus requisitos, consulte IPs de origem no Kubernetes na documentação do Kubernetes.Observação
Se você selecionar
Cluster, oSource-IPdos seus clientes será perdido durante os saltos de rede que acontecem no limite de rede Kubernetes.
spec.externalConnectivity.annotationsTipo: collection
Pares de valores-chave que permitem que você forneça configurações específicas do fornecedor de nuvem.
Para saber mais sobre Anotações e suporte a TLS no Amazon Web Services, consulte a documentação do Kubernetes.
Configurações de backup
Esta seção descreve as configurações opcionais relacionadas a backups no MongoDB Ops Manager. Para obter configurações de backup opcionais específicas para sua implantação MongoDB Ops Manager de vários clusters, consulte Configurações de vários clusters.
spec.backup.assignmentLabelsTipo: array de strings
Uma lista de etiquetas de atribuição para os processos do Serviço de Backup Daemon . Use rótulos de atribuição para identificar se processos específicos de daemon de backup estão associados a projetos específicos. Se você definir rótulos de atribuição usando o operador Kubernetes , os valores definidos no arquivo de configuração do Kubernetes para rótulos de atribuição substituirão os valores definidos na UI do MongoDB Ops Manager . Os rótulos de atribuição que você não define usando o Kubernetes Operator continuam a usar os valores definidos na interface do usuário do MongoDB Ops Manager .
spec.backup.enabledTipo: booleano
Sinalizador que habilita o Backup para seu recurso do Ops Manager. Ao definir como
false, o backup será desabilitado.O valor padrão é
true.
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.
Observação
Se você definir este parâmetro, a chave de API vinculada ao valor de
spec.credentialsdeverá ter o roleGlobal Owner.
spec.backup.encryption.kmip.serverTipo: objeto
objeto que contém as definições de configuração do servidor de criptografia de backup KMIP .
spec.backup.encryption.kmip.server.caTipo: string
Etiqueta legível por humanos que identifica o ConfigMap que contém uma entrada para o certificado CA (
ca.pem) para usar para autenticação KMIP .
spec.backup.encryption.kmip.server.urlTipo: string
URL do servidor KMIP que usa o formato
hostname.port(por exemplo,192.168.1.3:5696oumy-kmip-server.mycorp.com:5696).
spec.backup.headDBTipo: collection
Definições de configuração para o banco de dados principal. Kubernetes Operator cria uma declaração de volume persistente com a configuração especificada.
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 é
30Gi.Para saber mais, consulte Requisitos de hardware do Backup Daemon .
Por exemplo, se o banco de dados principal 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.backup.jvmParametersTipo: array de strings
Opcional. Parâmetros JVM passados para o serviço de backup do Ops Manager no container.
Este parâmetro do Kubernetes Operator é padronizado para uma lista vazia.
spec: backup: jvmParameters: ["-XX:+UseStringCache"] Aviso
Altere os valores do heap de memória JVM por sua conta e risco
O Kubernetes Operator calcula os valores de heap de memória JVM do serviço de backup com base na memória do container. Alterar os valores
-Xmse-Xmxpode causar problemas com o Ops Manager.
spec.backup.membersTipo: inteiro
Opcional. Número de serviços de daemon de backup a serem implementados no Kubernetes. Se não for especificado, o padrão será
1. Para garantir alta disponibilidade para seu serviço de backup, implemente vários daemons de backup no MongoDB Ops Manager.
spec.backup.opLogStoresTipo: collection
Obrigatório se você ativar o backup. Array de armazenamentos de oplog usados para backup. Cada item na array faz referência a um recurso do banco de dados de dados MongoDB implantado no cluster Kubernetes pelo Operador Kubernetes.
spec.backup.opLogStores.assignmentLabelsTipo: array de strings
Uma lista de rótulos de atribuição para o armazenamento de oplog. Use rótulos de atribuição para identificar que os armazenamentos de oplog específicos estão associados a determinados projetos. Se você definir rótulos de atribuição usando o operador Kubernetes , os valores definidos no arquivo de configuração do Kubernetes para rótulos de atribuição substituirão os valores definidos na UI do MongoDB Ops Manager . Os rótulos de atribuição que você não define usando o Kubernetes Operator continuam a usar os valores definidos na interface do usuário do MongoDB Ops Manager .
spec.backup.opLogStores.nameTipo: string
Obrigatório se você ativar o Backup. Nome do armazenamento de oplog.
Importante
Depois de especificado, não edite o nome do armazenamento de oplog.
spec.backup.opLogStores.mongodbResourceRef.nameTipo: string
Obrigatório se você ativar o Backup. Nome do recurso
MongoDBou do recursoMongoDBMultiClusterque você cria para armazenar fatias de oplog. Você deve distribuir este recurso no mesmo namespace que o recurso MongoDB Ops Manager .O reconhecimento de data center oplog oferece suporte apenas ao mecanismo de autenticação
SCRAM. Não é possível habilitar outros mecanismos de autenticação.Se você habilitar a autenticação
SCRAMno reconhecimento de data center oplog, deverá:Crie um recurso de usuário MongoDB para conectar o Ops Manager ao reconhecimento de data center oplog.
Especifique o
namedo usuário na definição de recurso do MongoDB Ops Manager .
Se um MongoDB database resource com este nome não existir, o recurso
backupinserirá um estadoPending. O Kubernetes Operator tenta novamente a cada 10 segundos até que um reconhecimento de data center MongoDB com esse nome seja criado.Observação
O Kubernetes Operator começa a reconciliar o recurso do Ops Manager automaticamente quando você faz alterações de segurança nos recursos de reconhecimento de data center a que você faz referência nesta configuração. O Kubernetes Operator atualiza os sinalizadores
mongoURIesslna configuração do Ops Manager com base nas suas alterações.
spec.backup.opLogStores.mongodbUserRef.nameTipo: string
Obrigatório se a autenticação SCRAM estiver habilitada no banco de dados do Oplog Store Database. Nome do recurso de usuário MongoDB usado para se conectar ao banco de dados do Oplog Store Database. Implemente este recurso de usuário no mesmo namespace que o recurso MongoDB Ops Manager e com todas as seguintes funções:
spec.backup.blockStoresTipo: collection
Necessário se você habilitar o Backup usando um blockstore. Array de blockstores usados para backup. Cada item na array faz referência a um recurso do MongoDB database implantado no cluster Kubernetes pelo Operador Kubernetes .
spec.backup.blockStores.assignmentLabelsTipo: array de strings
Uma lista de rótulos de atribuição para o blockstore. Use rótulos de atribuição para identificar se blockstores 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 UI do MongoDB Ops Manager . Os rótulos de atribuição que você não define usando o Kubernetes Operator continuam a usar os valores definidos na interface do usuário do MongoDB Ops Manager .
spec.backup.blockStores.nameTipo: string
Necessário se você habilitar o backup usando um blockstore. Nome da blockstore.
Importante
Depois de especificado, não edite o nome do blockstore.
spec.backup.blockStores.mongodbResourceRef.nameTipo: string
Necessário se você habilitar o backup usando um blockstore. Nome do recurso do banco de MongoDB database que você cria para o blockstore. Você deve implantar esse recurso de banco de dados no mesmo namespace que o recurso MongoDB Ops Manager .
O blockstore reconhecimento de data center oferece suporte apenas ao mecanismo de autenticação
SCRAM. Não é possível habilitar outros mecanismos de autenticação.Se você habilitar a autenticação
SCRAMno banco de dados do blockstore, deverá:Crie um recurso de usuário MongoDB para conectar o Ops Manager ao reconhecimento de data center do blockstore.
Especifique o
namedo usuário na definição de recurso do MongoDB Ops Manager .
Se um MongoDB database resource com este nome não existir, o recurso
backupinserirá um estadoPending. O Kubernetes Operator tenta novamente a cada 10 segundos até que um reconhecimento de data center MongoDB com esse nome seja criado.Observação
O Kubernetes Operator começa a reconciliar o recurso do Ops Manager automaticamente quando você faz alterações de segurança nos recursos de reconhecimento de data center a que você faz referência nesta configuração. O Kubernetes Operator atualiza os sinalizadores
mongoURIesslna configuração do Ops Manager com base nas suas alterações.
spec.backup.blockStores.mongodbUserRef.nameTipo: string
Necessário se a autenticação SCRAM estiver habilitada no banco de dados blockstore. Nome do recurso de usuário MongoDB usado para se conectar ao banco de dados blockstore. Implemente este recurso de usuário no mesmo namespace que o recurso MongoDB Ops Manager e com todas as seguintes funções:
spec.backup.queryableBackupSecretRef.nameTipo: string
Nome do segredo que contém o arquivo queryable.pem do MongoDB Ops Manager que você usará para acessar e executar query de backups com base nos requisitos de TLS do seu sistema.O arquivo PEM contém um certificado de chave pública e sua chave privada associada que são necessários para acessar e execute queries em snapshots de backup no MongoDB Ops Manager. Para query backups, especifique o valor deste parâmetro. Se não estiverem definidos, os backups não serão afetados, mas você não poderá consultá-los.
spec.backup.statefulSet.specTipo: collection
Especificação do StatefulSet que o Operador dos Controladores MongoDB para Kubernetes cria para o serviço do daemon de backup.
Para analisar quais campos você pode adicionar a
spec.backup.statefulSet.spec, consulte aplicativos StatefulSetSpec v1 na documentação do Kubernetes.
spec.backup.statefulSet.spec.templateTipo: collection
Modelo para os Pods Kubernetes no StatefulSet que os Controladores MongoDB para o Operador Kubernetes criam para o serviço de daemon de backup.
Observação
O Kubernetes Operator não valida os campos que você fornece no
spec.backup.statefulSet.spec.template.
spec.backup.statefulSet.spec.template.metadataTipo: collection
Metadados para os Pods Kubernetes no StatefulSet que os Controladores MongoDB para o Operador Kubernetes criam para o serviço de daemon de backup.
Para revisar quais campos você pode adicionar a
spec.backup.statefulSet.spec.template.metadata, consulte a documentação do Kubernetes.
spec.backup.statefulSet.spec.template.specTipo: collection
Especificações dos Pods Kubernetes no StatefulSet que os Controladores MongoDB para o Operador Kubernetes criam para o serviço daemon de backup.
Para revisar a lista completa de campos que você pode adicionar a
spec.backup.statefulSet.spec.template.spec, consulte a documentação do Kubernetes.O exemplo
spec.backup.statefulSet.spec.template.speca seguir define a capacidade mínima e máxima de CPU e memória para um container de serviço de backup daemon que o MongoDB Operators for Kubernetes Operator implementa:statefulSet: spec: template: spec: containers: - name: mongodb-backup-daemon resources: requests: cpu: "0.50" memory: "4500M" limits: cpu: "1" memory: "6000M"
spec.backup.statefulSet.spec.template.spec.containersTipo: collection
Lista de contêineres que pertencem aos Pods do Kubernetes no StatefulSet que o Operador de Controladores do MongoDB para Kubernetes cria para o serviço de daemon de backup.
Para modificar as especificações do container de serviço do daemon de backup , você deve fornecer o nome exato do container usando o campo
name, conforme mostrado no exemplo a seguir:backup: statefulSet: spec: template: spec: containers: - name: mongodb-backup-daemon Observação
Quando você adiciona containers ao
spec.backup.statefulSet.spec.template.spec.containers, o operador Kubernetes os adiciona ao pod do Kubernetes. Esses containers são anexados aos containers do Backup Daemon Service no pod.
spec.backup.statefulSet.spec.template.spec.containers.resources.requests.cpuTipo: string
Capacidade mínima da CPU que deve estar disponível em um nó do Kubernetes para hospedar o serviço do daemon de backup.
O valor solicitado deve ser menor ou igual a
spec.backup.statefulSet.spec.template.spec.containers.resources.limits.cpu.
spec.backup.statefulSet.spec.template.spec.containers.resources.limits.cpuTipo: string
Capacidade máxima da CPU para o nó que está sendo criado para hospedar o serviço do daemon de backup. Se omitido, este valor é definido como
spec.backup.statefulSet.spec.template.spec.containers.resources.requests.cpu.
spec.backup.statefulSet.spec.template.spec.containers.resources.requests.memoryTipo: string
Capacidade mínima de memória que deve estar disponível em um nó do Kubernetes para hospedar o serviço do daemon de backup no Kubernetes. Este valor é expresso como um número inteiro seguido por uma unidade de memória na notação JEDEC.
Observação
Defina este valor para pelo menos
4.5Gi. Valores menores que4.5Gipodem resultar em um erro.O valor solicitado deve ser menor ou igual a
spec.backup.statefulSet.spec.template.spec.containers.resources.limits.memory.
spec.backup.statefulSet.spec.template.spec.containers.resources.limits.memoryTipo: string
Capacidade máxima de memória para o nó que está sendo criado para hospedar o serviço do daemon de backup. Se omitido, este valor é definido como
spec.backup.statefulSet.spec.template.spec.containers.resources.requests.memory.O Operador Kubernetes calcula e define parâmetros para o tamanho de heap Java baseado na memória do container.
Aviso
Limite este valor para menos de 32 GB
Definir esse valor para um valor superior a 32 GB (
32Gi) pode causar problemas com o serviço de backup. O excesso de heaps pode causar resultados imprevisíveis no Ops Manager.
Configurações do S3
Você pode configurar o Ops Manager para usar o S3 para armazenar oplogs e snapshots de backup, e conectar conexões seguras ao S3 com TLS usando chaves emitidas por CA personalizadas.
Para configurar chaves CA personalizadas, use o ConfigMap com o qual você configurou o TLS para seu Banco de Dados do Aplicativo, conforme descrito na guia TLS-Encrypted Connection (HTTPS) de Implantar um Recurso MongoDB Ops Manager . Defina spec.applicationDatabase.security.tls.ca como este ConfigMap.
Você pode usar TLS para S3 e seu Banco de Dados de Aplicativos, ou somente para S3 .
Para usar TLS para ambos, obtenha certificados para ambos os fins do mesmo
ca-pemreferenciado no ConfigMap.Para usar TLS apenas para S3 , não defina
spec.security.applicationDatabase.certsSecretPrefixno seu ConfigMap.
spec.backup.s3OpLogStores.assignmentLabelsTipo: array de strings
Uma lista de rótulos de atribuição para armazenamentos de oplog S3 . Use rótulos de atribuição para identificar se armazenamentos de oplog S3 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 UI do MongoDB Ops Manager . Os rótulos de atribuição que você não define usando o Kubernetes Operator continuam a usar os valores definidos na interface do usuário do MongoDB Ops Manager .
spec.backup.s3OpLogStores.customCertificateTipo: booleano
Obsoleto. Em vez disso, use
spec.backup.s3OpLogStores.customCertificateSecretRefs.Sinalizador que indica se você usa certificados AppDB (
appdb-ca) como certificado TLS personalizado para seu armazenamento de oplog do S3 . O padrão éFalse.
spec.backup.s3OpLogStores.customCertificateSecretRefsTipo : array de objetos
Lista de certificados personalizados para seu armazenamento de oplog S3 usando segredos do Kubernetes. O certificado de base64-codificado x.509 já deve estar presente em um segredo do Kubernetes com uma chave e deve ser analisado pelo Java CertifcateFactory. Você não pode especificar vários certificados em uma cadeia em um segredo. Se você especificar vários certificados em uma cadeia em um segredo, o Kubernetes Operator usará apenas o primeiro certificado na cadeia. Se você também fornecer a configuração
customCertificate, o Kubernetes Operator usará ospec.applicationDatabase.security.tls.cacomo o certificado personalizado para backups.Cada entrada na lista especifica o
namee okey. Se você especificar vários segredos, o Kubernetes Operator usará todos os certificados nos segredos especificados.Se você não fornecer essa configuração, o Ops Manager usará o JVM Default Trust Store usado pelo Ops Manager.
spec.backup.s3OpLogStores.customCertificateSecretRefs.nameTipo: string
Necessário para usar certificados personalizados para seu armazenamento de oplog S3. Segredo do Kubernetes que contém o certificado personalizado.
spec.backup.s3OpLogStores.customCertificateSecretRefs.keyTipo: string
Necessário para usar certificados personalizados para seu armazenamento de oplog S3. Arquivo que representa a chave no segredo que contém o certificado x.509 codificado por base64. Se você não especificar essa configuração, o Kubernetes Operator não poderá usar o certificado personalizado para backups de armazenamento de oplog do S3.
spec.backup.s3OpLogStores.irsaEnabledTipo: booleano
Sinalizador que permite usar as funções do Amazon Web Services IAM para contas de serviço no Amazon Web Services EKS para configurar um armazenamento de oplog S3. O padrão é
False. Se você não estiver usando Amazon Web Services EKS, esse sinalizador não terá efeito. Quando definido comoFalse, o uso de roles do Amazon Web Services IAM para contas de serviço no EKS para configurar um armazenamento de oplog S3 é desabilitado. Para saber mais, consulte Funções de IAM para contas de serviço no EKS.
spec.backup.s3OpLogStores.nameTipo: string
Necessário para armazenar o oplog utilizando um armazenamento S3 . Nome do armazenamento de oplog S3 .
spec.backup.s3OpLogStores.mongodbResourceRef.nameTipo: string
Nome do recurso de MongoDB database que você cria para armazenar metadados para o oplog do S3 . Você deve implantar este recurso de reconhecimento de data center no mesmo namespace que o recurso Ops Manager.
Observação
Omita esta configuração para usar o Banco de Dados do Aplicativo para armazenar metadados para o armazenamento de oplog S3 .
Se você omitir esta configuração, você também deverá omitir a configuração
spec.backup.s3OpLogStores.mongodbUserRef.name. O Operador Kubernetes lida com a autenticação do usuárioSCRAMinternamente.Se você habilitar a autenticação do
SCRAMneste reconhecimento de data center, você deverá:Crie um recurso de usuário MongoDB para conectar o Ops Manager ao banco de dados.
Especifique o
namedo usuário na definição de recurso do MongoDB Ops Manager .
spec.backup.s3OpLogStores.mongodbUserRef.nameTipo: string
Necessário se você criou um recurso de banco de dados MongoDB para armazenar metadados S3 oplog e SCRAM estiver habilitado neste banco de dados de dados. Nome do recurso de usuário MongoDB usado para se conectar ao banco de banco de dados de metadados do armazenamento de oplog S3 . Implemente este recurso de usuário no mesmo namespace que o recurso MongoDB Ops Manager e com todas as seguintes funções:
Importante
Depois de especificado, não edite o nome do nome de usuário do armazenamento de oplog de metadados do S3 .
spec.backup.s3OpLogStores.s3SecretRef.nameTipo: string
Necessário para armazenar o oplog utilizando um armazenamento S3 se
spec.backup.s3OpLogStores.irsaEnablednão estiver configurado paratrue.Nome do segredo que contém os campos
accessKeyesecretKey. O serviço daemon de backup usa os valores desses campos como credenciais para acessar o bucket compatível com o Amazon Web Services S3 ou S3 . Para configurar o armazenamento de oplog S3 , você deve especificar ambas as chaves no segredo.Se você configurar o
spec.backup.s3OpLogStores.irsaEnabledparatrue, você não precisará configurar os3SecretRef, pois as credenciais do Amazon Web Services S3 são montadas como variáveis de ambiente do pod.
spec.backup.s3OpLogStores.pathStyleAccessEnabledTipo: booleano
Indica o estilo da URL do endpoint do bucket.
ValorDescriçãoExemplotrueURL no estilo de caminho
s3.amazonaws.com/<bucket>falseURL no estilo de host virtual
<bucket>.s3.amazonaws.comPara saber mais sobre anotações e suporte a TLS no Amazon Web Services, consulte a documentação do Kubernetes.
O valor padrão é
true.
spec.backup.s3OpLogStores.s3BucketEndpointTipo: string
Necessário para armazenar o oplog utilizando um armazenamento S3 . URL do bucket S3 da Amazon Web3Services ou bucket compatível com S que hospeda o armazenamento oplog de .
Observação
Se o seu endpoint não incluir uma região em seu URL, especifique o campo
s3RegionOverride.
spec.backup.s3OpLogStores.s3BucketNameTipo: string
Necessário para armazenar o oplog utilizando um armazenamento S3 . Nome do bucket S3 da Amazon Web Services ou 3bucket compatível com S que hospeda o armazenamento oplog de .
spec.backup.s3OpLogStores.s3RegionOverrideTipo: string
Região onde reside seu bucket compatível com S3 . Use esse campo somente se o
s3BucketEndpointdo seu armazenamento de oplog S3 suportar o escopo de região. O escopo da região é quando o endpoint não inclui uma região na URL.Não use este campo com buckets do Amazon Web Services S3 . Para obter mais informações, consulte Configuração do Blockstore S3 .
spec.backup.s3Stores.assignmentLabelsTipo: array de strings
Uma lista de rótulos de atribuição para os blocos compatíveis com S3 ou S3onde armazena os snapshots de backup do banco de dados. Use rótulos de atribuição para identificar se armazenamentos S3 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 UI do MongoDB Ops Manager . Os rótulos de atribuição que você não define usando o Kubernetes Operator continuam a usar os valores definidos na interface do usuário do MongoDB Ops Manager .
spec.backup.s3Stores.customCertificateTipo: booleano
Obsoleto. Em vez disso, use
spec.backup.s3Stores.customCertificateSecretRefs.Sinalizador que indica se você usa certificados do banco de dados de aplicativos (
appdb-ca) como certificado TLS personalizado para seus backups do S3 . O padrão éFalse.
spec.backup.s3Stores.customCertificateSecretRefsTipo : array de objetos
Lista de certificados personalizados para seu armazenamento de snapshots S3 usando segredos do Kubernetes. O certificado de base64-codificado x.509 já deve estar presente em um segredo do Kubernetes com uma chave e deve ser analisado pelo Java CertifcateFactory. Você não pode especificar vários certificados em uma cadeia em um segredo. Se você especificar vários certificados em uma cadeia em um segredo, o Kubernetes Operator usará apenas o primeiro certificado na cadeia. Se você também fornecer a configuração
spec.backup.s3Stores.customCertificate, o Kubernetes Operator usará ospec.applicationDatabase.security.tls.cacomo o certificado personalizado para backups.Cada entrada na lista especifica o
namee okey. Se você especificar vários segredos, o Kubernetes Operator utilizará todos os segredos especificados.Se você não fornecer essa configuração, o Kubernetes Operator usará o JVM Default Trust Store usado pelo Ops Manager para backups.
spec.backup.s3Stores.customCertificateSecretRefs.nameTipo: string
Necessário para usar certificados personalizados para seu armazenamento de oplog S3. Segredo do Kubernetes que contém o certificado personalizado.
spec.backup.s3Stores.customCertificateSecretRefs.keyTipo: string
Necessário para usar certificados personalizados para seu armazenamento de oplog S3. Arquivo que representa a chave no segredo que contém o certificado x.509 codificado por base64. Se você não especificar essa configuração, o Kubernetes Operator não poderá usar o certificado personalizado para o armazenamento de snapshots do S3 e padronizará o armazenamento confiável padrão da JVM {Java Virtual Machine) usado pelo Ops Manager.
spec.backup.s3Stores.irsaEnabledTipo: booleano
Sinalizador que habilita o uso de roles do Amazon Web Services IAM para contas de serviço no Amazon Web Services EKS para configurar um armazenamento de snapshots S3. O padrão é
False. Se você não estiver usando Amazon Web Services EKS, esse sinalizador não terá efeito. Quando definido comoFalse, o uso de roles do Amazon Web Services IAM para contas de serviço no EKS para configurar um armazenamento de snapshots do S3 é desabilitado. Para saber mais, consulte Funções de IAM para contas de serviço no EKS.
spec.backup.s3Stores.nameTipo: string
Necessário para armazenar o oplog utilizando um armazenamento S3 . Nome do armazenamento de snapshots do S3 .
Importante
Depois de especificado, não edite o nome do armazenamento de snapshots do S3 . Essa alteração provavelmente falhará se os backups usarem o nome antigo. As consequências de uma mudança bem-sucedida são imprevisíveis.
spec.backup.s3Stores.mongodbResourceRef.nameTipo: string
Nome do recurso
MongoDBou recursoMongoDBMultiClusterque você cria para armazenar metadados para o armazenamento de snapshots do S3 . Você deve implantar este recurso de reconhecimento de data center no mesmo namespace que o recurso Ops Manager.Observação
Omita esta configuração para usar o Banco de Dados do Aplicativo para armazenar metadados para o armazenamento de snapshots S3 .
Se você omitir esta configuração, você também deverá omitir a configuração
spec.backup.s3Stores.mongodbUserRef.name. O Operador Kubernetes lida com a autenticação do usuárioSCRAMinternamente.Se você habilitar a autenticação do
SCRAMneste reconhecimento de data center, você deverá:Crie um recurso de usuário MongoDB para conectar o Ops Manager ao banco de dados.
Especifique o
namedo usuário na definição de recurso do MongoDB Ops Manager .
Importante
Depois de especificado, não edite o nome do armazenamento de snapshots do S3 . Essa alteração provavelmente falhará se os backups usarem o nome antigo. As consequências de uma mudança bem-sucedida são imprevisíveis.
Se um MongoDB database resource com este nome não existir, o recurso
backupinserirá um estadoPending. O Kubernetes Operator tenta novamente a cada 10 segundos até que um reconhecimento de data center MongoDB com esse nome seja criado.Observação
O Kubernetes Operator começa a reconciliar o recurso do Ops Manager automaticamente quando você faz alterações de segurança nos recursos de reconhecimento de data center a que você faz referência nesta configuração. O Kubernetes Operator atualiza os sinalizadores
mongoURIesslna configuração do Ops Manager com base nas suas alterações.
spec.backup.s3Stores.mongodbUserRef.nameTipo: string
Necessário se você criou um recurso do MongoDB database para armazenar |s3| metadados de snapshot e SCRAM estão habilitados neste banco de dados. Nome do recurso de usuário MongoDB usado para se conectar ao banco de dados de metadados do armazenamento de snapshots S3 . Implemente este recurso de usuário no mesmo namespace que o recurso MongoDB Ops Manager e com todas as seguintes funções:
Importante
Depois de especificado, não edite o nome do nome de usuário do armazenamento de snapshots de metadados do S3 .
spec.backup.s3Stores.s3SecretRef.nameTipo: string
Obrigatório se você habilitar o backup usando um armazenamento S3 e não definir
spec.backup.s3Stores.irsaEnabledcomotrue.Nome do segredo que contém os campos
accessKeyesecretKey. O serviço daemon de backup usa os valores desses campos como credenciais para acessar o bucket compatível com o Amazon Web Services S3 ou S3 . O armazenamento de snapshots S3 não poderá ser configurado se o segredo estiver sem chave.Se você configurar o
spec.backup.s3Stores.irsaEnabledparatrue, você não precisará configurar os3SecretRef, pois as credenciais do Amazon Web Services S3 são montadas como variáveis de ambiente do pod.
spec.backup.s3Stores.pathStyleAccessEnabledTipo: booleano
Indica o estilo da URL do endpoint do bucket.
ValorDescriçãoExemplotrueURL no estilo de caminho
s3.amazonaws.com/<bucket>falseURL no estilo de host virtual
<bucket>.s3.amazonaws.comO valor padrão é
true.
spec.backup.s3Stores.s3BucketEndpointTipo: string
Obrigatório se você habilitar o backup usando um armazenamento S3 . URL do bucket Amazon Web Services S3 da ou bucket compatível com S que hospeda o armazenamento de snapshots.3
Observação
Se o seu endpoint não incluir uma região em seu URL, especifique o campo
s3RegionOverride.
spec.backup.s3Stores.s3BucketNameTipo: string
Obrigatório se você habilitar o backup usando um armazenamento S3 . Nome do bucket S3 da Amazon Web Services ou 3bucket compatível com S que hospeda o armazenamento de snapshots.
spec.backup.s3Stores.s3RegionOverrideTipo: string
Região onde reside seu bucket compatível com S3 . Use esse campo somente se o
s3BucketEndpointda sua loja S3 suportar o escopo de região. O escopo da região é quando o endpoint não inclui uma região na URL.Não use este campo com buckets do Amazon Web Services S3 . Para obter mais informações, consulte Configuração do Blockstore S3 .
Configurações necessárias do banco de dados do aplicativo
Esta seção descreve as configurações que você deve usar , além das configurações necessárias do MongoDB Ops Manager para configurar o Ops Manager Application Database.
spec.applicationDatabase.versionTipo: string
Obrigatório. Versão do MongoDB instalada no Ops Manager Application Database. Você deve especificar uma versão MongoDB empresarial compatível com base na marcação no registro de contêiner. Por exemplo,
8.0.0-ubi8. A partir do Kubernetes Operator versão 1.20, as tags não terminam mais em-ent.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 posterior do MongoDB para o Banco de Dados de Aplicativos, a versão de versão de compatibilidade do recurso permanecerá na versão do MongoDB da qual você está atualizando para lhe dar a opção de fazer o downgrade, se necessário. Se você quiser que a versão de compatibilidade do recurso corresponda à nova versão do MongoDB , será necessário definir manualmente o parâmetro
featureCompatibilityVersionemspec.applicationDatabase.
Configurações opcionais do banco de dados do aplicativo
Esta seção descreve as configurações opcionais relacionadas ao Ops Manager Application Database. Para obter configurações opcionais de banco de dados de aplicativos específicas para sua implantação MongoDB Ops Manager de vários clusters, consulte Configurações de vários clusters.
spec.applicationDatabaseTipo: collection
Definição deMongoDB Ops Manager recurso do banco de dados de aplicativos .
As seguintes configurações da especificação do recurso do conjunto de réplicas são opcionais.
spec.applicationDatabase.agent.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.applicationDatabase.agent.<component>.logRotateTipo: objeto
Substitua o componente por um dos seguintes valores:
mongodmonitoringAgent
Objeto de configuração MongoDB para girar os registros MongoDB de um processo. Para usar as configurações de
agent.<component>.logRotate, você deve definirsystemLog.destinationcomofileporque não é possível usar as configuraçõesagent.<component>.logRotatese estiver gravando registros no sistema de syslog do host.
spec.applicationDatabase.agent.mongod.logRotate.numTotalTipo: inteiro
Padrão:
0Número total de arquivos de log que o MongoDB Ops Manager mantém. Se você não alterar o padrão, o MongoDB Ops Manager baseará a rotação em suas outras configurações
agent.<compenet>.logRotate.
spec.applicationDatabase.agent.mongod.logRotate.numUncompressedTipo: inteiro
Padrão:
5Número máximo de arquivos de log totais para deixar descompactados, incluindo o arquivo de log atual.
spec.applicationDatabase.agent.mongod.logRotate.percentOfDiskspaceTipo: número
Padrão:
0.02Porcentagem máxima do espaço total em disco que o MongoDB Ops Manager pode usar para armazenar os arquivos de log expressos como decimal. Se esse limite for excedido, o MongoDB Ops Manager excluirá os arquivos de log compactados até que ele atenda a esse limite. O MongoDB Ops Manager exclui primeiro os arquivos de log mais antigos.
spec.applicationDatabase.agent.<component>.logRotate.sizeThresholdMBTipo: número
Substitua o componente por um dos seguintes valores:
mongodmonitoringAgent
Obrigatório se estiver girando registros. 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 limite
sizeThresholdMBoulogRotate.timeThresholdHrs.
spec.applicationDatabase.agent.<component>.logRotate.timeThresholdHrsTipo: inteiro
Substitua o componente por um dos seguintes valores:
mongodmonitoringAgent
Necessário se registros de rotação. 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 imediatamente se ele atender ao valor fornecido no limite
timeThresholdHrsoulogRotate.sizeThresholdM.
spec.applicationDatabase.agent.mongod.auditlogRotateTipo: objeto
objeto de configuração MongoDB para girar os registros de auditar MongoDB de um processo.
spec.applicationDatabase.agent.mongod.auditlogRotate.numTotalTipo: inteiro
Padrão:
0Número total de arquivos de log de auditar que o MongoDB Ops Manager mantém. Se você não alterar o valor padrão, o MongoDB Ops Manager baseará a rotação em suas outras configurações
agent.mongod.auditlogRotate.
spec.applicationDatabase.agent.mongod.auditlogRotate.numUncompressedTipo: inteiro
Padrão:
5Número máximo de arquivos de log de auditar totais para deixar descompactados, incluindo o arquivo de log de auditar atual.
spec.applicationDatabase.agent.mongod.auditlogRotate.percentOfDiskspaceTipo: número
Padrão:
0.02Porcentagem máxima do espaço total em disco que o MongoDB Ops Manager pode usar para armazenar os arquivos de log de auditar expressos como decimal. Se você exceder esse limite, o MongoDB Ops Manager excluirá os arquivos de log de auditar compactados até que ele atinja esse limite. O MongoDB Ops Manager exclui primeiro os arquivos de log de auditar mais antigos.
spec.applicationDatabase.agent.mongod.auditlogRotate.sizeThresholdMBTipo: número
Necessário se os registros de auditar estiverem girando. Tamanho máximo em MB para um arquivo de log de auditar individual antes de o MongoDB Ops Manager girá-lo. O MongoDB Ops Manager gira o arquivo de log de auditar imediatamente se atingir o valor no limite
sizeThresholdMBouauditlogRotate.timeThresholdHrs.
spec.applicationDatabase.agent.mongod.auditlogRotate.timeThresholdHrsTipo: inteiro
Obrigatório ao girar registros de auditar. Duração máxima em horas para um arquivo de log de auditar individual antes da próxima rotação. O tempo é desde a última rotação. O MongoDB Ops Manager gira o arquivo de log de auditar imediatamente se atingir o valor no limite
timeThresholdHrsouauditlogRotate.sizeThresholdM.
spec.applicationDatabase.agent.startupOptionsTipo: objeto
Objeto de configuração do MongoDB para opções de inicialização. Consulte Configurações do MongoDB Agent para ver os campos disponíveis.
spec.applicationDatabase.agent.systemLogTipo: objeto
Objeto de configuração do MongoDB para configurar as opções do
systemLog.
spec.applicationDatabase.agent.systemLog.pathTipo: string
Padrão:
/var/log/mongodb-mms-automation/mongodb.logO caminho do arquivo de log para o qual o
mongodoumongosdeve enviar todas as informações de registro de diagnóstico, em vez da saída padrão ou do syslog do host . O MongoDB cria o arquivo de log no caminho especificado.O script de inicialização do pacote Linux não espera que
systemLog.pathmude dos padrões. Se você usar o pacote Linux e alterarsystemLog.path, terá que usar seu próprio script de inicialização e desabilitar os scripts integrados.
spec.applicationDatabase.agent.systemLog.logAppendTipo: booleano
Padrão:
falseQuando
true,mongosoumongodacrescenta novas entradas ao final do arquivo de log existente quando a instânciamongosoumongodfor reiniciada. Sem essa opção,mongodfará backup do registro existente e criará um novo arquivo.
spec.applicationDatabase.agent.systemLog.destinationTipo: string
O destino para o qual o MongoDB envia toda a saída de log. Especifique
fileousyslog. Se você especificarfile, você também deverá especificarsystemLog.path.Se você não especificar
systemLog.path, o MongoDB enviará toda a saída de log para saída padrão.Aviso
O daemon syslog gera carimbos de data/hora quando registra uma mensagem, não quando o MongoDB emite a mensagem. Esse comportamento pode levar a registros de data/hora enganosos para entradas de registro, especialmente quando o sistema está sob volume pesado. Recomendamos usar a opção
filepara sistemas de produção para garantir carimbos de data/hora precisos.
spec.applicationDatabase.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 .
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ê pretende criar serviços do NodePort e não precisa de um balanceador de carga, você deve configurar substituições na 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.applicationDatabase.memberConfigTipo : array de objetos
Especificação para cada conjunto de réplicas do aplicativo de banco de dados em sua implementação MongoDB Ops Manager .
Importante
Se você definir
spec.topologycomoMultiCluster, usespec.applicationDatabase.clusterSpecList.memberConfigem vez despec.applicationDatabase.memberConfig. Em uma implantação do MongoDB Ops Manager de vários clusters, o Operador Kubernetes ignora todos os parâmetros emspec.applicationDatabase.memberConfig.O número de elementos na lista
memberConfigdeve ser igual aspec.applicationDatabase.members.A ordem dos elementos na lista
memberConfigdeve refletir a ordem dos nós no conjunto de réplicas. Por exemplo, o primeiro elemento da array afeta o Pod no índice0, 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 para o Banco de Dados de Aplicativos:
spec: applicationDatabase: 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" tags: tag2: "value2" environment: "prod"
spec.applicationDatabase.memberConfig.priorityTipo: string
Número que indica a probabilidade relativa de um nó do conjunto de réplicas do aplicativo de banco de dados se tornar o primary.
Para aumentar a probabilidade relativa de que um nó do conjunto de réplicas se torne o primary, especifique um valor de
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.applicationDatabase.memberConfig.tagsTipo: mapa
Mapa de marcações de conjuntos de réplicas para direcionar operações de leitura e escrita para nós específicos do seu conjunto de réplicas do Banco de Dados de Aplicativo.
spec.applicationDatabase.memberConfig.votesTipo: número
Determina se um nó do conjunto de réplicas do aplicativo de banco de dados pode votar em uma eleição. Defina como
1para permitir que o membro vote. Defina como0para excluir o membro de uma eleição.
spec.applicationDatabase.passwordSecretKeyRef.nameTipo: string
Nome do segredo que contém a senha do trigger de banco de dados do Ops Manager
mongodb-ops-manager. O Ops Manager usa essa senha para autenticar no banco de dados de aplicativo.
spec.applicationDatabase.passwordSecretKeyRef.keyTipo: string
Nome do campo no segredo que contém a senha do trigger de reconhecimento de data center do Ops Manager
mongodb-ops-manager. O Ops Manager usa essa senha para autenticar no banco de dados de aplicativo.O valor padrão é
password.
spec.applicationDatabase.security.certsSecretPrefixTipo: string
Texto para prefixo para o segredo do Kubernetes que você criou que contém a chave TLS e o certificado do banco de dados do aplicativo.
Você deve nomear seu segredo
<prefix>-<metadata.name>-db-cert.Para saber como configurar sua instância do Ops Manager para ser executada por HTTPS, consulte Implantar um recurso do Ops Manager .
spec.applicationDatabase.security.tls.caTipo: string
Nome do Kubernetes ConfigMap contendo o arquivo CA para o Banco de Dados do Aplicativo.
Importante
spec.applicationDatabase.security.tls.caé necessário se você usar uma CA customizada para assinar os certificados TLS do banco de dados do aplicativo.O Operador Kubernetes exige que você nomeie o certificado do banco de dados do aplicativo
ca-pemno ConfigMap.A CA especificada nesta seção também é usada para configurar certificados TLS personalizados para armazenamento S3 quando
spec.backup.s3OpLogStores.customCertificateouspec.backup.s3Stores.customCertificateestiver definido comotrue.Esta CA assina os certificados que:
o conjunto de réplicas do aplicativo de banco de dados que os membros usam para se comunicar uns com os outros e
O MongoDB Ops Manager usa para se comunicar com o conjunto de réplicas do banco de dados do aplicativo.
Aviso
Você deve concatenar seu arquivo CA personalizado e toda a cadeia de certificados TLS do
downloads.mongodb.compara evitar que o Ops Manager se torne inoperável se o reconhecimento de data center da aplicação for reiniciado.
spec.applicationDatabase.security.tls.enabledImportante
spec.security.applicationDatabase.tls.enabledestá obsoleto e será removido em uma versão futura. Para habilitar o TLS, forneça um valor para a configuraçãospec.security.applicationDatabase.certsSecretPrefix.Criptografa comunicações usando certificados TLS entre o MongoDB Ops Manager e o aplicativo de banco de dados.
Configurações do Prometheus
As seguintes configurações se aplicam quando você usa Prometheus com seu aplicativo de banco de dados:
spec.applicationDatabase.prometheusTipo: array
Opcional. Lista que contém os parâmetros para expor métricas ao Prometheus.
spec.applicationDatabase.prometheus.metricsPathTipo: string
Padrão:
"/metrics"Opcional. String legível por humanos que indica o caminho para o ponto de extremidade de métricas. Se você não especificar essa configuração, o padrão será aplicado.
spec.applicationDatabase.prometheus.passwordSecretRefTipo: objeto
Objeto condicional que contém os detalhes do segredo para autenticação HTTP básica. Se você deseja usar o Prometheus com seu banco de dados de aplicativos, especifique esta configuração.
spec.applicationDatabase.prometheus.passwordSecretRef.keyTipo: string
Padrão:
"password"Opcional. 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.applicationDatabase.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 banco de dados de aplicativos, especifique esta configuração.
spec.applicationDatabase.prometheus.portTipo: inteiro
Padrão: 9216
Opcional. Número que identifica a porta à qual o ponto de extremidade de métricas se conectará. Se você não especificar essa configuração, o padrão será aplicado.
spec.applicationDatabase.prometheus.tlseSecretKeyRefTipo: objeto
Opcional. Objeto que contém os detalhes do segredo para a autenticação TLS .
spec.applicationDatabase.prometheus.tlseSecretKeyRef.keyTipo: string
Padrão:
"password"Opcional. Cadeia de caracteres 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.applicationDatabase.prometheus.tlseSecretKeyRef.nameTipo: string
Condicional. Rótulo legível por humanos que identifica o segredo que contém a senha para autenticação TLS. Se quiser usar o Prometheus com seu banco de dados de aplicativos e quiser usar a autenticação TLS, você deverá especificar essa configuração.
Configurações de vários clusters
Configurações necessárias MongoDB Ops Manager
Esta seção descreve as configurações que você deve usar para a implantação do MongoDB Ops Manager de vários clusters, além das configurações necessárias do MongoDB Ops Manager .
spec.clusterSpecList.membersTipo: inteiro
Condicional. O número de membros do MongoDB Ops Manager MongoDB Ops Manager no cluster do MongoDB Ops Manager em um sistema do MongoDB de vários clusters Kubernetes. Ao configurar
spec.topologyparaMultiCluster, você deve especificar o valor para este parâmetro. Omita este parâmetro para sistemas de cluster único. Se você definir esse parâmetro como zero, isso removerá esse cluster de membros do MongoDB Ops Manager da lista de clusters de membros no cluster multikubernetes de instâncias do MongoDB Ops Manager .
spec.topologyTipo: string
O tipo de sistema do Kubernetes para o recurso do MongoDB Ops Manager .
Os valores são
SingleClusterouMultiCluster. Se omitido, o valor padrão éSingleCluster.Se você especificar
MultiCluster:Adicione o recurso
MongoDBMultiClusterà lista de recursos monitorados. Isso indica ao Operador Kubernetes que ele deve trabalhar no modo de cluster multi-Kubernetes e executar as ações de configuração necessárias para lidar com recursos multi-Kubernetes.Especifique pelo menos um cluster de membros no qual você deseja implantar o MongoDB Ops Manager, usando
spec.clusterSpecListe seus parâmetrosspec.clusterSpecList.clusterNameespec.clusterSpecList.membersaninhados.Se você especificar
MultiCluster, o Operador Kubernetes ignorará todos os valores definidos paraspec.members. Veja o exemplo da especificação do recurso.
Configurações opcionais MongoDB Ops Manager
Os recursos MongoDB Ops Manager também podem usar as seguintes configurações específicas para sistemas do MongoDB Ops Manager em vários clusters:
spec.clusterSpecListTipo: collection
Condicional. Detalhes dos clusters de membros do Kubernetes selecionados em um cluster de váriosKubernetes em que você pretende distribuir instâncias MongoDB Ops Manager ou do Backup Daemon. Veja também o exemplo da especificação do recurso.
Ao definir
spec.topologycomoMultiCluster, você deve especificar o valor paraspec.clusterSpecList.members. Todos os outros parâmetros emspec.clusterSpecListsão opcionais.Quando você configura
spec.topologyparaSingleCluster, o Operador Kubernetes ignora todos os parâmetros emspec.clusterSpecList.
spec.clusterSpecList.clusterNameTipo: string
Opcional. Nome do cluster Kubernetes de membros em um sistema do MongoDB de cluster multi-Kubernetes em que o Operador de Controladores MongoDB para Kubernetes agenda o StatefulSet para Ops Manager ou o Backup Daemon.
spec.clusterSpecList.clusterDomainTipo: string
Opcional. Uma substituição de
spec.clusterDomainpara o cluster de membros específico do Ops Manager. Se você omitir este valor, o padrão será o valor configurado emspec.clusterDomain. Kubernetes atribui a cada Pod um FQDN. O Operador Kubernetes calcula o FQDN para cada Pod utilizando um valor declusterDomainfornecido. O Kubernetes não fornece uma API para consultar esses nomes de host.
spec.clusterSpecList.configurationTipo: collection
Opcional. Propriedades de configuração MongoDB Ops Manager que substituem as propriedades que você definiu em
spec.configurationpara o cluster específico. Consulte Definições de configuraçãoMongoDB Ops Manager para obter nomes e descrições de propriedades. Cada propriedade obtém um valor do tipostring. Por exemplo, a definição dessas propriedades permite alterar as variáveis de ambiente que você deve passar para o MongoDB Ops Manager e o Backup Daemon nesse cluster de membros específico.Se você omitir a especificação de valores, o padrão será os valores definidos em
spec.configuration.
spec.clusterSpecList.jvmParametersTipo: array de strings
Opcional. Parâmetros JVM passados para o MongoDB Ops Manager e instâncias do Backup Daemon para esse cluster de membros.
Se você especificar este parâmetro, seus valores substituirão os valores especificados em
spec.jvmParameters. Para obter valores de exemplo, consulte o exemplo da especificação do recurso.Se você omitir esse parâmetro, os valores de
spec.jvmParametersserão usados para as instâncias do MongoDB Ops Manager e do Backup Daemon nesse cluster de membros.
spec.clusterSpecList.externalConnectivityTipo: collection
Opcional. objeto de configuração que habilita a conectividade externa ao MongoDB Ops Manager para o cluster específico. Esta é uma substituição de
spec.externalConnectivitypara o cluster específico.Especifique valores para este parâmetro para alterar como o aplicação MongoDB Ops Manager é exposto externamente em clusters diferentes. Por exemplo, se você implantar o MongoDB Ops Manager em nós do Kubernetes em diferentes provedores de nuvem, poderá ser necessário especificar valores específicos do provedor de nuvem para esse parâmetro.
Se você definir este parâmetro:
O Kubernetes Operator não usa valores
spec.externalConnectivitypara esse cluster de membros MongoDB Ops Manager .O Operador Kubernetes cria um serviço Kubernetes, denominado
<om-name>-svc-ext, que permite que o tráfego originado de fora do cluster Kubernetes chegue ao aplicação Ops Manager neste cluster de membros.
Se você omitir este parâmetro, o Operador Kubernetes utilizará valores de
spec.externalConnectivitypara este cluster de membro.
spec.clusterSpecList.statefulSet.specTipo: collection
Opcional. Especificação do StatefulSet que o Operador de Controladores MongoDB para Kubernetes cria para um cluster de membros específico no sistema do Ops Manager de multikubernetes. Este parâmetro é uma substituição para
spec.statefulSet.spec. Se você omitir, o Operador Kubernetes utilizará os valores despec.statefulSet.spec. Por exemplo, você pode usar esse parâmetro para especificar valores de armazenamento diferentes para cada um dos clusters do Ops Manager na implantação do MongoDB de vários clusters Kubernetes.Para analisar quais campos você pode adicionar a
spec.clusterSpecList.statefulSet.spec, consulte aplicativos StatefulSetSpec v1 na documentação do Kubernetes.
spec.clusterSpecList[*].backupOpcional. Configurações de backup que substituem valores especificados em
spec.backuppara esse cluster de membros específico.Você pode definir estes valores somente se
spec.backup.enabledestiver definido comotrue.Se você omitir a configuração de quaisquer valores para este parâmetro, eles serão padronizados para valores especificados nas configurações em
spec.backup.Nem todas as configurações de backup são suportadas nesta substituição. Não é possível substituir as seguintes configurações de backup porque elas se aplicam globalmente a todos os clusters de membros, se especificado em
spec.backup:externalServiceEnabledheadDBopLogStoresblockStoress3StoresfileSystemStoresqueryableBackupSecretRefencryption
spec.clusterSpecList[*].backup.membersTipo: inteiro
Opcional. Substituir para
spec.backup.members. O número de instâncias do Backup Daemon a serem implementadas neste cluster. se você omitir esse valor ou fornecer um valor de0, o Kubernetes Operator não implantará instâncias do Backup Daemon em um cluster de membros específico.
spec.clusterSpecList[*].backup.assignmentLabelsTipo: array de strings
Opcional. Substituir para
spec.backup.assignmentLabels. Se especificado, o Kubernetes Operator usa os valores especificados nessa substituição para todas as instâncias do Backup Daemon em um cluster de membros específico. Se você omitir valores para esse parâmetro, os valores padrão serão os especificados emspec.backup.assignmentLabelspara todas as instâncias do Backup Daemon em um cluster de membros.
spec.clusterSpecList[*].backup.jvmParametersTipo: array de strings
Opcional. Substituir para
spec.backup.jvmParameters. Permite personalizar o valor de JVM para instâncias de Backup Daemon em um cluster de membros específico.
spec.clusterSpecList[*].backup.statefulSetTipo: string
Opcional. Substituir para
spec.backup.statefulSet.spec. Permite personalizar os valores de um Backup Daemon em um cluster de membros específico. Para analisar quais campos você pode adicionar aspec.clusterSpecList[*].backup.statefulSet, consulte Aplicativos StatefulSetSpec v1 na documentação do Kubernetes.
Configurações necessárias do banco de dados do aplicativo
Esta seção descreve as configurações específicas para a implantação MongoDB Ops Manager de vários clusters que você deve usar para o banco de dados de aplicativos.
spec.applicationDatabase.clusterSpecListTipo: collection
Detalhes de clusters de membros selecionados do Kubernetes em um sistema MongoDB de cluster multi-Kubernetes que servem como nós que hospedam o banco de dados de aplicativos.
spec.applicationDatabase.clusterSpecList.clusterNameTipo: string
Nome do cluster Kubernetes de membros em um sistema MongoDB de cluster multi-Kubernetes em que o Operador de Controladores MongoDB para Kubernetes agenda o StatefulSet para o Banco de Dados de Aplicativos.
Importante
Não é possível converter uma única instância MongoDB Ops Manager de cluster em uma instância de sistema do MongoDB de cluster multi-Kubernetes modificando as configurações do
topologyeclusterSpecListno CRD.
spec.applicationDatabase.clusterSpecList.membersTipo: número
Número de nós statefulSet no cluster de membros fornecido. O cluster de membros é um dos clusters de membros que hospeda o banco de dados de aplicativos em um sistema MongoDB de cluster multi-Kubernetes.
spec.applicationDatabase.topologyTipo: string
O tipo do sistema Kubernetes para o Banco de Dados de Aplicativo.
Os valores são
SingleClusterouMultiCluster. Se omitido, o valor padrão éSingleCluster.Se você especificar
MultiCluster, deverá especificar pelo menos um membrocluster no qual você deseja implementar o banco de dados de aplicativos usando os parâmetros
clusterSpecList,clusterName,members.Se você especificar
MultiCluster, o Operador Kubernetes ignorará valores que você configurou para o campospec.applicationDatabase.members.
Para saber mais, consulte o exemplo da especificação de recursos de vários clusters.
Configurações opcionais do banco de dados do aplicativo
Esta seção descreve as configurações específicas para a implantação MongoDB Ops Manager de vários clusters que você pode usar para o banco de dados de aplicativos.
spec.applicationDatabase.clusterSpecList.externalAccessTipo: 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>-<cluster-idx>-<pod-idx>.<externalDomain>Por exemplo:
multi-replica-set-0-1.cluster-0.example.comImportante
Use essa configuração somente ao implantar um sistema do banco de dados de aplicativos sem uma mescla de serviço. Consulte Ops Manager de vários clusters sem uma rede de serviço.
spec.applicationDatabase.clusterSpecList.memberConfigTipo: array de strings
Especificação para cada conjunto de réplicas do banco de dados de aplicativos em seu sistema do MongoDB Ops Manager de vários clusters.
Importante
Se você configurar
spec.topologyparaSingleCluster, utilizespec.applicationDatabase.memberConfigao invés despec.applicationDatabase.clusterSpecList.memberConfig.O número de elementos na lista
memberConfigdeve ser igual aspec.applicationDatabase.clusterSpecList.members.A ordem dos elementos na lista
memberConfigdeve refletir a ordem dos nós no conjunto de réplicas. Por exemplo, o primeiro elemento da array afeta o Pod no índice0, 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 para o Banco de Dados de Aplicativos:
spec: replicas: 3 version: 8.0.0 backup: enabled: true storage: resources: requests: storage: 10Gi storageClassName: standard applicationDatabase: clusterSpecList: - name: appdb members: 3 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" tags: tag2: "value2" environment: "prod"
spec.applicationDatabase.clusterSpecList.memberConfig.priorityTipo: string
Número que indica a probabilidade relativa de um nó do conjunto de réplicas do aplicativo de banco de dados se tornar o primary.
Para aumentar a probabilidade relativa de que um nó do conjunto de réplicas se torne o primary, especifique um valor de
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.applicationDatabase.clusterSpecList.memberConfig.tagsTipo: mapa
Mapa de marcações de conjuntos de réplicas para direcionar operações de leitura e escrita para nós específicos do seu conjunto de réplicas do Banco de Dados de Aplicativo.
spec.applicationDatabase.clusterSpecList.memberConfig.votesTipo: número
Determina se um nó do conjunto de réplicas do aplicativo de banco de dados pode votar em uma eleição. Defina como
1para permitir que o membro vote. Defina como0para excluir o membro de uma eleição.