Migrar una implementación gestionada por MongoDB Ops Manager o Cloud Manager en máquinas virtuales a Kubernetes bajo el operador de Kubernetes requiere conectividad de red bidireccional entre los host de las máquinas virtuales y los Pods de Kubernetes. Usted, no el operador de Kubernetes, aprovisiona esta conectividad.
Esta conectividad depende completamente de su propia configuración de red, incluyendo su topología de red, reglas de firewall, configuración de DNS y proveedor de nube. Debido a esto, no es posible una orientación universal concreta. El resto de esta página describe lo que el operador de Kubernetes comprueba automáticamente, lo que no comprueba y la configuración que utiliza para exponer los Pods de Kubernetes a sus máquinas virtuales.
¿Qué valida el ejecutar de prueba?
La tarea de validación de conectividad en seco comprueba si los nodos de máquinas virtuales son accesibles desde el entorno de Kubernetes. No comprueba la dirección inversa, desde las máquinas virtuales hasta Kubernetes. Debe verificar esa dirección usted mismo, utilizando la lista de comprobación dependiente de la configuración más adelante en esta página.
Configurar acceso externo
Para permitir que los nodos de máquinas virtuales lleguen a los Pods de Kubernetes, utilice spec.externalAccess. Este es el mismo mecanismo de acceso externo que utiliza el Operador de Kubernetes 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 a un nombre de host que los nodos de la máquina virtual puedan resolver. Usted gestiona configurar de DNS para este nombre de host; el operador de Kubernetes no crea ni gestiona registros de DNS para usted.
Importante
No establezca externalDomain si utiliza MongoDB Search o la búsqueda vectorial con esta implementación. MongoDBSearch no admite un recurso MongoDB que establezca externalDomain. Utilice spec.externalAccess por sí solo en su lugar. Para obtener más información, consulte Interacción de MongoDB Search con la migración.
Advertencia
No se puede remover externalDomain después de crear el clúster. Confirme su nombre de host y estrategia de DNS antes de configurar este campo.
Los nombres de host de los nodos de Kubernetes siguen el patrón <metadata.name>-0.<spec.externalAccess.externalDomain>, donde el índice numérico aumenta en uno para cada nodo adicional.
Lista de verificación de verificación
Ningún comando único puede garantizar que la conectividad esté configurada correctamente en ambas direcciones. Utilice esta lista de comprobación para revisión su configurar y adapte cada elemento a su propia red:
Confirme que los nombres de host de sus nodos de Kubernetes se puedan resolver desde los nodos de la máquina virtual.
Confirme que las direcciones IP del nodo de Kubernetes o del LoadBalancer son accesibles desde las máquinas virtuales.
Clústeres fragmentados
Para un clúster particionado, se configura el acceso externo por componente:
spec.externalAccessconfigura solomongos.spec.mongos.externalAccesssustituye el campo a nivel raíz paramongos.spec.shard.externalAccessy cadaspec.configSrv.externalAccessdebe configurarse para exponer cada Pod de las particiones y el set de réplicas del servidor de configuración.
Secreto de la cadena de conexión
El Operador de Kubernetes genera automáticamente una cadena de conexión Secret con el nombre <metadata.name>-cluster-connection-string. Este Secret no contiene credenciales, y el operador de Kubernetes lo mantiene sincronizado con los nodos activos a medida que la pertenencia cambia durante la migración.
Dirija sus aplicaciones a este Secret en lugar de una cadena de conexión codificada rígidamente. Hacerlo significa que los cambios de pertenencia durante la migración no requieren un cambio drástico para sus aplicaciones.
Ordenando
Configure el acceso externo y externalDomain antes de extender la implementación en Kubernetes. El operador de Kubernetes no admite añadir estas configuraciones después de que la migración ya esté en curso.