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.

Configuración de recursos de migración de MongoDB

Importante

La configuración de esta página permite migrar una implementación autogestionada a Kubernetes bajo el operador de Kubernetes. No los establezca en un recurso MongoDB que implemente directamente en Kubernetes sin una migración que lo acompañe.

Esta página documenta los campos de recursos MongoDB, las condiciones de estado y las anotaciones que se aplican únicamente durante una migración desde una implementación autogestionada de máquina virtual a Kubernetes. Para el conjunto completo de MongoDB configuraciones de recursos, consulta Especificación de recursos de base de datos de MongoDB.

Estos campos identifican la máquina virtual de origen o los procesos bare-metal que una migración está extendiendo a Kubernetes. Se aplican al recurso MongoDB, apiVersion: mongodb.com/v1.

Importante

Estos campos existen solo para migración. No los configure en un recurso MongoDB para una implementación de Kubernetes nueva.

spec.externalMembers

Tipo: arreglo de ExternalMember objetos

Los procesos de origen de la máquina virtual o bare-metal que forman parte de la migración. Este campo existe solo para migración.

Puedes remover entradas de esta lista, pero nunca debes agregar entradas una vez que la migración haya comenzado. Una lista spec.externalMembers vacía significa que la migración ha finalizado.

spec.externalMembers[].processName

Tipo: string

Requerido

Este campo existe solo para migración. El nombre del proceso exactamente como aparece en el arreglo processes de la configuración de automatización.

spec.externalMembers[].hostname

Tipo: string

Requerido

Este campo existe solo para migración. El valor de host:port para el proceso, exactamente como aparece en la configuración de automatización.

spec.externalMembers[].type

Tipo: enum: mongod o mongos

Requerido para los clústeres particionados

Este campo existe solo para migración. Un set de réplicas tiene solo mongod nodos externos.

spec.externalMembers[].replicaSetName

Tipo: string

Opcional

Este campo existe solo para migración. Necesario para un clúster particionado mongod nodo externo. Identifica si el proceso pertenece al set de réplicas del servidor de configuración o al set de réplicas de una partición específica.

Estos campos existen solo para la migración y anulan el nombre de la configuración de recursos o automatización que el operador de Kubernetes utilizaría o generaría de otro modo.

spec.replicaSetNameOverride

Tipo: string

Este campo existe solo para migración. El nombre del set de réplicas de la configuración de automatización, cuando difiere del nombre del recurso de Kubernetes, o cuando el nombre del set de réplicas de la configuración de automatización no es un nombre de Kubernetes válido. El plugin kubectl mongodb migrate-to-mck establece este campo para usted a través de su indicador --resource-name-override.

spec.configServerNameOverride

Tipo: string

Este campo existe solo para migración. Nombre del set de réplicas del servidor de configuración tal como aparece en la configuración de automatización.

spec.shardNameOverrides

Tipo: arreglo de ShardNameOverride objetos

Este campo existe solo para migración. Configuración de automatización por partición para el nombre del set de réplicas y la partición _id.

Nota

No confunda spec.shardNameOverrides con spec.shardOverrides. spec.shardOverrides configura la configuración de recursos por partición y no está relacionado con la denominación de la migración.

Los nombres de Kubernetes StatefulSet nunca se ven afectados por estas anulaciones.

El operador de Kubernetes codificó rígidamente estas configuraciones de automatización anteriormente. La migración requiere que sean configurables para que una implementación de Kubernetes pueda coincidir con las rutas ya en uso en las máquinas virtuales de origen.

spec.downloadBase

Tipo: string

Por defecto: /var/lib/mongodb-mms-automation

Directorio donde el MongoDB Agent descarga el binario del agente. El Kubernetes Operator deriva la ruta del archivo de claves de esta configuración como <downloadBase>/keyfile.

spec.security.tls.caFilePath

Tipo: string

Por defecto: /mongodb-automation/tls/ca/ca-pem

Ruta absoluta donde el operador de Kubernetes proyecta el certificado de CA dentro del pod. Esta ruta debe contener al menos dos segmentos de ruta. No compatible con la base de datos de la aplicación.

Nota

Si la plantilla de su pod monta un volumen en esta ruta o por encima de ella, el montaje puede ocultar el archivo CA proyectado. Revise sus montajes de volumen podTemplate antes de establecer un valor personalizado.

spec.security.authentication.agents.autoPEMKeyFilePath

Tipo: string

Ruta absoluta del archivo PEM combinado del MongoDB Agent dentro de los pods de la base de datos. Al establecer este campo, se establece el Ops Manager o el valor tls.autoPEMKeyFilePath de Cloud Manager, y se monta el secreto al que hace referencia spec.security.authentication.agents.clientCertificateSecretRef en esa ruta.

Se requiere spec.security.authentication.agents.clientCertificateSecretRef.

Por defecto, la ruta de montaje del certificado de agente derivada del hash que utiliza el operador de Kubernetes para implementaciones no migradas.

status.conditions

Tipo: arreglo de Condiciones de Kubernetes

Condiciones estándar de Kubernetes, con clave type. Este campo es nuevo en el recurso MongoDB y admite la migración.

status.conditions[type=Migrating]

Tipo: condición de Kubernetes

El indicador principal de si una migración está activa. status es True mientras spec.externalMembers no está vacío, y cambia a False con el motivo MigrationComplete una vez que remueva el último nodo externo.

Razón
Estado
Significado

Validating

True

La anotación de dry-run está establecida.

Extending

True

El recuento de nodos de Kubernetes deseado supera el último recuento conciliado.

Pruning

True

El recuento de externalMembers cayó por debajo de status.migrationObservedExternalMembersCount.

InProgress

True

Existen nodos externos, pero nada está cambiando. Esta es también la razón de la primera conciliación.

MigrationComplete

False

Todos los nodos externos han sido eliminados.

La precedencia es Validating > Extending > Pruning > InProgress. Una poda que también hace crecer el lado de Kubernetes informa Extending, lo cual es otra razón para hacer un cambio a la vez.

No se permite la poda y la extensión al mismo tiempo.

Para crear un script para la finalización de la migración, utilice kubectl wait --for=condition=Migrating=False en lugar de sondear status.phase.

status.conditions[type=NetworkConnectivityVerified]

Tipo: condición de Kubernetes

El resultado de la comprobación de conectividad de ejecutar en seco. El operador de Kubernetes remueve esta condición de status.conditions por completo una vez que no queden nodos externos.

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.

status.migrationObservedExternalMembersCount

Tipo: entero

El número de spec.externalMembers entradas que el operador de Kubernetes observó en la última conciliación. Kubernetes operador compara este valor con el recuento actual de spec.externalMembers en la siguiente conciliación para detectar que ha eliminado un nodo externo. Este campo no está establecido cuando no quedan nodos externos.

Nota

Este campo también aparece en el esquema de recursos personalizados MongoDBOpsManager, como efecto secundario de la incrustación de estructuras Go. En el recurso MongoDBOpsManager, el campo siempre es nulo. Ignórelo allí.

metadata.annotations.mongodb.com/migration-dry-run

Tipo: string (valor booleano)

El plugin kubectl mongodb migrate-to-mck establece esta anotación en true. Mientras esta anotación está presente, el operador de Kubernetes no realiza cambios en la configuración de automatización y solo realiza la validación de conectividad. Remover la anotación inicia la migración real.

metadata.annotations.mongodb.com/migrate-tool-version

Tipo: string

Registra la versión del plugin kubectl mongodb migrate-to-mck que generó el recurso. El operador de Kubernetes valida esta anotación con su propia versión en cada conciliación, incluso durante la ejecución de prueba.

Los siguientes campos de recursos MongoDB existentes no son solo para migración, pero requieren valores específicos o revisión durante una migración: