Para migrar una implementación gestionada por Ops Manager o Cloud Manager en máquinas virtuales a Kubernetes bajo Kubernetes Operator, se requiere conectividad de red bidireccional entre los hosts de las máquinas virtuales y los pods de Kubernetes. Usted, y no Kubernetes Operator, es quien debe aprovisionar esta conectividad.
Esta conectividad depende totalmente de su configuración de red, incluyendo la topología de red, las reglas del firewall, la configuración DNS y el proveedor de la nube. Por ello, no es posible ofrecer una guía universal concreta. El resto de esta página describe qué comprueba automáticamente el Operador de Kubernetes, qué no comprueba y la configuración que debe usar para exponer los Pods de Kubernetes a sus máquinas virtuales.
Lo que valida la prueba piloto
La tarea de validación de conectividad en modo de prueba comprueba si las máquinas virtuales son accesibles desde el entorno de Kubernetes. No comprueba la conexión en sentido inverso, desde las máquinas virtuales hacia Kubernetes. Debe verificar esta conexión manualmente, utilizando la lista de comprobación que se encuentra más adelante en esta página y que depende de la configuración.
Configurar el acceso externo
Para permitir que los nodos de máquinas virtuales accedan a los Pods de Kubernetes, utilice spec.externalAccess. Este es el mismo mecanismo de acceso externo que utiliza Kubernetes Operator fuera de la migración: crea un LoadBalancer o NodePort para cada Pod, exponiendo los Pods fuera del clúster de Kubernetes.
Opcionalmente, configure spec.externalAccess.externalDomain con un nombre de host que los nodos de la máquina virtual puedan resolver. Usted es responsable de la configuración DNS para este nombre de host; Kubernetes Operator no crea ni administra los registros DNS por usted.
Importante
No configure externalDomain si utiliza MongoDB Search o Vector Search con esta implementación. MongoDBSearch no admite un recurso MongoDB que configure externalDomain. En su lugar, utilice spec.externalAccess por separado. Para obtener más información, consulte Interacción de MongoDB Search con la migración.
Advertencia
No puede eliminar externalDomain después de crear el clúster. Confirme su nombre de host y estrategia DNS antes de configurar este campo.
Los nombres de host de los miembros de Kubernetes siguen el patrón <metadata.name>-0.<spec.externalAccess.externalDomain>, donde el índice numérico se incrementa en uno por cada miembro adicional.
Lista de verificación
Ningún comando por sí solo puede garantizar que la conectividad esté configurada correctamente en ambas direcciones. Utilice esta lista de verificación para revisar su configuración y adapte cada elemento a su propia red:
Confirme que los nombres de host de los miembros de Kubernetes se puedan resolver desde los miembros de la máquina virtual.
Confirme que las direcciones IP del nodo de Kubernetes o del LoadBalancer sean accesibles desde las máquinas virtuales.
Clústeres fragmentados
Para un clúster fragmentado, se configura el acceso externo por componente:
spec.externalAccessconfigura solomongos.spec.mongos.externalAccessSustituye al campo de nivel raíz paramongos.spec.shard.externalAccessyspec.configSrv.externalAccessdeben configurarse para exponer cada Pod de los fragmentos y el conjunto de réplicas del servidor de configuración.
Secreto de la cadena de conexión
Kubernetes Operator genera automáticamente una cadena de conexión Secret llamada <metadata.name>-cluster-connection-string. Esta Secret no contiene credenciales, y Kubernetes Operator la mantiene sincronizada con los nodos activos a medida que cambia la membresía durante la migración.
Dirige tus aplicaciones a este Secret en lugar de usar una cadena de conexión fija. De esta forma, los cambios de membresía durante la migración no requerirán una transición completa para tus aplicaciones.
Ordenando
Configure el acceso externo y externalDomain antes de extender la implementación a Kubernetes. El operador de Kubernetes no admite la adición de estas configuraciones una vez que la migración ya está en curso.