Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.

Validar la preparación para la migración con un simulacro de ejecutar

El plugin kubectl mongodb siempre añade la anotación mongodb.com/migration-dry-run: true al recurso que genera para migrar una implementación a Kubernetes. Mientras esa anotación esté presente, el operador de Kubernetes no realiza cambios en la configuración de automatización. Solo valida la conectividad y las credenciales, para que pueda solucionar problemas y volver a ejecutar tantas veces como sea necesario antes de que el operador de Kubernetes se haga cargo de la implementación.

  • El operador de Kubernetes crea una tarea por cada recurso MongoDB, denominada <resourceName>-connectivity-check. La tarea llama a cada nodo externo y se autentica en él. Se borrar a sí misma mediante ttlSecondsAfterFinished, y la siguiente conciliación la vuelve a crear, por lo que la re-validación después de una corrección es automática. No es necesario activarla manualmente.

  • La ejecución de prueba comprueba la accesibilidad de Kubernetes a la máquina virtual (DNS, TLS, firewalls y direcciones de nodo) y las credenciales, incluido el rol __system en la base de datos local, y la CA cuando TLS está habilitado.

  • La ejecución de prueba no comprueba la conectividad de entrada de máquina virtual a Kubernetes. Verifique esa dirección usted mismo, ya sea a través del estado de supervisión de la Interfaz de Usuario de Ops Manager para la implementación o ejecutando rs.status() desde un nodo de máquina virtual y confirmando que puede llegar a los Pods de Kubernetes.

  • La comprobación de la versión del plugin y del operador de Kubernetes se ejecuta independientemente de si la anotación de ejecución en seco está presente.

  • Un recurso personalizado MongoDB generado con la anotación mongodb.com/migration-dry-run: true todavía presente. Para aprender a generar este recurso, consulte Migrar un set de réplicas a Kubernetes.

  • Si la implementación utiliza TLS, los certificados de nodo y el material de CA descritos en Configurar TLS para una migración a Kubernetes.

  • El operador de Kubernetes ServiceAccount tiene batch/jobs permisos (create, get, list, watch y delete). Sin este permiso, el operador de Kubernetes no puede crear la tarea de validación de conectividad en absoluto.

1

Aplicar el recurso personalizado MongoDB con la anotación dry-run aún establecida. El operador de Kubernetes crea la tarea <resourceName>-connectivity-check e informa del progreso a través de status.phase y la condición NetworkConnectivityVerified.

Mientras la tarea se ejecuta, status.phase lee ConnectivityCheckRunning.

2

Leer status.conditions[type=NetworkConnectivityVerified]:

Código de salida de la tarea del validador
Estado de la condición
Razón
Significado

Tarea aún en ejecución

Unknown

Running

El status.phase es ConnectivityCheckRunning.

0

True

NetworkValidationPassed

Todos los nodos externos son accesibles y están autenticados.

2

False

AuthenticationFailed

Credenciales, el mecanismo de autenticación o un rol __system@local que falta.

3

False

NetworkFailed

DNS, TLS, tiempos de espera o nodos inaccesibles. Compruebe el registro de la tarea Pod.

1 o otros

False

UnknownError

Error sin clasificar. Compruebe el registro de la tarea Pod.

Los errores que se producen antes de que se inicie la tarea utilizan los motivos OperatorImageUnknown, BuildStatefulSetOptions, AgentCertSecretFailed y AgentCertSubject.

El operador de Kubernetes remueve la condición NetworkConnectivityVerified de status.conditions por completo una vez que no queden nodos externos.

3

Solucione los problemas de conectividad o de credenciales en Kubernetes o en la Interfaz de Usuario de MongoDB Ops Manager, según sea necesario. No es necesario borrar ni volver a aplicar nada: la siguiente conciliación vuelve a crear la tarea de validación automáticamente.

Si la ejecución de prueba parece atascada, borre la tarea <resourceName>-connectivity-check. La siguiente conciliación la vuelve a crear.

Una concesión RBAC batch/jobs faltante en el operador de Kubernetes ServiceAccount impide que la tarea se cree en primer lugar, por lo que en ese caso no aparece ninguna condición ni tarea. Los errores que se producen antes de que se inicie la tarea aparecen como motivos OperatorImageUnknown, BuildStatefulSetOptions, AgentCertSecretFailed o AgentCertSubject en lugar de los motivos de código de salida de la tabla anterior.

4

Cuando la condición NetworkConnectivityVerified es True con el motivo NetworkValidationPassed, remover la anotación:

kubectl annotate mdb <resourceName> \ mongodb.com/migration-dry-run-

Importante

Remover la anotación de ejecutar de prueba es el punto en el que Kubernetes operador asume la propiedad del proyecto de Ops Manager o Cloud Manager. Trate esto como el punto de no retorno para el estado de conectividad y credenciales que acaba de validar.