Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Menu Docs

Configurações de recursos de migração do MongoDB

Importante

As configurações nesta página existem para suportar a migração de uma implementação autogerenciada para Kubernetes no Kubernetes Operator. Não os defina em um recurso MongoDB que você implementa diretamente no Kubernetes sem uma migração de acompanhamento.

Esta página documenta os campos de recursos MongoDB, as condições de status e as anotações que se aplicam somente durante uma migração de uma implantação de máquina virtual autogerenciada para o Kubernetes. Para obter o conjunto completo de configurações de recursos MongoDB, consulte Especificação de recursos de banco de dados MongoDB .

Esses campos identificam a máquina virtual de origem ou os processos simples que uma migração está estendendo para o Kubernetes. Eles se aplicam ao recurso MongoDB, apiVersion: mongodb.com/v1.

Importante

Esses campos existem apenas para migração. Não os defina em um recurso MongoDB para uma implantação nova do Kubernetes.

spec.externalMembers

Tipo: array de objetos ExternalMember

A máquina virtual ou os processos de origem completamente vazios que fazem parte da migração. Este campo existe apenas para migração.

Você pode remover entradas desta lista, mas nunca deve adicionar entradas após o início da migração. Uma lista spec.externalMembers vazia significa que a migração foi concluída.

spec.externalMembers[].processName

Tipo: string

Obrigatório

Este campo existe apenas para migração. O nome do processo exatamente como aparece na array processes da configuração de automação.

spec.externalMembers[].hostname

Tipo: string

Obrigatório

Este campo existe apenas para migração. O valor host:port do processo, exatamente como aparece na configuração de automação.

spec.externalMembers[].type

Tipo: enumeração: mongod ou mongos

Necessário para clusters fragmentados

Este campo existe apenas para migração. Um conjunto de réplicas tem apenas mongod membros externos.

spec.externalMembers[].replicaSetName

Tipo: string

Opcional

Este campo existe apenas para migração. Necessário para um membro externo mongod de cluster fragmentado. Identifica se o processo pertence ao conjunto de réplicas do servidor de configuração ou a um conjunto de réplicas de shard específico.

Esses campos existem apenas para migração e substituem o nome da configuração de recurso ou automação que o Kubernetes Operator usaria ou geraria.

spec.replicaSetNameOverride

Tipo: string

Este campo existe apenas para migração. O nome do conjunto de réplicas de configuração de automação, quando é diferente do nome do recurso Kubernetes ou quando o nome do conjunto de réplicas de configuração de automação não é um nome válido do Kubernetes. O plugin-in kubectl mongodb migrate-to-mck define esse campo para você por meio do sinalizador --resource-name-override.

spec.configServerNameOverride

Tipo: string

Este campo existe apenas para migração. O nome do conjunto de réplicas do servidor de configuração como aparece na configuração de automação.

spec.shardNameOverrides

Tipo: array de objetos ShardNameOverride

Este campo existe apenas para migração. nome do conjunto de réplicas de configuração de automação por shard e shard _id.

Observação

Não confunda spec.shardNameOverrides com spec.shardOverrides. spec.shardOverrides configura as configurações de recursos por fragmento e não está relacionado à nomenclatura de migração.

Os nomes StatefulSet do Kubernetes nunca são afetados por essas substituições.

O Kubernetes Operator codificou anteriormente estas definições de configuração de automação. A migração exige que eles sejam configuráveis para que um sistema do Kubernetes possa corresponder a caminhos já em uso nas máquinas virtuais de origem.

spec.downloadBase

Tipo: string

Padrão: /var/lib/mongodb-mms-automation

Diretório onde o MongoDB Agent baixa o binário do agente . O Kubernetes Operator deriva o caminho do arquivo-chave dessa configuração como <downloadBase>/keyfile.

spec.security.tls.caFilePath

Tipo: string

Padrão: /mongodb-automation/tls/ca/ca-pem

Caminho absoluto onde o Kubernetes Operator projeta o certificado da CA dentro do pod. Este caminho deve conter pelo menos dois segmentos de caminho. Não suportado para o Banco de Dados de Aplicativos.

Observação

Se o modelo de pod montar um volume nesse caminho ou acima dele, a montagem poderá sombrear o arquivo CA projetado. Revise suas podTemplate montagens de volume antes de definir um valor personalizado.

spec.security.authentication.agents.autoPEMKeyFilePath

Tipo: string

Caminho absoluto do arquivo PEM combinado do MongoDB Agent dentro de pods de banco de dados . A definição desse campo define o valor tls.autoPEMKeyFilePath do Ops Manager ou do Cloud Manager e monta o segredo referenciado por spec.security.authentication.agents.clientCertificateSecretRef nesse caminho.

Exige spec.security.authentication.agents.clientCertificateSecretRef.

O padrão é o caminho de montagem do certificado de agente derivado de hash que o Kubernetes Operator usa para sistemas não migrados.

status.conditions

Tipo: array de Condições do Kubernetes

Condições padrão do Kubernetes, ativadas por type. Este campo é novo no recurso MongoDB e suporta migração.

status.conditions[type=Migrating]

Tipo: condição do Kubernetes

O indicador de nível superior se uma migração está ativa. status é True enquanto spec.externalMembers não está vazio e muda para False com razão MigrationComplete depois de remover o último membro externo.

Razão
Status
Significado

Validating

True

A anotação de execução seca está definida.

Extending

True

A contagem de membros do Kubernetes desejado excede a última contagem reconciliada.

Pruning

True

A contagem de externalMembers ficou abaixo de status.migrationObservedExternalMembersCount.

InProgress

True

Existem membros externos, mas nada está mudando. Esta também é a razão da primeira reconciliação.

MigrationComplete

False

Todos os membros externos foram removidos.

A precedência é Validating > Extending > Pruning > InProgress. Uma podar que também cresce os relatórios do lado do Kubernetes Extending, que é outro motivo para fazer uma alteração de cada vez.

Poda e extensão não são permitidos ao mesmo tempo.

Para fazer o script contra a conclusão da migração, use kubectl wait --for=condition=Migrating=False em vez de pesquisar status.phase.

status.conditions[type=NetworkConnectivityVerified]

Tipo: condição do Kubernetes

O resultado da verificação de conectividade de execução seca. O Kubernetes Operator remove esta condição de status.conditions totalmente quando nenhum membro externo permanecer.

Código de saída do trabalho do validador
Status da condição
Razão
Significado

A tarefa ainda está em execução

Unknown

Running

O status.phase é ConnectivityCheckRunning.

0

True

NetworkValidationPassed

Todos os membros externos são acessíveis e autenticados.

2

False

AuthenticationFailed

Credenciais, o mecanismo de autenticação ou uma função __system@local ausente.

3

False

NetworkFailed

DNS, TLS, tempos limite ou membros inacessíveis. Verifique os registros do pod de trabalho.

1 ou outro

False

UnknownError

Falha não classificada. Verifique os registros do pod de trabalho.

As falhas que ocorrem antes do início do Trabalho usam os motivos OperatorImageUnknown, BuildStatefulSetOptions, AgentCertSecretFailed e AgentCertSubject.

O Kubernetes Operator remove a condição NetworkConnectivityVerified de status.conditions totalmente quando nenhum membro externo permanecer.

status.migrationObservedExternalMembersCount

Tipo: inteiro

O número de entradas spec.externalMembers que o Operador Kubernetes observado na última reconciliação. O Kubernetes Operator compara esse valor com a contagem atual de spec.externalMembers na próxima reconciliação para detectar que você removeu um membro externo. Este campo não é definido quando nenhum membro externo permanece.

Observação

Esse campo também aparece no esquema de recurso personalizado MongoDBOpsManager como um efeito colateral da incorporação da estrutura Go. No recurso MongoDBOpsManager, o campo é sempre nulo. Ignora isso lá.

metadata.annotations.mongodb.com/migration-dry-run

Tipo: string (valor booleano)

O plugin kubectl mongodb migrate-to-mck define esta anotação como true. Enquanto essa anotação estiver presente, o Kubernetes Operator não faz alterações na configuração de automação e executa apenas validação de conectividade. Remover a anotação inicia a migração real.

metadata.annotations.mongodb.com/migrate-tool-version

Tipo: string

Registra a versão do plugin kubectl mongodb migrate-to-mck que gerou o recurso. O Kubernetes Operator valida essa anotação em relação à sua própria versão em cada reconciliação, inclusive durante a execução seca.

Os seguintes campos de recurso MongoDB existentes não são apenas de migração, mas exigem valores específicos ou revisão durante uma migração:

  • spec.members, spec.mongodsPerShardCount, spec.configServerCount e spec.mongosCount começam em 0 no recurso que o plugin kubectl mongodb migrate-to-mck gera.

  • spec.memberConfig[].votes (inteiro, padrão 1) e spec.memberConfig[].priority (string contendo um float, padrão "1"). Você deve fornecer pelo menos tantas entradas spec.memberConfig quanto spec.members. O Kubernetes Operator ignora o spec.memberConfig de nível superior para clusters fragmentados. O plugin-in kubectl mongodb migrate-to-mck não gera spec.memberConfig, e o Kubernetes Operator não padroniza os novos membros como não votantes, portanto, os padrões CRD de 1 e "1" estão exatamente errados enquanto um novo membro está sincronizando.

    Aviso

    Definir spec.memberConfig antes de aumentar a contagem de membros

    Por padrão, novos membros do Kubernetes ingressam como membros votantes. Os padrões do CRD são votes: 1 e priority: "1", que permitem que um membro ainda em sincronização participam de uma eleição antes de concluir sua sincronização inicial.

    O MongoDB recomenda que você escreva uma entrada spec.memberConfig por novo membro do Kubernetes com votes: 0 e priority: "0" antes de aumentar a contagem de membros, para que um membro ainda em sincronização não possa vencer uma eleição. votes é um número inteiro. priority é uma string.

  • Campos que devem corresponder exatamente ao sistema de origem: spec.version, spec.featureCompatibilityVersion, spec.additionalMongodConfig.net.port, spec.security.authentication.modes e spec.security.authentication.internalCluster.