A migração de uma implementação que o Ops Manager ou o Cloud Manager gerenciam em máquinas virtuais para o Kubernetes no Kubernetes Operator requer conectividade de rede bidirecional entre os hosts da máquina virtual e os Pods do Kubernetes. Você, não o Operador do Kubernetes, provisiona essa conectividade.
Essa conectividade depende totalmente de sua configuração de rede, incluindo topologia de rede, regras de firewall , configuração de DNS e provedor de nuvem. Por esse motivo, não é possível obter uma orientação universal concreta. O restante desta página descreve o que o Kubernetes Operator verifica automaticamente, o que ele não verifica e a configuração usada para expor os Pods do Kubernetes às suas máquinas virtuais.
O que o teste valida
O trabalho do validador de conectividade de execução seca verifica se os nós da máquina virtual são acessíveis a partir do ambiente Kubernetes. Ele não verifica a direção inversa, das máquinas virtuais para o Kubernetes. Você mesmo deve verificar essa direção, usando a lista de verificação dependente de configuração mais tarde nesta página.
Configurar acesso externo
Para permitir que os nós de máquina virtual alcancem os Pods Kubernetes, utilize spec.externalAccess. Este é o mesmo mecanismo de acesso externo que o Kubernetes Operator usa fora da migração: ele cria um LoadBalancer ou NodePort para cada Pod, expondo os Pods fora do cluster do Kubernetes.
Opcionalmente, defina spec.externalAccess.externalDomain como um nome de host que os nós da máquina virtual possam resolver. Você possui a configuração de DNS para este nome de host; O Kubernetes Operator não cria nem gerencia registros DNS para você.
Importante
Não defina externalDomain se você usar o MongoDB Search ou o Vector Search com esse sistema. MongoDBSearch não suporta um recurso MongoDB que define externalDomain. Em vez disso, use spec.externalAccess sozinho. Para saber mais, consulte Interação de pesquisa do MongoDB com migração.
Aviso
Não é possível remover externalDomain depois de criar o cluster. Confirme seu nome de host e estratégia de DNS antes de definir este campo.
Os nomes de host do membro do Kubernetes seguem o padrão <metadata.name>-0.<spec.externalAccess.externalDomain>, onde o índice numérico aumenta em um para cada membro adicional.
Lista de verificação de verificação
Nenhum comando único pode garantir que a conectividade esteja configurada corretamente em ambas as direções. Use esta lista de verificação para revisar sua configuração e adaptar cada item à sua própria rede:
Confirme que os nomes de host dos seus membros do Kubernetes podem ser resolvidos a partir dos membros da máquina virtual.
Confirme se os endereços IP do nó do Kubernetes ou do LoadBalancer podem ser acessados a partir das máquinas virtuais.
Clusters fragmentados
Para um cluster fragmentado, você configura o acesso externo por componente:
spec.externalAccessconfigura apenasmongos.spec.mongos.externalAccesssubstitui o campo de nível raiz paramongos.spec.shard.externalAccessespec.configSrv.externalAccessdevem ser definidos para expor todos os Pods dos shards e do conjunto de réplicas do servidor de configuração .
Segredo da connection string
O Kubernetes Operator gera automaticamente uma string de conexão Secret chamada <metadata.name>-cluster-connection-string. Este Secret não contém credenciais e o Kubernetes Operator o mantém sincronizado com os nós ativos à medida que a associação muda durante a migração.
Aponte seus aplicativos para este Secret em vez de uma string de conexão codificada . Isso significa que as alterações de associação durante a migração não exigem uma transição forçada para seus aplicativos.
Encomenda
Configure o acesso externo e externalDomain antes de estender a implantação no Kubernetes. O Kubernetes Operator não suporta adicionar essas configurações depois que a migração já está em andamento.