O plugin-in kubectl mongodb sempre adiciona a anotação mongodb.com/migration-dry-run: true ao recurso que ele gera para migrar um sistema para o Kubernetes. Enquanto essa anotação estiver presente, o Kubernetes Operator não faz alterações na configuração de automação. Ele apenas valida a conectividade e as credenciais, para que você possa corrigir problemas e executar novamente quantas vezes for necessário antes que o Kubernetes Operator se aproprie da implantação.
Sobre esta tarefa
O Kubernetes Operator cria um trabalho por recurso
MongoDB, chamado<resourceName>-connectivity-check. O trabalho disca para cada membro externo e autentica em relação a ele. Ele se exclui usandottlSecondsAfterFinishede a próxima reconciliação o recria, portanto, a revalidação após uma correção é automática. Você não precisa ativá-lo manualmente.A execução seca verifica a acessabilidade do Kubernetes-to-virtual-machine (DNS, TLS, firewalls e endereços de membros) e as credenciais, incluindo a função
__systemno banco de dadoslocal, e a CA quando o TLS está habilitado.A execução seca não verifica a conectividade de entrada da máquina virtual para o Kubernetes. Verifique você mesmo essa direção, por meio do status de monitoramento da interface do usuário do Ops Manager para a implantação ou executando
rs.status()de um membro da máquina virtual e confirmando que ele pode alcançar os Pods do Kubernetes.A verificação de versão do plugin e do Kubernetes Operator é executada independentemente da presença da anotação de execução seca.
Antes de começar
Um recurso personalizado
MongoDBgerado com a anotaçãomongodb.com/migration-dry-run: trueainda presente. Para saber como gerar esse recurso, consulte Migrar um conjunto de réplicas para Kubernetes.Se a implementação usar TLS, os certificados de membro e o material da CA descritos em Configurar TLS para uma migração para o Kubernetes.
O Operador Kubernetes
ServiceAccounttem permissões dobatch/jobs(create,get,list,watchedelete). Sem essa concessão, o Operador do Kubernetes não pode criar o Trabalho de validador de conectividade de forma alguma.
Procedimento
Aplique o recurso e deixe executar a execução seca.
Aplique o recurso personalizado MongoDB com a anotação de execução seca ainda definida. O Kubernetes Operator cria o trabalho <resourceName>-connectivity-check e relata o progresso até o status.phase e a condição NetworkConnectivityVerified.
Enquanto o trabalho é executado, status.phase lê ConnectivityCheckRunning.
Leia o resultado.
Ler status.conditions[type=NetworkConnectivityVerified]:
Código de saída do trabalho do validador | Status da condição | Razão | Significado |
|---|---|---|---|
A tarefa ainda está em execução |
|
| The |
|
|
| Todos os membros externos são acessíveis e autenticados. |
|
|
| Credentials, the authentication mechanism, or a missing |
|
|
| DNS, TLS, tempos limite ou membros inacessíveis. Verifique os registros do pod de trabalho. |
|
|
| Falha não classificada. Verifique os registros do pod de trabalho. |
Failures that occur before the Job starts use the reasons OperatorImageUnknown, BuildStatefulSetOptions, AgentCertSecretFailed, and AgentCertSubject.
Kubernetes Operator removes the NetworkConnectivityVerified condition from status.conditions entirely once no external members remain.
Corrija problemas e execute novamente, se necessário.
Corrija problemas de conectividade ou credenciais no Kubernetes ou na interface do usuário do Ops Manager, conforme necessário. Você não precisa excluir ou reaplicar nada: a próxima reconciliação recria o trabalho do validador automaticamente.
Se a execução seca parecer travada, exclua o trabalho <resourceName>-connectivity-check. A próxima reconciliação a recria.
Uma concessão de RBAC batch/jobs ausente no operador Kubernetes ServiceAccount impede que o trabalho seja criado em primeiro lugar, portanto, nenhuma condição ou trabalho aparece nesse caso. As falhas que ocorrem antes do início do trabalho aparecem como motivos OperatorImageUnknown, BuildStatefulSetOptions, AgentCertSecretFailed ou AgentCertSubject em vez dos motivos do código de saída na tabela acima.
Remova a anotação de execução seca para continuar.
Quando a condição NetworkConnectivityVerified for True com a razão NetworkValidationPassed, remova a anotação:
kubectl annotate mdb <resourceName> \ mongodb.com/migration-dry-run-
Importante
A remoção da anotação de execução seca é o ponto em que o Kubernetes Operator assume a propriedade do projeto Ops Manager ou Cloud Manager . Trate isso como o ponto sem retorno para a conectividade e o estado de credencial que você acabou de validar.