Observação
Em qualquer lugar nesta página que diz Gerente de Operações, você pode substituir o Gerenciador de Nuvem.
O Operador de Controladores do MongoDB para Kubernetes cria o Kubernetes statefulSets a partir de arquivos de especificação que você escreve.
O Kubernetes Operator cria recursos específicos do MongoDB no Kubernetes como recursos personalizados.
Para gerenciar esses recursos personalizados, use o seguinte processo:
Crie ou atualize uma especificação de recurso
MongoDB.Direcione os controladoras do MongoDB para o Kubernetes Operator para aplicá-lo ao seu ambiente Kubernetes. Como resultado, o Kubernetes Operator executa estas ações:
Cria os StatefulSets, serviços e outros recursos definidos do Kubernetes.
Atualiza a configuração de implantação do Ops Manager para refletir as alterações.
Tipo de implementação | StatefulSets | Tamanho do StatefulSet |
|---|---|---|
Autônomo | 1 | 1 Pod |
Conjunto de réplicas | 1 | 1 Pod por membro |
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: independente, conjunto de réplica 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.
O objeto Ops Manager Kubernetes Secret contendo as credenciais deve existir no mesmo namespace do recurso que você deseja criar.
Importante
O operador gerencia alterações no segredo
O Operador Kubernetes rastreia quaisquer alterações no Segredo e reconcilia o estado do recurso
MongoDB.
spec.persistentTipo: booleano
Padrão: Verdadeiro
WARNING: Grant your containers permission to write to your Persistent Volume. The Kubernetes Operator sets
fsGroup = 2000,runAsUser = 2000, andrunAsNonRoot = trueinsecurityContext. Kubernetes Operator setsfsgroupequal torunAsUserto make the volume writable for a user that runs the main process in the container. To learn more, see Configure a Security Context for a Pod or Container and the related discussion in the Kubernetes documentation. If redeploying the resource doesn't fix issues with your Persistent Volume, contact MongoDB Support.If you do not use Persistent Volumes, the Disk Usage and Disk IOPS charts cannot be displayed in either the Processes tab on the Deployment page or in the Metrics page when reviewing the data for this deployment.
spec.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
If you update this value to a later version of MongoDB for your database resources, the feature compatibility version remains at the MongoDB version you're upgrading from to give you the option to downgrade if necessary. If you want the feature compatibility version to match the new MongoDB version, you must manually set
spec.featureCompatibilityVersionto the new version or toAlwaysMatchVersion. To learn more, seespec.featureCompatibilityVersion.
Condicional
Cada recurso deve usar uma das seguintes configurações:
spec.opsManager.configMapRef.nameTipo: string
Name of the ConfigMap with the Cloud Manager or Ops Manager connection configuration. The
spec.cloudManager.configMapRef.namesetting is an alias for this setting and can be used in its place.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 for
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
Maximum size in MB for an individual log file before Ops Manager rotates it. Ops Manager rotates the log file immediately if it meets the value given in either this
sizeThresholdMBor thespec.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.
Ops Manager rotates the log file once the file meets either this
timeThresholdHrsor thespec.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
O padrão é a versão principal anterior do MongoDB após a atualização do MongoDB .
Limita as alterações aos dados que ocorrem com uma atualização para uma nova versão principal. Por exemplo, se você atualizar do MongoDB 5.0 para o MongoDB 6.0, a versão de compatibilidade do recurso permanecerá em 5.0 para lhe dar a opção de fazer o downgrade, se necessário.
Se quiser que a versão de compatibilidade do recurso corresponda à nova versão do MongoDB , você deve definir manualmente
featureCompatibilityVersionpara a nova versão. Por exemplo,featureCompatibilityVersion: 6.0.Como alternativa, você pode habilitar a opção
AlwaysMatchVersionpara atualizar automaticamente a versão de compatibilidade do recurso para corresponder à versão do MongoDB durante as atualizações. Por exemplo,featureCompatibilityVersion: AlwaysMatchVersion.To learn more about feature compatibility, see
setFeatureCompatibilityVersionin the MongoDB Manual.
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
You must set
spec.clusterDomainif your Kubernetes cluster has a default domain other than the defaultcluster.local. If you neither use the default nor set thespec.clusterDomainoption, the Kubernetes Operator might not function as expected.
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
You must set
spec.clusterDomainif your Kubernetes cluster has a default domain other than the defaultcluster.local. If you neither use the default nor set thespec.clusterDomainoption, the Kubernetes Operator might not function as expected.
metadata.namespaceTipo: string
Kubernetes namespace where you create this
MongoDBresource and other objects.
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 Drivers for Kubernetes Operator não o excluirá nem recriará. Esta configuração permite que você crie seus próprios serviços personalizados e permite que o operador Kubernetes os reutilize.
spec.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.
To manage database users directly through the
mongodormongos, set this setting totrue.
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 standalone 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: "8.0.0" 8 service: my-service 9 10 opsManager: 11 configMapRef: 12 name: my-project 13 credentials: my-credentials 14 type: Standalone 15 16 persistent: true 17 agent: 18 startupOptions: 19 maxLogFiles: "30" 20 dialTimeoutSeconds: "40" 21 ...
spec.podSpecTipo: objeto
Objeto que contém as especificações da CustomResourceDefinition do MongoDB Pods.
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>A port for
mongod.publishNotReadyAddresstrueSpecifies that DNS records are created even if the Pod isn't ready. Do not set to
falsefor any database Pod.Observação
If you set
spec.externalAccess.externalDomain, the external service adds another port (Port Number + 1) for backups.
spec.externalAccess.externalServiceTipo: collection
Specification for overriding the default values in
spec.externalAccess.When you set the
spec.externalAccesssetting, the Kubernetes Operator automatically creates an external load balancer service with default values. You can override certain values or add new values depending on your needs. For example, if you intend to create NodePort services and don't need a load balancer, you must configure overrides in your Kubernetes specification: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}Equal to
metadata.name.{namespace}Equal to
metadata.namespace.{podIndex}Índice do Pod atribuído pelo StatefulSet e direcionado pelo serviço externo atual.
{podName}Igual a
{resourceName}-{podIndex}.{statefulSetName}The StatefulSet. Equal to
{resourceName}.{externalServiceName}Nome gerado do serviço externo, com base nos valores de espaço reservado que você especificou. Igual a
{resourceName}-{podIndex}-svc-external.{mongodProcessDomain}The domain name of the server that is hosting the mongod process. Equal to
spec.externalAccess.externalDomainif specified. Otherwise, equal to the domain used for themongodprocess FQDN.Por exemplo, para o nome de host do processo
mdb-rs-1.example.com,example.comé o nome do domínio.{mongodProcessFQDN}The
mongodprocess hostname set in the automation configuration.The process hostname depends on your deployment configuration. If you've configured your deployment to use
external domains, the process hostname uses the following format:{resourceName}-{podIndex}.{mongodProcessDomain}Por exemplo:
mdb-rs-1.example.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
Configuration for the ServiceSpec. To learn more, see
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou as collections
persistence.multiple, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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
60Giem.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.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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 standalone. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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 standalone. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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 standalone. Você pode criar esse tipo de armazenamento como um objeto StorageClass antes de usá-lo nesta especificação de objeto.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
spec.podSpec.podTemplateTipo: collection
Modelo para os Pods Kubernetes que o Operador MongoDB Controladores para Kubernetes cria para os recursos de banco de dados MongoDB .
Os valores do modelo têm precedência sobre os valores especificados no
spec.podSpec.Observação
O Kubernetes Operator não valida os campos que você fornece no
spec.podSpec.podTemplate.
spec.podSpec.podTemplate.metadataTipo: collection
Metadados para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para os recursos de banco de dados MongoDB .
Para revisar quais campos você pode adicionar a
spec.podSpec.podTemplate.metadata, consulte a documentação do Kubernetes.
spec.podSpec.podTemplate.specTipo: collection
Especificações dos Pods Kubernetes que o Operador Controladores MongoDB para Kubernetes cria para os recursos de banco de dados MongoDB .
Para analisar quais campos você pode adicionar
spec.podSpec.podTemplate.specao, consulte a API principal do Kubernetes PodSpec v.1Observação
Quando você adiciona containers ao
spec.podSpec.podTemplate.spec.containers, o Kubernetes Operator os adiciona ao pod do Kubernetes. Estes containers são anexados aos containers de recursos de banco de dados MongoDB no pod.Use essa configuração para especificar as alocações de CPU e RAM de cada Pod. Por exemplo, consulte as amostras no GitHub.
spec.podSpec.podTemplate.spec.affinity.nodeAffinityTipo: Estrutura
Regra do Kubernetes rule para colocar Pods para conjunto de réplicas em uma faixa específica de nós.
Para desempenho otimizado de leitura e gravação, use regras de afinidade de nós que restringem Pods para executar em nós específicos ou preferir executar em nós específicos .
spec.podSpec.podTemplate.spec.affinity.podAffinityTipo: Estrutura
Kubernetes rule to determine whether multiple
MongoDBresource Pods must be co-located with other Pods. To learn more about the use cases, see Affinity and Anti-Affinity in the Kubernetes documentation.
spec.podSpec.podTemplate.spec.affinity.podAntiAffinityTipo: Estrutura
Default: kubernetes.io/hostname
Sets a rule to spread Pods hosting
MongoDBresource to different locations. A location can be a single node, rack, or region. By default, Kubernetes Operator tries to spread pods across different nodes.
Configurações de conjunto de réplicas
Observação
Todas as configurações standalone 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
The collection container for
spec.backup.mode, which enables continuous backups for MongoDB resources in Kubernetes Operator.
spec.backup.assignmentLabelsTipo: array
Uma lista de rótulos separados por vírgulas para atribuir daemons de backup, armazenamentos de oplog, armazenamentos de blocos, armazenamentosde snapshots S3 e armazenamentos do sistema de arquivos a projetos ou grupos específicos. Use rótulos de atribuição para identificar que os armazenamentos de backup 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 IU do Ops Manager . Os rótulos de atribuição que você não define usando o Kubernetes Operator continuam a usar os valores definidos na interface do usuário do Ops Manager.
Observação
If you set this parameter, the API key linked with the value of
spec.credentialsmust have aGlobal Ownerrole.
spec.backup.modeTipo: string
Permite backups contínuos para um recurso do MongoDB. Os valores possíveis são
enabled,disabledeterminated.Observação
The
spec.backup.modesetting relies on Backup that is enabled in the Ops Manager and requires thatspec.backup.enabledvalue in the Ops Manager resource specification is set totrue.After you enable continuous backups for your MongoDB resource with
spec.backup.mode, you can check the backup status.
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 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 diaUTC para agendar snapshots usando um relógio de uma hora 24. Você pode definir um valor entre
0e23, inclusive.
spec.backup.snapshotSchedule.referenceMinuteOfHourTipo: número
UTC minute of the hour to schedule snapshots. You can set a value between
0and59, inclusive.
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
You must set
spec.clusterDomainif your Kubernetes cluster has a default domain other than the defaultcluster.local. If you neither use the default nor set thespec.clusterDomainoption, the Kubernetes Operator might not function as expected.
spec.connectivity.replicaSetHorizonsTipo: collection
Permite que você forneça configurações de DNS diferentes para os aplicativos clientes e os agentes do MongoDB. O Operador Kubernetes utiliza o DNS de horizonte dividido para membros do conjunto de réplica. Este recurso permite comunicação dentro do cluster Kubernetes e de fora do Kubernetes.
Você pode adicionar diversos mapeamentos externos por host.
Requisitos de horizonte dividido:
Certifique-se de que cada valor nesta array é único.
Make sure that the number of entries in this array matches the value given in
spec.members.Provide a value for the
spec.security.certsSecretPrefixsetting to enable TLS. This method to use split horizons requires the Server Name Indication extension of the TLS protocol.
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: "8.0.0" 9 type: ReplicaSet 10 opsManager: 11 configMapRef: 12 name: <configMap.metadata.name> 13 credentials: <mycredentials> 14 persistent: true 15 security: 16 tls: 17 enabled: true 18 connectivity: 19 replicaSetHorizons: 20 - "example-website": "web1.example.com:30907" 21 - "example-website": "web2.example.com:32350" 22 - "example-website": "web3.example.com:31185" 23 ...
spec.externalAccess.externalDomainTipo: string
Um domínio externo usado para expor externamente seu sistema de conjunto de réplicas.
By default, each replica set member uses the Kubernetes Pod's FQDN (
*.svc.cluster.local) as the default hostname. However, if you add an external domain to this setting, the replica set uses a hostname that is a subdomain of the specified domain instead. This hostname uses the following format:<replica-set-name>-<pod-idx>.<externalDomain>Por exemplo:
replica-set-1.example.comAfter you deploy the replica set with this setting, the Kubernetes Operator uses the hostname with the external domain to override the
processes[n].hostnamefield in the Ops Manager automation configuration. Then, the MongoDB Agent uses this hostname to connect tomongod.To specify other hostnames for connecting to the replica set, you can use the
spec.connectivity.replicaSetHorizonssetting. However, the following connections still use the hostname with the external domain:The MongoDB Agent to connect to
mongod.
WARNING: Specifying this field changes how Ops Manager registers
mongodprocesses. You can't change the value of this field or anyprocesses[n].hostnamefields in the Ops Manager automation configuration for a running replica set deployment.
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 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.memberConfig.tagsTipo: mapa
Mapa de tags de conjuntos de réplicas para direcionar operações de leitura e escrita para nós específicos do seu conjunto de réplicas MongoDB.
spec.memberConfig.votesTipo: número
Determines whether a MongoDB replica set member can vote in an election. Set to
1to allow the member to vote. Set to0to exclude the member from an election.
As seguintes configurações se aplicam somente a tipos de recurso de conjunto de réplicas:
spec.backup.autoTerminateOnDeletionTipo: booleano
Flag that controls whether the Kubernetes Operator stops and terminates the backup when you delete a MongoDB resource. If omitted, the default value is
false. Setting this flag totrueis useful when you want to delete the MongoDB custom resource while thespec.backup.modesetting is set toenabled.
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 uma versão de compatibilidade do recurso do 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 nós no servidor de configuração.
spec.configSrv.additionalMongodConfigTipo: collection
Opções de configuração adicionais com as quais você deseja iniciar cada nó do servidor de configuração.
O Kubernetes Operator aceita todas as opções de configuração que a versão do MongoDB que você distribui pelo MongoDB Agent aceita, exceto que o Kubernetes Operator substitui os valores que você fornece para qualquer uma das seguintes opções:
Para saber mais sobre as opções de configuração que o operador Kubernetes possui, consulte Configurações exclusivas do operador Kubernetes do MongoDB.
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: "8.0.0" 8 type: ShardedCluster 9 opsManager: 10 configMapRef: 11 name: my-project 12 credentials: my-credentials 13 persistent: true 14 shardCount: 2 15 mongodsPerShardCount: 3 16 mongosCount: 2 17 configServerCount: 1 18 19 mongos: 20 agent: 21 startupOptions: 22 maxLogFiles: "30" 23 24 configSrv: 25 agent: 26 startupOptions: 27 dialTimeoutSeconds: "40" 28 shard: 29 agent: 30 startupOptions: 31 serverSelectionTimeoutSeconds: "20" 32 ...
spec.configSrvPodSpecTipo: objeto
Objeto que contém as especificações da CustomResourceDefinition do MongoDB Pods do servidor de configuração .
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou as collections
persistence.multiple, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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 nó do servidor de configuração exigir 60 gigabytes de espaço de armazenamento, defina esse valor
60Gicomo.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.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
spec.configSrvPodSpec.podTemplateTipo: collection
Modelo para os Pods do Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para cada nó do servidor de configuração.
Os valores do modelo têm precedência sobre os valores especificados no
spec.configSrvPodSpec.Observação
O Kubernetes Operator não valida os campos que você fornece no
spec.configSrvPodSpec.podTemplate.
spec.configSrvPodSpec.podTemplate.metadataTipo: collection
Metadados para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes criam 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 Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para cada nó do servidor de configuração.
To review which fields you can add to
spec.configSrvPodSpec.podTemplate.spec, see the Kubernetes PodSpec v1 core API.Observação
Quando você adiciona containers ao
spec.configSrvPodSpec.podTemplate.spec.containers, o operador Kubernetes os adiciona ao pod do Kubernetes. Esses containers são anexados a cada container-membro do servidor de configuração no Pod.Use essa configuração para especificar as alocações de CPU e RAM de cada Pod. Por exemplo, consulte as amostras no GitHub.
spec.configSrvPodSpec.podTemplate.spec.affinity.podAffinityTipo: collection
Kubernetes rule to determine whether multiple
MongoDBresource Pods must be co-located with other Pods. To learn more about the use cases, see Affinity and Anti-Affinity in the Kubernetes documentation.
spec.configSrvPodSpec.podTemplate.spec.affinity.nodeAffinityTipo: collection
Regra do Kubernetes rule para colocar Pods para conjunto de réplicas em uma faixa específica de nós.
Para desempenho otimizado de leitura e gravação, use regras de afinidade de nós que restringem Pods para executar em nós específicos ou preferir executar em nós específicos .
spec.configSrvPodSpec.podTemplate.spec.affinity.podAntiAffinityTipo: string
Default: kubernetes.io/hostname
Sets a rule to spread Pods hosting
MongoDBresource to different locations. A location can be a single node, rack, or region. By default, Kubernetes Operator tries to spread pods across different nodes.
spec.configSrvPodSpec.podTemplate.spec.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.mongodsPerShardCountTipo: inteiro
Obrigatório. Número de nós por shard.
spec.mongosCountTipo: inteiro
Required. Number of
mongosinstances in the sharded cluster.
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
MongoDB Agent configuration settings for each
mongosinstance.
spec.mongos.agent.startupOptionsTipo: collection
MongoDB Agent settings with which you want to start each
mongosinstance.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: "8.0.0" 8 type: ShardedCluster 9 opsManager: 10 configMapRef: 11 name: my-project 12 credentials: my-credentials 13 persistent: true 14 shardCount: 2 15 mongodsPerShardCount: 3 16 mongosCount: 2 17 configServerCount: 1 18 19 mongos: 20 agent: 21 startupOptions: 22 maxLogFiles: "30" 23 24 configSrv: 25 agent: 26 startupOptions: 27 dialTimeoutSeconds: "40" 28 shard: 29 agent: 30 startupOptions: 31 serverSelectionTimeoutSeconds: "20" 32 ...
spec.mongosPodSpecTipo: objeto
Objeto que contém as especificações dos pods do MongoDB CustomResourceDefinition mongos.
spec.mongosPodSpec.podTemplateTipo: collection
Template for the Kubernetes Pods that the MongoDB Controllers for Kubernetes Operator creates for each
mongosinstance.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.metadataTipo: collection
Metadata for the Kubernetes Pods that the MongoDB Controllers for Kubernetes Operator creates for each
mongosinstance.Para revisar quais campos você pode adicionar a
spec.mongosPodSpec.podTemplate.metadata, consulte a documentação do Kubernetes.
spec.mongosPodSpec.podTemplate.specTipo: collection
Specifications of the Kubernetes Pods that the MongoDB Controllers for Kubernetes Operator creates for each
mongosinstance.To review which fields you can add to
spec.mongosPodSpec.podTemplate.spec, see the Kubernetes PodSpec v1 core API.Observação
When you add containers to
spec.mongosPodSpec.podTemplate.spec.containers, the Kubernetes Operator adds them to the Kubernetes pod. These containers are appended to eachmongosinstance containers in the pod.Use essa configuração para especificar as alocações de CPU e RAM de cada Pod. Por exemplo, consulte as amostras no GitHub.
spec.mongosPodSpec.podTemplate.spec.affinity.podAffinityTipo: collection
Optional. Kubernetes rule to determine if multiple
MongoDBresource Pods must be co-located with other Pods.
spec.mongosPodSpec.podTemplate.spec.affinity.nodeAffinityTipo: collection
Regra do Kubernetes rule para colocar Pods para conjunto de réplicas em uma faixa específica de nós.
Para desempenho otimizado de leitura e gravação, use regras de afinidade de nós que restringem Pods para executar em nós específicos ou preferir executar em nós específicos .
spec.mongosPodSpec.podTemplate.spec.affinity.podAntiAffinityTipo: string
Default: kubernetes.io/hostname
Sets a rule to spread Pods hosting
MongoDBresource to different locations. A location can be a single node, rack, or region. By default, Kubernetes Operator tries to spread pods across different nodes.
spec.mongosPodSpec.podTemplate.spec.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.shardCountTipo: inteiro
Obrigatório. Número de fragmentos no cluster fragmentado.
spec.shard.additionalMongodConfigTipo: collection
Opções de configuração adicionais com as quais você deseja iniciar cada nó fragmento de cluster fragmentado .
O Kubernetes Operator aceita todas as opções de configuração que a versão do MongoDB que você distribui pelo MongoDB Agent aceita, exceto que o Kubernetes Operator substitui os valores que você fornece para qualquer uma das seguintes opções:
Para saber mais sobre as opções de configuração que o operador Kubernetes possui, consulte Configurações exclusivas do operador Kubernetes do MongoDB.
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ó shard 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: "8.0.0" 8 type: ShardedCluster 9 opsManager: 10 configMapRef: 11 name: my-project 12 credentials: my-credentials 13 persistent: true 14 shardCount: 2 15 mongodsPerShardCount: 3 16 mongosCount: 2 17 configServerCount: 1 18 19 mongos: 20 agent: 21 startupOptions: 22 maxLogFiles: "30" 23 24 configSrv: 25 agent: 26 startupOptions: 27 dialTimeoutSeconds: "40" 28 shard: 29 agent: 30 startupOptions: 31 serverSelectionTimeoutSeconds: "20" 32 ...
spec.shardPodSpecTipo: objeto
Objeto que contém as especificações dos pods de shard do MongoDB CustomResourceDefinition.
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou a collection
persistence.single, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
spec.shardPodSpec.podTemplateTipo: collection
Modelo para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para cada nó de shard do cluster fragmentado.
Os valores do modelo têm precedência sobre os valores especificados no
spec.shardPodSpec.Observação
O Kubernetes Operator não valida os campos que você fornece no
spec.shardPodSpec.podTemplate.
spec.shardPodSpec.podTemplate.metadataTipo: collection
Metadados para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes criam para cada nó de shard do cluster fragmentado.
Para revisar quais campos você pode adicionar a
spec.shardPodSpec.podTemplate.metadata, consulte a documentação do Kubernetes.
spec.shardPodSpec.podTemplate.specTipo: collection
Especificações dos Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para cada nó de shard do cluster fragmentado.
To review which fields you can add to
spec.shardPodSpec.podTemplate.spec, see the Kubernetes PodSpec v1 core API.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.shardPodSpec.podTemplate.spec.affinity.podAffinityTipo: string
Kubernetes rule to determine whether multiple
MongoDBresource Pods must be co-located with other Pods. To learn more about the use cases, see Affinity and Anti-Affinity in the Kubernetes documentation.
spec.shardPodSpec.podTemplate.spec.affinity.nodeAffinityTipo: string
Regra do Kubernetes rule para colocar Pods para conjunto de réplicas em uma faixa específica de nós.
Para desempenho otimizado de leitura e gravação, use regras de afinidade de nós que restringem Pods para executar em nós específicos ou preferir executar em nós específicos .
spec.shardPodSpec.podTemplate.spec.affinity.podAntiAffinityTipo: string
Default: kubernetes.io/hostname
Sets a rule to spread Pods hosting
MongoDBresource to different locations. A location can be a single node, rack, or region. By default, Kubernetes Operator tries to spread pods across different nodes.
spec.shardPodSpec.podTemplate.spec.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.shardSpecificPodSpecTipo: array
Lista que contém StatefulSet substitui por fragmento.
spec.shardSpecificPodSpec.podTemplateTipo: collection
Modelo para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para o shard específico.
Os valores do modelo têm precedência sobre os valores especificados no
spec.shardSpecificPodSpec.Observação
O Kubernetes Operator não valida os campos que você fornece no
spec.shardSpecificPodSpec.podTemplate.
spec.shardSpecificPodSpec.podTemplate.metadataTipo: collection
Metadados para os Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para o shard específico.
Para revisar quais campos você pode adicionar a
spec.shardSpecificPodSpec.podTemplate.metadata, consulte a documentação do Kubernetes.
spec.shardSpecificPodSpec.podTemplate.specTipo: collection
Especificações dos Pods Kubernetes que os Controladores MongoDB para o Operador Kubernetes cria para o shard específico.
To review which fields you can add to
spec.shardSpecificPodSpec.podTemplate.spec, see the Kubernetes PodSpec v1 core API.Observação
Quando você adiciona containers ao
spec.shardSpecificPodSpec.podTemplate.spec.containers, o operador Kubernetes os adiciona ao pod do Kubernetes. Esses containers são anexados aos containers de shard específicos no pod.Use essa configuração para especificar as alocações de CPU e RAM de cada Pod. Por exemplo, consulte as amostras no GitHub.
spec.shardSpecificPodSpec.podTemplate.spec.affinity.podAffinityTipo: string
Kubernetes rule to determine whether multiple
MongoDBresource Pods must be co-located with other Pods. To learn more about the use cases, see Affinity and Anti-Affinity in the Kubernetes documentation.
spec.shardSpecificPodSpec.podTemplate.spec.affinity.podAntiAffinityTipo: string
Default: kubernetes.io/hostname
Sets a rule to spread Pods hosting
MongoDBresource to different locations. A location can be a single node, rack, or region. By default, Kubernetes Operator tries to spread pods across different nodes.
spec.shardSpecificPodSpec.podTemplate.spec.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.topologyTipo: string
Opcional
Padrão:
SingleClusterDefine a topologia do cluster fragmentado. Não pode ser alterado para um sistema existente. Se definido como
MultiCluster:Todos os componentes do cluster fragmentado devem ter
clusterSpecListdefinido:spec.mongos.clusterSpecListspec.configSrv.clusterSpecListspec.shard.clusterSpecList
Os seguintes campos são ignorados, pois seus valores equivalentes são passados para cada agrupamento nos objetos
spec.<section>.clusterSpecList:spec.mongodsPerShardCountestá definido emspec.shard.clusterSpecList.membersspec.mongosCountestá definido emspec.mongos.clusterSpecList.membersspec.configServerCountestá definido emspec.configSrv.clusterSpecList.membersspec.shardOverrides.memberConfigestá definido emspec.shardOverrides.clusterSpecList.memberConfigspec.shardOverrides.membersestá definido emspec.shardOverrides.clusterSpecList.membersspec.shardOverrides.statefulSetestá definido emspec.shardOverrides.clusterSpecList.statefulSet
Exemplo:
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: sc spec: shardCount: 3 # we don't specify mongodsPerShardCount, mongosCount and configServerCount as they don't make sense for multi-cluster topology: MultiCluster type: ShardedCluster version: 7.0.12 cloudManager: configMapRef: name: my-project credentials: my-credentials persistent: true shard: clusterSpecList: - clusterName: member-cluster-0 members: 2 # each shard will have 2 members in cluster 0, unless overriden - clusterName: member-cluster-1 members: 2 - clusterName: member-cluster-2 members: 1 shardOverrides: - shardNames: [sc-2] # this override will apply to the third shard (here, shards are indexed from 0 to 2 as we have 3 shards) clusterSpecList: - clusterName: member-cluster-0 # all other fields are optional, if not provided the fields from matching member cluster from shard.clusterSpecList will be taken by default members: 3 - clusterName: member-cluster-1 # we don't deploy this shard to member-cluster-1 # Note that it is also possible to make it explicit with members: 0 # we don't provide entry for clusterName: member-cluster-1, so it won't be deployed there - clusterName: member-cluster-2 members: 2 configSrv: clusterSpecList: - clusterName: member-cluster-0 members: 2 # config server will have 2 members in this cluster - clusterName: member-cluster-1 members: 1 - clusterName: member-cluster-2 members: 2 mongos: clusterSpecList: - clusterName: member-cluster-0 members: 2 # router will have 2 members in this cluster - clusterName: member-cluster-1 members: 1 Os campos a seguir estão relacionados exclusivamente a implantações nas quais
topology=MultiCluster:spec.configSrv.clusterSpecListObservação
Este campo está disponível exclusivamente para sistemas de cluster fragmentado de vários clusters.
Tipo : array de objetos
Necessário se
topology=MultiClusterUma array de objetos para uso em sistemas de cluster fragmentado de cluster fragmentado com os seguintes campos de nível superior:
clusterNameTipo: string
Nome do cluster onde o Operador do MongoDB Controladores para Kubernetes agenda o StatefulSet.
externalAccessTipo: collection
Especificação para expor sua implantação do MongoDB de cluster multi-Kubernetes para conexões externas. Para saber como se conectar ao MongoDB deployment de seu cluster multi-Kubernetes de fora do cluster Kubernetes, consulte Como conectar a recursos de vários clusters de fora do Kubernetes.
Essas configurações se aplicam a serviços em todos os clusters. Para substituir essas configurações globais em um cluster específico, use spec.clusterSpecList.externalAccess.externalService.
Se você adicionar
spec.externalAccess, o Kubernetes Operator criará um serviço externo para cada Pod em um conjunto de réplicas. Os serviços externos fornecem um ponto de entrada externo para cada Pod do banco de dados MongoDB em um cluster. Cada serviço externo tem seletores que relacionam o serviço externo a um Pod específico.Se você adicionar esta configuração sem um valor, o Kubernetes Operator criará um serviço externo com os seguintes valores padrão:
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>A port for
mongod.publishNotReadyAddresstrueSpecifies that DNS records are created even if the Pod isn't ready. Do not set to
falsefor any database Pod.Observação
Se você configurar spec.clusterSpecList.externalAccess.externalDomain, o serviço externo adicionará outra porta (
Port Number + 1) para backups.
membersTipo: número
Número de membros no conjunto de réplicas MongoDB.
memberConfigTipo: collection
Especificação para cada shard do MongoDB e seus membros em sua implantação do MongoDB de cluster multi-Kubernetes.
A ordem dos elementos no objeto para shard deve refletir a ordem dos membros no conjunto de réplicas. Por exemplo, o primeiro elemento afeta o Pod no índice
0, o segundo elemento afeta o índice1, e assim por diante.Exemplo
Considere o seguinte exemplo de especificação para um sistema MongoDB de cluster multi-Kubernetes com três conjuntos de réplicas:
apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 8.0.0 type: ReplicaSet duplicateServiceObjects: false credentials: my-credentials opsManager: configMapRef: name: my-project clusterSpecList: - clusterName: cluster1.example.com members: 2 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - votes: 1 priority: "1.5" tags: tag2: "value2" environment: "prod" - clusterName: cluster2.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - clusterName: cluster3.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod"
podSpec.persistenceTipo: collection
Disponível somente em
clusterSpecItemobjetos passados paraspec.configSrv.clusterSpecListespec.shard.clusterSpecList. Substitui a configuração de persistência existente para um determinado cluster.
statefulSetTipo: collection
Fornece a configuração para a substituição do StatefulSet para cada um dos StatefulSets do cluster em um sistema MongoDB de cluster multi-Kubernetes. Para definir a configuração global que se aplica a todos os clusters em sua implantação do MongoDB de multi-Kubernetes cluster, consulte spec.statefulSet.spec.
Esta configuração se aplica somente a tipos de recurso de conjunto de réplicas em sistemas do MongoDB de clusters multikubernetes.
spec.duplicateServiceObjectsObservação
Este campo está disponível exclusivamente para sistemas de cluster fragmentado de vários clusters.
Tipo: booleano
Opcional
Padrão:
trueIgnorado se a topologia não for
MultiCluster. Aplica-se a serviços para todos os componentes do cluster fragmentado :mongos,configSrveshards.- Se definido como
true: - O Operador Kubernetes cria todos os
Pod Servicesde todos os clusters de membros em cada cluster de membros. - Se definido como
false: - O operador Kubernetes cria apenas
- Se definido como
spec.mongos.clusterSpecListObservação
Este campo está disponível exclusivamente para sistemas de cluster fragmentado de vários clusters.
Tipo : array de objetos
Necessário se
topology=MultiClusterUma array de objetos para uso em sistemas de cluster fragmentado de cluster fragmentado com os seguintes campos de nível superior:
clusterNameTipo: string
Nome do cluster onde o Operador do MongoDB Controladores para Kubernetes agenda o StatefulSet.
externalAccessTipo: collection
Especificação para expor sua implantação do MongoDB de cluster multi-Kubernetes para conexões externas. Para saber como se conectar ao MongoDB deployment de seu cluster multi-Kubernetes de fora do cluster Kubernetes, consulte Como conectar a recursos de vários clusters de fora do Kubernetes.
Essas configurações se aplicam a serviços em todos os clusters. Para substituir essas configurações globais em um cluster específico, use spec.clusterSpecList.externalAccess.externalService.
Se você adicionar
spec.externalAccess, o Kubernetes Operator criará um serviço externo para cada Pod em um conjunto de réplicas. Os serviços externos fornecem um ponto de entrada externo para cada Pod do banco de dados MongoDB em um cluster. Cada serviço externo tem seletores que relacionam o serviço externo a um Pod específico.Se você adicionar esta configuração sem um valor, o Kubernetes Operator criará um serviço externo com os seguintes valores padrão:
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>A port for
mongod.publishNotReadyAddresstrueSpecifies that DNS records are created even if the Pod isn't ready. Do not set to
falsefor any database Pod.Observação
Se você configurar spec.clusterSpecList.externalAccess.externalDomain, o serviço externo adicionará outra porta (
Port Number + 1) para backups.
membersTipo: número
Número de membros no conjunto de réplicas MongoDB.
memberConfigTipo: collection
Especificação para cada shard do MongoDB e seus membros em sua implantação do MongoDB de cluster multi-Kubernetes.
A ordem dos elementos no objeto para shard deve refletir a ordem dos membros no conjunto de réplicas. Por exemplo, o primeiro elemento afeta o Pod no índice
0, o segundo elemento afeta o índice1, e assim por diante.Exemplo
Considere o seguinte exemplo de especificação para um sistema MongoDB de cluster multi-Kubernetes com três conjuntos de réplicas:
apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 8.0.0 type: ReplicaSet duplicateServiceObjects: false credentials: my-credentials opsManager: configMapRef: name: my-project clusterSpecList: - clusterName: cluster1.example.com members: 2 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - votes: 1 priority: "1.5" tags: tag2: "value2" environment: "prod" - clusterName: cluster2.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - clusterName: cluster3.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod"
statefulSetTipo: collection
Fornece a configuração para a substituição do StatefulSet para cada um dos StatefulSets do cluster em um sistema MongoDB de cluster multi-Kubernetes. Para definir a configuração global que se aplica a todos os clusters em sua implantação do MongoDB de multi-Kubernetes cluster, consulte spec.statefulSet.spec.
Esta configuração se aplica somente a tipos de recurso de conjunto de réplicas em sistemas do MongoDB de clusters multikubernetes.
spec.shard.clusterSpecListObservação
Este campo está disponível exclusivamente para sistemas de cluster fragmentado de vários clusters.
Tipo : array de objetos
Necessário se
topology=MultiClusterUma array de objetos para uso em sistemas de cluster fragmentado de cluster fragmentado com os seguintes campos de nível superior:
clusterNameTipo: string
Nome do cluster onde o Operador do MongoDB Controladores para Kubernetes agenda o StatefulSet.
externalAccessTipo: collection
Especificação para expor sua implantação do MongoDB de cluster multi-Kubernetes para conexões externas. Para saber como se conectar ao MongoDB deployment de seu cluster multi-Kubernetes de fora do cluster Kubernetes, consulte Como conectar a recursos de vários clusters de fora do Kubernetes.
Essas configurações se aplicam a serviços em todos os clusters. Para substituir essas configurações globais em um cluster específico, use spec.clusterSpecList.externalAccess.externalService.
Se você adicionar
spec.externalAccess, o Kubernetes Operator criará um serviço externo para cada Pod em um conjunto de réplicas. Os serviços externos fornecem um ponto de entrada externo para cada Pod do banco de dados MongoDB em um cluster. Cada serviço externo tem seletores que relacionam o serviço externo a um Pod específico.Se você adicionar esta configuração sem um valor, o Kubernetes Operator criará um serviço externo com os seguintes valores padrão:
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>A port for
mongod.publishNotReadyAddresstrueSpecifies that DNS records are created even if the Pod isn't ready. Do not set to
falsefor any database Pod.Observação
Se você configurar spec.clusterSpecList.externalAccess.externalDomain, o serviço externo adicionará outra porta (
Port Number + 1) para backups.
membersTipo: número
Número de membros no conjunto de réplicas MongoDB.
memberConfigTipo: collection
Especificação para cada shard do MongoDB e seus membros em sua implantação do MongoDB de cluster multi-Kubernetes.
A ordem dos elementos no objeto para shard deve refletir a ordem dos membros no conjunto de réplicas. Por exemplo, o primeiro elemento afeta o Pod no índice
0, o segundo elemento afeta o índice1, e assim por diante.Exemplo
Considere o seguinte exemplo de especificação para um sistema MongoDB de cluster multi-Kubernetes com três conjuntos de réplicas:
apiVersion: mongodb.com/v1 kind: MongoDBMultiCluster metadata: name: multi-replica-set spec: version: 8.0.0 type: ReplicaSet duplicateServiceObjects: false credentials: my-credentials opsManager: configMapRef: name: my-project clusterSpecList: - clusterName: cluster1.example.com members: 2 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - votes: 1 priority: "1.5" tags: tag2: "value2" environment: "prod" - clusterName: cluster2.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod" - clusterName: cluster3.example.com members: 1 memberConfig: - votes: 1 priority: "0.5" tags: tag1: "value1" environment: "prod"
podSpec.persistenceTipo: collection
Disponível somente em
clusterSpecItemobjetos passados paraspec.configSrv.clusterSpecListespec.shard.clusterSpecList. Substitui a configuração de persistência existente para um determinado cluster.
statefulSetTipo: collection
Fornece a configuração para a substituição do StatefulSet para cada um dos StatefulSets do cluster em um sistema MongoDB de cluster multi-Kubernetes. Para definir a configuração global que se aplica a todos os clusters em sua implantação do MongoDB de multi-Kubernetes cluster, consulte spec.statefulSet.spec.
Esta configuração se aplica somente a tipos de recurso de conjunto de réplicas em sistemas do MongoDB de clusters multikubernetes.
spec.shardOverridesTipo : array de objetos
Opcional
Lista que contém substituições por fragmento. Cada objeto contém os seguintes campos:
shardNamesObrigatório
O nome do shard ao qual esta substituição se aplica.
podSpec.PersistenceOpcional
Define como o Operador Kubernetes cria e vincula volumes persistentes a shards. Para
topology=MultiCluster, ele define as configurações de persistência para todos os clusters de membros. Você pode definir as configurações de persistência para um cluster de membros específico nospec.shardOverrides.clusterSpecList.persistence.additionalMongodConfigOpcional
Substituição específica de fragmento para
spec.shard.additionalMongodConfig.agentOpcional
Substituição específica de fragmento para
spec.shard.agent.statefulSetOpcional
Substituição específica de shard para
spec.shardPodSpec.podTemplateespec.shard.clusterSpecList.statefulSet.membersOpcional
Disponível apenas quando
topology=SingleCluster. Substituição específica do fragmento para substituição despec.mongodsPerShardCount.memberConfigOpcional
Disponível apenas quando
topology=SingleCluster. Substituição específica de fragmento paraspec.shard.memberConfig.
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
You must set the values in this collection if
spec.persistent: true.Você pode definir esta collection ou as collections
persistence.multiple, mas não ambas.
EscalarTipo de DadosDescriçãolabelSelectorstring
Tag 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 requer 60 gigabytes de espaço de armazenamento, defina esse valor
60Gicomo.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.
Make sure to set the StorageClass
reclaimPolicyto Retain. This ensures that data is retained when a Persistent Volume Claim is removed.
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.caTipo: string
Provide the name of the ConfigMap that stores the CA for the
MongoDBresource.Importante
If you use a custom CA to sign your TLS certificates for the
MongoDBresource, you must specify this parameter.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>.For example, if you call your deployment
my-deploymentand you set the prefix tomdb, you must name the TLS secret for the client TLS communicationsmdb-my-deployment-cert. Also, you must name the TLS secret for internal cluster authentication (if enabled)mdb-my-deployment-clusterfile.Para saber mais sobre nomear os segredos que contêm seus certificados TLS, consulte o tópico em Implementar um conjunto de réplicas que se aplica à sua implantação.
spec.security.tls.additionalCertificateDomainsTipo: booleano
List of every domain that should be added to TLS certificates to each pod in this deployment. When you set this parameter, every CSR that the Kubernetes Operator transforms into a TLS certificate includes a SAN in the form
<pod name>.<additional cert domain>.Replica set resources don't need this parameter. Use
spec.connectivity.replicaSetHorizonsinstead.Observação
If you add this parameter to a TLS-enabled resource, Kubernetes displays an error when the resource reaches the
Pendingstate. This error displays:Please manually remove the |csr| in order to proceed.To remedy this issue: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 de entrada que usam um protocolo ou protocolos específicos. Para especificar protocolos, insira uma lista de protocolos separados por vírgulas. Por exemplo,
TLS1_0,TLS1_1.Esta configuração reconhece os seguintes protocolos:
TLS1_0,TLS1_1,TLS1_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 ativar o TLS desabilitado 1.0, especifique
nonecomo o valor paraspec.additionalMongodConfig.net.tls.disabledProtocols.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:
falseSpecifies whether authentication is enabled on the Cloud Manager or Ops Manager project. If set to
true, you must set an authentication mechanism inspec.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,X509,LDAPeOIDC. RecomendamosSCRAM-SHA-256(SCRAM) em vez deSCRAM-SHA-1. Se você 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 Ops Manager, defina este valor como
["X509"]e especifique as seguintes configurações:provide a value for the
spec.security.certsSecretPrefixsetting.`
If you provide more than one value for
spec.security.authentication.modes, you must also specify a value forspec.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:spec.security.authentication.modes: ["X509"]
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:
falseSpecifies whether the MongoDB host requires clients to connect using a TLS certificate. Defaults to
trueif you enable TLS authentication.To enable TLS authentication, provide a value for the
spec.security.certsSecretPrefixsetting.
spec.security.authentication.ldapTipo: collection
Necessário para a autenticação LDAP.
Configures LDAP authentication for the Cloud Manager or Ops Manager project. To enable LDAP authentication, set
spec.security.authentication.modesto["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.
If the LDAP server accepts TLS, set the value to
tls. If the LDAP server doesn't accept TLS, leave this value blank or set the value tonone.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 TLS do servidor LDAP.
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 TLS do servidor LDAP.
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 MongoDB se liga 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.
The secret must contain only one
passwordfield which stores the password.
spec.security.authentication.ldap.authzQueryTemplateTipo: string
Necessário para a autorização LDAP.
Um modelo de URL de consulta com formatação LDAP RFC4515 e RFC executado pelo MongoDB para obter os grupos LDAP aos quais o usuário pertence. A query é relativa ao host ou hosts especificados no. Você pode utilizar os seguintes tokens no4516
spec.security.authentication.ldap.serversmodelo:{USER}- Substitutes the authenticated username, or the
transformedusername, into the LDAP query.
{PROVIDED_USER}- Substitui o nome de usuário fornecido, antes da autenticação ou transformação LDAP, na query LDAP. (Disponível a partir da versão 4.2 do MongoDB)
Dica
Modelos de query LDAP no Manual do MongoDB
spec.security.authentication.agents.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.modeisLDAPorX509.
spec.security.authentication.ldap.userToDNMappingTipo: string
Maps the username provided to
mongodormongosfor authentication to a LDAP Distinguished Name (DN).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.oidcProviderConfigsTipo: collection
Obrigatório
A versão do MongoDB deve ser 7.0.11+ ou 8.0.0+
Somente MongoDB Enterprise é suportado
Observação
Pelo menos um elemento na coleção é exigido quando
spec.security.authentication.modeestá definido comoOIDC.
spec.security.authentication.oidcProviderConfigs.audienceTipo: string
Obrigatório
Entidade para a qual seu provedor de identidade externo (IdP) pretende o token. Insira o valor de público da aplicação que você registrou com seu IdP externo. Quando mais de um IdP for definido, deve ser um valor exclusivo para cada configuração que compartilha um
issuerURI.
spec.security.authentication.oidcProviderConfigs.authorizationMethodTipo: string
Obrigatório
Os valores válidos são
WorkforceIdentityFederationWorkloadIdentityFederatione. Configure o logon único para acesso de usuários humanos a sistemas com o Workforce Identity Federation. Para acesso programático de aplicação a sistemas, use o Workload Identity Federation. Somente um IdP do Workforce Identity Federation pode ser configurado por recurso do MongoDB . Para saber mais, consulte Autenticação e autorização com OIDC/OAuth..20
spec.security.authentication.oidcProviderConfigs.authorizationTypeTipo: string
Obrigatório
Os valores válidos são
GroupMembershipeUserID. SelecioneGroupMembershippara conceder autorização com base na associação do grupo de usuários do IdP ou selecioneUserIDpara conceder uma autorização de usuário individual.
spec.security.authentication.oidcProviderConfigs.clientIdTipo: string
Obrigatório
Identificador único do seu aplicação registrado . Insira o valor
clientIddo aplicativo que você registrou em um provedor de identidade externo.
spec.security.authentication.oidcProviderConfigs.configurationNameTipo: string
Obrigatório
Etiqueta exclusiva que identifica esta configuração. Esse rótulo é visível para os usuários do Ops Manager e é usado ao criar usuários e roles para autorização. Ela diferencia maiúsculas de minúsculas e só pode conter os seguintes caracteres:
caracteres alfanuméricos (combinação de a a z e 0 a 9)
hifens (-)
sublinhados (_)
spec.security.authentication.oidcProviderConfigs.groupsClaimTipo: string
Opcional
O identificador da declaração que inclui a identidade principal do usuário. Aceite o valor padrão, a menos que seu IdP use outra declaração.
spec.security.authentication.oidcProviderConfigs.issuerURITipo: string
Obrigatório
Valor do emissor fornecido pelo seu aplicação IdP registrado. Usando este URI, o MongoDB encontra um documento de configuração do provedor OpenID, que está disponível no endpoint
/.wellknown/open-id-configuration. Para o MongoDB8.0+, a combinação deissuerURIe público deve ser exclusiva nas configurações do provedor OIDC. Para outras versões MongoDB , oissuerURIem si deve ser exclusivo.
spec.security.roleRefsTipo: array
Array que referencia
ClusterMongoDBRolerecursos personalizados que oferecem controle de acesso refinado sobre seu MongoDB deployment.
spec.security.roleRefs.kindTipo: string
O tipo do recurso personalizado referenciado. Por exemplo,
ClusterMongoDBRole.
spec.security.roleRefs.kindTipo: string
O tipo do recurso personalizado referenciado. Por exemplo,
ClusterMongoDBRole.
spec.security.authentication.oidcProviderConfigs.requestedScopesTipo: string
Opcional
Tokens que dão aos usuários permissão para solicitar dados do endpoints de autorização . Usado apenas para o método de autorização Federação de Identidade da Força de Trabalho.
spec.security.authentication.oidcProviderConfigs.userClaimTipo: string
Obrigatório
O identificador da declaração que inclui a identidade principal do usuário. Aceite o valor padrão, a menos que seu IdP use outra declaração.
spec.security.authentication.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
The authentication mechanism that the MongoDB Agents for your MongoDB deployment use. Valid values are
SCRAM,SCRAM-SHA-1,MONGODB-CR,X509,OIDC, andLDAP. The value you specify must also be present inspec.security.authentication.modes. We recommendSCRAM-SHA-256(SCRAM) overSCRAM-SHA-1. If you specifySCRAM-SHA-1, you must also specifyMONGODB-CR.This setting is required if you specified more than one value for
spec.security.authentication.modes.
spec.security.authentication.agents.automationUserNameTipo: string
Name of the user that the MongoDB Agents use to interact with your MongoDB deployment. The username is mapped to an LDAP Distinguished Name (DN) according to
spec.security.authentication.ldap.userToDNMapping. The resulting DN must already exist in your LDAP deployment.This setting is required if
spec.security.authentication.agents.modeisLDAP.
spec.security.authentication.agents.automationPasswordSecretRefTipo: collection
Details of the secret that contains the password for the
spec.security.authentication.agents.automationUserNameuser.This setting is required if
spec.security.authentication.agents.modeisLDAP.
spec.security.authentication.agents.automationPasswordSecretRef.nameTipo: string
Name of the secret that contains the password for the
spec.security.authentication.agents.automationUserNameuser. You must create this secret in the same namespace to which you deploy the Kubernetes Operator:kubectl create secret generic ldap-agent-user \ --from-literal="password=<password>" -n <metadata.namespace> This secret must contain one key, the value of which matches the password of the
spec.security.authentication.agents.automationUserNameuser in your LDAP deployment.This setting is required if
spec.security.authentication.agents.modeisLDAP.
spec.security.authentication.agents.automationPasswordSecretRef.keyTipo: string
Key in the
spec.security.authentication.agents.automationPasswordSecretRef.namesecret that contains the password for the user inspec.security.authentication.agents.automationUserName.This setting is required if
spec.security.authentication.agents.modeisLDAP.
spec.security.authentication.agents.clientCertificateSecretRef.nameTipo: string
Specifies the secret that contains the MongoDB Agent's TLS certificate. If omitted, defaults to
agent-certs.Você deve criar este segredo no mesmo namespace para o qual distribuirá o Operador Kubernetes, e o segredo deve ser do tipo
kubernetes.io/tls.
spec.security.rolesTipo: array
Array que define funções definidas pelo usuário que oferecem controle de acesso refinado sobre sua implantação MongoDB.
To enable user-defined roles, the
spec.security.authentication.enabledmust betrue.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: "8.0.0" 9 type: ReplicaSet 10 opsManager: 11 configMapRef: 12 name: <configMap.metadata.name> 13 credentials: <mycredentials> 14 persistent: true 15 security: 16 authentication: 17 enabled: true 18 modes: 19 - "SCRAM" 20 roles: 21 - role: "customRole" 22 db: admin 23 privileges: 24 - actions: 25 - insert 26 resource: 27 collection: cats 28 db: pets 29 - actions: 30 - insert 31 - find 32 resource: 33 collection: dogs 34 db: pets 35 ...
spec.security.roles.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 that defines the IP address from which and to which users assigned this
spec.security.roles.rolecan connect.
spec.security.roles.authenticationRestrictions.clientSourceTipo: array
Array of IP addresses or CIDR blocks from which users assigned this
spec.security.roles.rolecan connect.Os servidores MongoDB rejeitam solicitações de conexão de usuários com esse role se as solicitações vierem de um cliente que não esteja presente nessa array.
spec.security.roles.authenticationRestrictions.serverAddressTipo: array
Array of IP addresses or CIDR blocks to which users assigned this
spec.security.roles.rolecan connect.Os servidores MongoDB rejeitam solicitações de conexão de usuários com esse role se o cliente solicitar a conexão a um servidor que não esteja presente nessa array.
spec.security.roles.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
Resources for which the privilege
actionsapply.Essa collection deve incluir:
The
spec.security.roles.privileges.resource.clustersetting with a value oftrue.
spec.security.roles.privileges.resource.databaseTipo: string
Database for which the privilege
actionsapply.If you provide a value for this setting, you must also provide a value for
spec.security.roles.privileges.resource.collection.
spec.security.roles.privileges.resource.collectionTipo: string
Collection in the
databasefor which the privilegeactionsapply.If you provide a value for this setting, you must also provide a value for
spec.security.roles.privileges.resource.database.
spec.security.roles.privileges.resource.clusterTipo: booleano
Padrão: falso
Flag that indicates that the privilege
actionsapply to all databases and collections in the MongoDB deployment. If omitted, defaults tofalse.If set to true, do not provide values for
spec.security.roles.privileges.resource.databaseandspec.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: "8.0.0" service: my-service opsManager: # Alias of cloudManager configMapRef: name: my-project credentials: my-credentials persistent: true type: Standalone additionalMongodConfig: systemLog: logAppend: true verbosity: 4 operationProfiling: mode: slowOp podSpec: persistence: single: storage: "12Gi" storageClass: standard labelSelector: matchExpressions: - {key: environment, operator: In, values: [dev]} podTemplate: metadata: labels: label1: mycustomlabel spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: failure-domain.beta.kubernetes.io/zone nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: "mykey" weight: 50 ...
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: "8.0.0" 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 spec: affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: security operator: In values: - S1 topologyKey: failure-domain.beta.kubernetes.io/zone nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: kubernetes.io/e2e-az-name operator: In values: - e2e-az1 - e2e-az2 podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: topologyKey: "mykey" weight: 50 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: "8.0.0" 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.
The Kubernetes Operator supports overriding the Kubernetes Operator default StatefulSet and PVC settings by specifying values for spec.statefulSet.spec fields in the MongoDB resource specification. However, only certain fields are preserved during the merge process. The following tables list the supported override fields.
spec.statefulSet.specTipo: collection
Specification for the StatefulSet that the MongoDB Controllers for Kubernetes Operator creates for
MongoDBresources.
Campos de substituição do StatefulSet
The following fields are merged in and take precedence over default StatefulSet settings when you specify values in spec.statefulSet.spec. Field paths are relative to the StatefulSet definition, so spec.replicas corresponds to spec.statefulSet.spec.replicas in the MongoDB resource specification.
Campo |
|---|
|
|
|
|
|
|
|
|
|
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 Drivers for Kubernetes Operator não o excluirá ou recriará. Esta configuração permite que você crie seus próprios serviços personalizados e permite que o operador Kubernetes os reutilize.
PVC (VolumeClaimTemplates) Substituir campos
The Kubernetes Operator merges a volume claim template that you specify in spec.statefulSet.spec.volumeClaimTemplates only if its metadata.name matches the name of an existing volume claim template. The following table shows which PVC fields the Kubernetes Operator preserves and which it drops when you specify values in spec.statefulSet.spec.volumeClaimTemplates. Field paths are relative to an individual volume claim template, so spec.volumeMode corresponds to spec.statefulSet.spec.volumeClaimTemplates.spec.volumeMode in the MongoDB resource specification.
Suportado (preservado) | Não compatível (descartado) |
|---|---|
|
|
| [1] | O operador Kubernetes anexa os modos de acesso que você especifica aos modos de acesso padrão em vez de substituí-los. |