Importante
Los subrecursos heredados quedan obsoletos a partir del lanzamiento de sus CRD correspondientes. Si su configuración actualmente utiliza el formato de subrecurso de esta definición de recurso, migrar a un CRD.
El AtlasNetworkContainer recurso personalizado define un contenedor de red para un proyecto Atlas. Crea Conexiones de peering deVPC entre contenedores de red y las redes que alojan sus aplicaciones.
Importante
Los recursos personalizados ya no eliminan objetos de forma predeterminada
El Operador de Kubernetes de Atlas utiliza archivos de configuración de recursos personalizados para administrar la configuración de Atlas. Sin embargo, a partir del Operador de Kubernetes 2.0 de Atlas, los recursos personalizados que elimine en Kubernetes ya no se eliminan (de forma predeterminada) en Atlas. En su lugar, el Operador de Kubernetes de Atlas simplemente deja de administrar esos recursos en Atlas. Por ejemplo, si elimina un
AtlasProjectRecurso Personalizado en Kubernetes, el Operador de Kubernetes de Atlas ya no elimina automáticamente el proyecto correspondiente de Atlas. Este cambio de comportamiento tiene como objetivo evitar eliminaciones accidentales o inesperadas. Para obtener más información, incluido cómo revertir este comportamiento al valor predeterminado utilizado antes del Operador de Kubernetes 2 0de Atlas., consulte Nuevo valor predeterminado: Protección contra eliminaciones en el Operador de Kubernetes 2 de0 Atlas..De manera similar, Atlas Kubernetes Operator no elimina equipos de Atlas si los elimina de un proyecto Atlas en Kubernetes con Atlas Kubernetes Operator.
Defina explícitamente los detalles de configuración deseados para evitar el uso implícito de los valores predeterminados de Atlas. En algunos casos, heredar los valores predeterminados de Atlas puede generar un bucle de conciliación que impide que su recurso personalizado alcance el estado
READY. Por ejemplo, definir explícitamente el comportamiento de escalado automático deseado en su recurso personalizadoAtlasDeployment, como se muestra en el ejemplo incluido, garantiza que un tamaño de instancia estático en su recurso personalizado no se aplique repetidamente a una implementación de Atlas con el escalado automático habilitado.autoScaling: diskGB: enabled: true compute: enabled: true scaleDownEnabled: true minInstanceSize: M30 maxInstanceSize: M40
El operador de Kubernetes de Atlas realiza una de las siguientes acciones utilizando el recurso de API de emparejamiento de red de Atlas:
Crea un nuevo contenedor de red.
Actualiza un contenedor de red existente.
Ejemplos
Los siguientes ejemplos ilustran configuraciones para AtlasNetworkContainer CRD.
La configuración de ejemplo básica define un recurso que administra con la misma instancia de Atlas Kubernetes Operator con la que administra su proyecto Atlas principal.
El ejemplo de CRD independiente configura el mismo contenedor de red que el ejemplo básico, pero para un proyecto Atlas que administra fuera de la instancia de Atlas Kubernetes Operator con la que administra el contenedor de red.
Ejemplo básico
A continuación, se muestra un AtlasNetworkContainer recurso personalizado para un contenedor llamado my-atlas-nc que permite crear una conexión de interconexión de VPC entre Atlas y AWS dentro del my-project proyecto. Para administrar este recurso en la misma instancia de Operador de Kubernetes de Atlas que su proyecto Atlas principal, debe identificar el proyecto con projectRef en lugar externalProjectRef de.
apiVersion: atlas.mongodb.com/v1 kind: AtlasNetworkContainer metadata: name: my-atlas-nc spec: projectRef: name: my-project namespace: my-operator-namespace provider: AWS id: 66e2f2b7e69a89b66b621571 cidrBlock: 10.11.0.0/16 region: US_EAST_1
Ejemplo de CRD independiente
El siguiente ejemplo muestra un AtlasNetworkContainer CRD independiente que habilita el intercambio de VPC con los mismos parámetros habilitados en el Ejemplo Básico. Para habilitar la operación independiente, debe usar un externalProjectRef en lugar de un projectRef y proporcionar un connectionSecret directamente, ya que este recurso no puede heredar las credenciales de API de su proyecto principal.
apiVersion: atlas.mongodb.com/v1 kind: AtlasNetworkContainer metadata: name: my-atlas-nc spec: externalProjectRef: projectId: 66e2f2b621571b7e69a89b66 connectionSecret: name: atlas-connection-secret provider: AWS id: 66e2f2b7e69a89b66b621571 cidrBlock: 10.11.0.0/16 region: US_EAST_1
Parámetros
Esta sección describe los AtlasNetworkContainer parámetros disponibles en esta definición de recurso personalizada.
metadata.nameTipo: string
Requerido
Nombre que utiliza
AtlasNetworkContainerel recurso personalizado para agregar este contenedor de red a un proyecto.
metadata.namespaceTipo: string
Opcional
Espacio de nombres que desea que contenga el recurso personalizado
atlasNetworkContainer. Si no se especifica, Atlas Kubernetes Operator usa el espacio de nombres actual definido porkubectl.
spec.connectionSecret.nameTipo: string
Condicional
Nombre del secreto opacoQue contiene el ID de la organización y las claves API que Atlas Kubernetes Operator utiliza para conectarse a Atlas. Si no se especifica, Atlas Kubernetes Operator utiliza una de las siguientes opciones de forma predeterminada:
El parámetro
spec.connectionSecretRef.namedel padreatlasProjectEl secreto predeterminado
global, si no ha definido elspec.connectionSecretRef.namepara el padreatlasProject
Este parámetro es necesario para CRD independientes.
El operador Atlas Kubernetes solo observa secretos con la etiqueta
atlas.mongodb.com/type=credentialspara evitar observar secretos innecesarios.El siguiente ejemplo etiqueta un secreto:
kubectl label secret the-user-password atlas.mongodb.com/type=credentials
spec.externalProjectRef.idTipo: string
Condicional
ID del proyecto al que pertenece el contenedor de red. Debe especificar el ID de proyecto de un proyecto Atlas existente. Debe especificar este parámetro para los contenedores de red que pertenecen a proyectos administrados por:
Una instancia diferente de Atlas Kubernetes Operator
Herramientas distintas a Atlas Kubernetes Operator
Para implementaciones que pertenezcan a proyectos gestionados por la misma instancia del Atlas Kubernetes Operator, utiliza
spec.projectRef.name. Estos parámetros se excluyen mutuamente entre sí.
spec.projectRef.nameTipo: string
Condicional
Nombre del proyecto al que pertenece el contenedor de red. Debe especificar un recurso personalizado
AtlasProjectexistente. Este parámetro solo se aplica a los contenedores de red que pertenecen a proyectos administrados por la misma instancia del operador de Atlas Kubernetes.Para contenedores de red que pertenezcan a proyectos gestionados por cualquiera de los siguientes:
una instancia diferente de Atlas Kubernetes Operator
herramientas distintas de Atlas Kubernetes Operator
Utilice
spec.externalProjectRef.id. Estos parámetros son mutuamente excluyentes.
spec.projectRef.namespaceTipo: string
Condicional
Espacio de nombres en el que
AtlasProjectspec.projectRef.nameexiste el recurso personalizado especificado en.No configure este parámetro para implementaciones que pertenezcan a proyectos administrados por:
una instancia diferente de Atlas Kubernetes Operator
herramientas distintas de Atlas Kubernetes Operator
spec.providerTipo: string
Requerido
Proveedor de nube con el que soportar una conexión de emparejamiento VPC. Debe ser uno de los siguientes:
AWSAzureGCP