Atlas Kubernetes Operator admite las siguientes definiciones de recursos personalizados:
Resource | Descripción | Nombre corto |
|---|---|---|
Configuración de una Política de Cumplimiento de Copia de Seguridad para proteger sus datos de copia de seguridad. | abcp | |
Política de respaldo para realizar una copia de seguridad de su clúster Atlas. | abp | |
Programación de copias de seguridad para realizar copias de seguridad de su clúster Atlas. | abs | |
Clúster dentro de algún proyecto en Atlas. | ad | |
Usuario de base de datos dentro de un proyecto en Atlas. | adulto | |
Proyecto en Atlas. | ap | |
Equipo de proyecto en Atlas. | en | |
instancia de base de datos federada y sus puntos finales privados en Atlas. | Adf | |
Índice de alguna colección en su clúster Atlas. | ASIC | |
Conexión de Atlas Stream Processing. | asc | |
Espacio de trabajo de Atlas Stream Processing. | asi | |
Autenticación federada en Atlas. | afa |
Importante
Los recursos personalizados ya no eliminan objetos de forma predeterminada
Atlas Kubernetes Operator utiliza archivos de configuración de recursos personalizados para administrar la configuración de Atlas. Sin embargo, a partir de 2.0 la versión, los recursos personalizados que elimine en Kubernetes ya no se eliminan en Atlas. En su lugar, Atlas Kubernetes Operator simplemente deja de administrarlos. Por ejemplo, si elimina un recurso AtlasProject personalizado en Kubernetes, Atlas Kubernetes Operator ya no elimina automáticamente el proyecto correspondiente de Atlas, lo que evita eliminaciones accidentales o inesperadas. Para obtener más información, incluido cómo revertir este comportamiento al valor predeterminado utilizado antes de la versión.2 de0 Atlas Kubernetes Operator,2 0consulte Nuevo valor predeterminado: Protección contra eliminación en Atlas Kubernetes Operator..
Administrar el operador Atlas Kubernetes con kubectl
Para listar todos los recursos de Atlas Kubernetes Operator en tu clúster con kubectl, puedes ejecutar:
kubectl get atlas
Para su comodidad, para enumerar o describir tipos específicos de CRD de operadores de Kubernetes de Atlas, puede usar los nombres cortos que aparecen en la tabla anterior. Por ejemplo, para enumerar todos los atlasdatabaseusers en el espacio de nombres mongodb, puede ejecutar:
kubectl get adu -n mongodb
Flujo de trabajo del operador de Kubernetes de Atlas
Cuando utilizas Atlas Kubernetes Operator, puedes crear un nuevo proyecto de Atlas o trabajar con un proyecto de Atlas existente.
Necesita la siguiente clave API pública, clave API privada y la información de ID de la organización para configurar el acceso del operador de Kubernetes de Atlas a Atlas.
Si deseas que el Atlas Kubernetes Operator cree un nuevo Proyecto de Atlas, otorga acceso programático a una organización. Si tu organización requiere una lista de acceso IP para la API de administración de Atlas, también deberás configurar la lista de acceso a la API.
Importante
Debes asignar la clave API a la Organization Project Creator rol organizacional o superior.
Si desea trabajar con un proyecto de Atlas existente, agregue el acceso al proyecto desdeun proyecto. Si su organización requiere una lista de acceso IP para la API de administración de Atlas, también debe configurarla.
Importante
Debe asignar al clave API el rol de proyecto Project Owner.
Para obtener más información, consulte Configurar el acceso a Atlas.
Proceso de creación y actualización
Cada vez que cambia el campo spec en cualquiera de los recursos personalizados admitidos, se inicia el siguiente flujo de trabajo en Atlas Kubernetes Operator:
El operador de Atlas Kubernetes recibe un evento sobre el recurso personalizado modificado.
Atlas Kubernetes Operator actualiza el campo
status.conditionspara reflejar que el recurso no está listo:conditions: - lastTransitionTime: "2021-03-13T16:26:17Z" status: "False" type: Ready Para conectarse a la API de administración de Atlas, Atlas Kubernetes Operator lee el ID de la organización y ClavesAPI de una de las siguientes ubicaciones:
spec.connectionSecretRef.name(si se especifica en elAtlasProjectrecurso personalizado).De forma predeterminada, Atlas Kubernetes Operator mantiene los secretos de conexión en el mismo espacio de nombrescomo el
AtlasProjectrecurso personalizado. Para almacenar secretos en otro espacio de nombres, especifique elspec.connectionSecretRef.namespaceparámetro.globalSecreto del operador de Atlas Kubernetes<operator-deployment-name>-api-key(si no sespec.connectionSecretRef.nameespecifica).
Para crear o actualizar recursos en Atlas, Atlas Kubernetes Operator utiliza la información de conexión para realizar llamadas API a Atlas.
Si ocurre algún error durante la conciliación,
status.conditionsse actualiza para reflejar el error.Ejemplo
- lastTransitionTime: "2021-03-15T14:26:44Z" message: 'POST https://cloud.mongodb.com/api/atlas/v1.0/groups/604a47de73cd8cag77239021/accessList: 400 (request "INVALID_IP_ADDRESS_OR_CIDR_NOTATION") The address 192.0.2.1dfdfd5 must be in valid IP address or CIDR notation.' reason: ProjectIPAccessListNotCreatedInAtlas status: "False" type: IPAccessListReady Si la actualización se realiza correctamente,
status.conditionsrefleja que el recurso está listo:conditions: - lastTransitionTime: "2021-03-13T16:26:17Z" status: "True" type: Ready
Eliminar proceso
A partir de la versión de Atlas Kubernetes 2.0 Operator, al eliminar un recurso personalizado de Kubernetes, el objeto permanece en Atlas de forma predeterminada, pero Atlas Kubernetes Operator ya no lo controla. Puede revertir esta configuración predeterminada para toda la implementación o anularla para un recurso personalizado específico con una anotación para que Atlas Kubernetes Operator pueda eliminar el objeto correspondiente de Atlas. Si la anula con una anotación, se inicia el siguiente flujo de trabajo:
El operador de Atlas Kubernetes recibe un evento sobre el recurso personalizado eliminado.
Para conectarse a la API de administración de Atlas, Atlas Kubernetes Operator lee el ID de la organización y las claves de API de una de las siguientes ubicaciones:
spec.connectionSecretRef.name(si se especifica en elAtlasProjectrecurso personalizado).De forma predeterminada, Atlas Kubernetes Operator guarda los secretos de conexión en el mismo espacio de nombres que el
AtlasProjectrecurso personalizado. Para almacenar los secretos en otro espacio de nombres, especifique elspec.connectionSecretRef.namespaceparámetro.globalSecreto del operador de Atlas Kubernetes<operator-deployment-name>-api-key(si no sespec.connectionSecretRef.nameespecifica).
Para borrar el recurso de Atlas, Atlas Kubernetes Operator usa la información de conexión para hacer llamadas API a Atlas.
Nota
El operador de Kubernetes de Atlas elimina cualquier objeto relacionado creado en Kubernetes. Por ejemplo, si
AtlasDatabaseUserelimina, el operador de Kubernetes de Atlas elimina los secretos de conexión relacionados.
Utilice anotaciones para omitir o anular los valores predeterminados
Puede utilizar anotaciones para modificar el nuevo comportamiento predeterminado de Atlas Kubernetes Operator.
Si agrega la anotación
mongodb.com/atlas-resource-policy: "delete"almetadatade un recurso personalizado, Atlas Kubernetes Operator elimina el objeto correspondiente en Atlas cuando usted elimina el recurso Atlas Kubernetes Operator.Ejemplo
apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project annotations: mongodb.com/atlas-resource-policy: "delete" Si ha revertido el nuevo comportamiento de eliminación al valor predeterminado utilizado antes de Atlas Kubernetes Operator 2.0, puede agregar la
mongodb.com/atlas-resource-policy: "keep"anotación al de un recurso personalizadometadatapara que Atlas Kubernetes Operator no elimine el recurso cuando elimine el recurso Atlas Kubernetes Operator.Si agregas la anotación
mongodb.com/atlas-reconciliation-policy: "skip"a losmetadatade un recurso personalizado, el Atlas Kubernetes Operator no inicia la reconciliación para el recurso. Esta anotación permite que se pause la sincronización con la especificación hasta que se remueva la anotación. Puede usar esta anotación para realizar cambios manuales en un recurso personalizado y evitar que el Atlas Kubernetes Operator deshaga esos cambios durante una sincronización. Cuando se remueve esta anotación, el Atlas Kubernetes Operator reconcilia el recurso y lo sincroniza con la especificación.Si agrega la anotación
mongodb.com/atlas-resource-version-policy: "allow"almetadatade un recurso personalizado, Atlas Kubernetes Operator le permite usar un recurso incluso si su etiqueta de versión no coincide con la versión de Atlas Kubernetes Operator que está utilizando. Si la versión de su recurso es una versión principal posterior a la de Atlas Kubernetes Operator, es posible que las funciones más recientes no funcionen. Las pequeñas discrepancias de versión son compatibles con versiones anteriores.