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.

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

Importante

As configurações nesta página existem para dar suporte à migração de uma implantação autogerenciada para o Kubernetes sob o Kubernetes operador. Não os defina em um recurso MongoDB que você implanta diretamente no Kubernetes sem uma migração associada.

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

Esses campos identificam a máquina virtual de origem ou os processos bare-metal 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 Kubernetes greenfield.

spec.externalMembers

Tipo: array de objetos ExternalMember

Os processos de origem da máquina virtual ou bare-metal que fazem parte da migração. Este campo é apenas para migração.

Você pode remover entradas desta lista, mas nunca deve adicionar entradas depois que a migração começou. Uma lista spec.externalMembers vazia significa que a migração está concluída.

spec.externalMembers[].processName

Tipo: string

Obrigatório

Este campo existe apenas para migração. O nome do processo exatamente como aparece no 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 para o processo, exatamente como aparece na configuração de automação.

spec.externalMembers[].type

Tipo: enumeração: mongod ou mongos

Necessário para clusters

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

spec.externalMembers[].replicaSetName

Tipo: string

Opcional

Este campo existe apenas para migração. Necessário para um nó externo de um cluster mongod sharded. Identifica se o processo pertence ao conjunto de réplicas do servidor de configuração ou ao conjunto de réplicas de um 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 operador usaria ou geraria de outra forma.

spec.replicaSetNameOverride

Tipo: string

Este campo existe apenas para migração. O nome do conjunto de réplicas da configuração de automação, quando difere do nome do recurso do Kubernetes ou quando o nome do conjunto de réplicas da configuração de automação não é um nome válido do Kubernetes. O plugin kubectl mongodb migrate-to-mck define este campo para você por meio de seu 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. Configuração de automação por shard: nome do conjunto de réplicas e shard _id.

Observação

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

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

O operador Kubernetes codificou anteriormente essas configurações de automação. A migração exige que eles sejam configuráveis para que uma implantação 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 operador Kubernetes deriva o caminho do arquivo de chave a partir desta configuração como <downloadBase>/keyfile.

spec.security.tls.caFilePath

Tipo: string

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

Caminho absoluto onde o operador Kubernetes projeta o certificado CA dentro do pod. Este caminho deve conter pelo menos dois segmentos de caminho. Não compatível com o banco de dados de aplicativo.

Observação

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

spec.security.authentication.agents.autoPEMKeyFilePath

Tipo: string

Caminho absoluto do arquivo PEM combinado do MongoDB Agent dentro dos pods do banco de dados. Definir este campo define o valor tls.autoPEMKeyFilePath do MongoDB Ops Manager ou 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 do agente com hash que o Kubernetes operador usa para implantações não migradas.

status.conditions

Tipo: array de Condições do Kubernetes

Condições padrão do Kubernetes, com chave 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 que mostra se uma migração está ativa. status é True enquanto spec.externalMembers não está vazio, e muda para False com o motivo MigrationComplete assim que você remover o último nó externo.

Razão
Status
Significado

Validating

True

A anotação para executar o teste está definida.

Extending

True

A contagem de nós do Kubernetes desejada excede a última contagem reconciliada.

Pruning

True

A contagem de externalMembers caiu abaixo de status.migrationObservedExternalMembersCount.

InProgress

True

Nós externos existem, mas nada está mudando. Esta é também a razão na primeira reconciliação.

MigrationComplete

False

Todos os nós externos foram removidos.

A precedência é Validating > Extending > Pruning > InProgress. Uma operação de limpeza que também afeta o lado do Kubernetes relata Extending, o que é outro motivo para fazer uma alteração por vez.

Não é permitido realizar poda e extensão ao mesmo tempo.

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

status.conditions[type=NetworkConnectivityVerified]

Tipo: Condição do Kubernetes

O resultado da verificação de conectividade de executar. O operador Kubernetes remove essa condição de status.conditions completamente assim que não restarem mais nós externos.

Código de saída da tarefa do validador
Status da Condição
Razão
Significado

Tarefa ainda em execução

Unknown

Running

O status.phase é ConnectivityCheckRunning.

0

True

NetworkValidationPassed

Todos os nós 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, timeouts ou nós inacessíveis. Verifique os log do Pod da tarefa.

1 ou outro

False

UnknownError

Falha não classificada. Verifique o log do Pod de tarefa.

Falhas que ocorrem antes do início da tarefa usam os motivos OperatorImageUnknown, BuildStatefulSetOptions, AgentCertSecretFailed e AgentCertSubject.

O Kubernetes operador remove a condição NetworkConnectivityVerified de status.conditions inteiramente assim que não restarem mais nós externos.

status.migrationObservedExternalMembersCount

Tipo: inteiro

O número de entradas spec.externalMembers que o Kubernetes operador observou na última reconciliação. O Kubernetes operador compara esse valor com a contagem atual de spec.externalMembers na próxima reconciliação para detectar que você removeu um nó externo. Este campo não é definido quando não restam nós externos.

Observação

Este campo também aparece no esquema de recurso personalizado MongoDBOpsManager, como um efeito colateral do embedding de struct Go. No recurso MongoDBOpsManager, o campo é sempre nulo. Ignorar 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 esta anotação estiver presente, o Kubernetes operador não faz alterações na configuração de automação e realiza apenas a 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 operador valida essa anotação em relação à sua própria versão em cada reconciliação, inclusive durante o dry executar.

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