Revise as limitações nesta página antes de planejar uma migração de uma implantação autogerenciada para o Kubernetes. Algumas limitações bloqueiam a migração completamente, e outras exigem que você planeje em torno de funcionalidades ausentes.
Uma implantação por projeto
O projeto do MongoDB Ops Manager ou Cloud Manager deve conter exatamente uma implantação. O plugin kubectl mongodb apresenta erro se o projeto contiver mais de uma implantação.
Se o seu projeto contiver várias implantações, faça a divisão delas em projetos separados antes de migrar. Para aprender como, consulte Migrar uma implantação do MongoDB para um novo projeto na documentação do MongoDB Ops Manager.
Servidores de configuração embutidos não têm suporte
Um cluster sharded cujo servidor de configuração também é suportado por um de seus shards não pode ser migrado. O operador do Kubernetes detecta um servidor de configuração incorporado e rejeita a migração na importação.
A conectividade de entrada não é verificada automaticamente
A execução de teste valida a conectividade do Kubernetes para as máquinas virtuais apenas. Não verifica automaticamente a conectividade de entrada da máquina virtual para o Kubernetes. Verifique a direção da conectividade por conta própria antes de depender dela.
Sem rollback automático
Não existe uma maneira automatizada de reverter uma migração depois que ela começa. Planeje sua migração e faça um backup antes de começar, pois você não pode reverter pelo plugin ou pelo operador.
Para reverter manualmente uma migração em andamento:
Reconcilie a configuração de automação de volta ao seu estado antes da migração.
Edite a configuração de automação diretamente no Ops Manager ou no Cloud Manager.
Aviso
Se você excluir o recurso MongoDB enquanto o Kubernetes operador ainda estiver em execução, o Kubernetes operador não excluirá o projeto no Ops Manager ou no Cloud Manager, para proteger os nós externos. No entanto, o Kubernetes operador exclui automaticamente os StatefulSets e Pods desse recurso. Dependendo de quanto a migração avançou, excluir esses Pods pode fazer com que o conjunto de réplicas perca sua maioria de votos.
Sem inicialização ou pré-cópia
A migração move dados apenas por replicação do MongoDB. O operador do Kubernetes não faz seed nem copia previamente dados para os novos nós do Kubernetes por meio de nenhum outro mecanismo.
Sem limpeza automática
Remover nós externos é uma operação manual. Você remove entradas de spec.externalMembers uma de cada vez. O operador não automatiza esta etapa para você.
O próprio MongoDB Ops Manager não é migrado
Este fluxo de trabalho migra apenas a implantação do MongoDB que MongoDB Ops Manager ou Cloud Manager gerencia. Não migra Ops Manager ou o próprio Cloud Manager.
Congelamento de configuração durante a migração
Enquanto uma migração estiver em andamento, não faça alterações de versão ou configuração na implantação fora das etapas de migração. Edições simultâneas por meio da IU do MongoDB Ops Manager também não são suportadas durante a migração.
Alguns campo devem mudar como parte da própria migração:
- A contagem de nós e os campos
votesepriorityemmemberConfigmudam à medida que você estende, promove e poda nós.
Outras configurações devem corresponder à implantação de origem durante toda a migração e não devem ser alteradas:
Versão do MongoDB
Versão de compatibilidade de recursos
Porta
Modos de autenticação
Autenticação interna do cluster
Configurações que não são transferidas para novos nó
Planeje essas configurações antes de migrar, pois o Kubernetes operador não as reproduz nos novos nós do Kubernetes:
secondaryDelaySecsem um membro atrasado.A configuração oculta em um membro oculto.
buildIndexesdefinido comofalseem um nó.
Se você executar nós de análise ou nós atrasados em máquinas virtuais, reconfigure as configurações equivalentes nos nós do Kubernetes você mesmo, depois que eles se juntarem ao conjunto de réplicas.
Não suportado no MongoDBMultiCluster
O Operador Kubernetes não oferece suporte à migração no recurso MongoDBMultiCluster. O campo spec.externalMembers não foi adicionado intencionalmente a esse CRD. Não existe nenhum MongoDBProject CRD.