Nota
Esta funcionalidad no está disponible para
M0clústeres yFlexclústeres.
Atlas admite conexiones de emparejamiento de red para clústeres dedicados alojados en AWS, Google Cloud y Azure, y en clústeres fragmentados multi-nube.
El emparejamiento de red establece una conexión privada entre la VPC de Atlas y la VPC del proveedor de nube. La conexión aísla el tráfico de las redes públicas para aumentar la seguridad.
Atlas no admite el emparejamiento de red entre los clústeres que has implementado en una sola región pero en diferentes proveedores de nube.
Para gestionar tus conexiones de emparejamiento de red con Atlas Kubernetes Operator, puedes especificar y actualizar el spec.networkPeers Parámetro para el AtlasProject recurso personalizado. Cada vez que se modifica el spec campo en cualquiera de los recursos personalizados compatibles, Atlas Kubernetes Operator crea o actualiza la configuración de Atlas correspondiente.
Requisitos previos
Para configurar el emparejamiento de red utilizando Atlas Kubernetes Operator, se requiere lo siguiente:
Un clúster de Kubernetes en funcionamiento con Atlas Kubernetes Operator implementado.
La
Project OwneroOrganization Ownerrol en Atlas.Si aún no lo ha hecho, cree su VPC en AWS. Para obtener más información, consulte Introducción a Amazon VPC.
Una norma de tráfico de red para el tráfico saliente.
Cree la siguiente regla de tráfico de red en su grupo de seguridad AWS adjunto a sus recursos que se conectan a Atlas:
PermisoInstruccionesPuertoObjetivoPermitir
saliente
27015-27017 inclusive
al CIDRde Atlas
Un clúster de Kubernetes en funcionamiento con Atlas Kubernetes Operator implementado.
El
Project OwneroOrganization Ownerrol en Atlas.Si aún no lo ha hecho, cree su VNet en Azure. Para obtener más información, consulta Crea una red virtual utilizando el portal de Azure.
Roles de Azure necesarios para configurar una conexión de emparejamiento de red.
Para obtener más información, consulta los permisos de Windows Permisos de Azure.
Un principal de servicio para la ID de la aplicación de emparejamiento de Atlas.
Nota
Para obtener detalles sobre cómo Atlas crea conexiones peering de red con Azure VPCs, consulta la pestaña
Azureen Crear una conexión peering de red.Debe completar los siguientes pasos antes de crear cada conexión de emparejamiento de red de Azure:
Ejecute el siguiente comando de Azure CLI para crear un principal de servicio utilizando el ID de la aplicación Atlas emparejamiento especificado:
az ad sp create --id e90a1407-55c3-432d-9cb1-3638900a9d22 Solo tienes que hacer esto una vez por cada suscripción. Si recibes el siguiente mensaje, el principal de servicio con el ID de la aplicación de emparejamiento de Atlas ya existe. Proceed to the siguiente step.
Another object with the same value for property servicePrincipalNames already exists. Copie el siguiente archivo de ejemplo
peering-role.jsony guárdelo en su directorio de trabajo actual:1 { 2 "Name":"AtlasPeering/<azureSubscriptionId>/<resourceGroupName>/<vnetName>", 3 "IsCustom":true, 4 "Description":"Grants MongoDB access to manage peering connections on network /subscriptions/<azureSubscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>", 5 "Actions":[ 6 "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/read", 7 "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/write", 8 "Microsoft.Network/virtualNetworks/virtualNetworkPeerings/delete", 9 "Microsoft.Network/virtualNetworks/peer/action" 10 ], 11 "AssignableScopes":[ 12 "/subscriptions/<azureSubscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>" 13 ] 14 } Reemplace las variables en el
peering-role.jsoncon detalles sobre la VNet de Azure con la que desea crear una conexión de emparejamiento:VariableDescripciónazureSubscriptionIdIdentificador único de la suscripción de Azure en la que reside la red virtual.
resourceGroupNameNombre de su grupo de recursos de Azure.
vnetNameNombre de su red virtual de Azure.
Ejecute el siguiente comando Azure CLI para crear la definición de rol utilizando el archivo
peering-role.json:az role definition create --role-definition peering-role.json Ejecute el siguiente comando de la CLI de Azure para asignar el rol que creó al principal del servicio.
Reemplace las variables con los mismos valores que utilizó en el archivo
peering-role.json.az role assignment create \ --role "AtlasPeering/<azureSubscriptionId>/<resourceGroupName>/<vnetName>" \ --assignee "e90a1407-55c3-432d-9cb1-3638900a9d22" \ --scope "/subscriptions/<azureSubscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Network/virtualNetworks/<vnetName>"
Un clúster de Kubernetes en funcionamiento con Atlas Kubernetes Operator implementado.
El
Project OwneroOrganization Ownerrol en Atlas.Una cuenta de usuario de Google Cloud con una política de usuario de IAM y un rol de administrador de red de cómputo que otorga permisos para crear, modificar y eliminar recursos de red. Para obtener más información sobre la administración de puntos de conexión y conexiones privadas en Google Cloud, consulte Crear y modificar redes de nube virtual privada (VPC).
Si aún no lo has hecho, crea tu VPC en Google Cloud. Para obtener más información, consulte la documentación de GCP.
Procedimiento
Permite que los clientes se conecten a los clústeres de Atlas mediante una conexión peering de red con el siguiente procedimiento:
Especifica el parámetro spec.networkPeers.
Puede configurar el peering de red para utilizar un contenedor existente o uno nuevo.
Utilice un contenedor existente
Especifique el parámetro
spec.networkPeersAtlasProjecten el recurso personalizado. Reemplace los siguientes marcadores de posición con sus valores:Marcador de posiciónDescripciónspec.networkPeers.providerNameNombre del proveedor de nube. Especifique
AWS.spec.networkPeers.containerIdIdentificador único para el contenedor de emparejamiento de red que deseas usar. Si no especifica
containerId, debe estableceratlasCIDRblock. Para obtener más información, consulta el Create New Container sección de este procedimiento.spec.networkPeers.accepterRegionNameRegión AWS para tu VPC.
spec.networkPeers.awsAccountIdIdentificador único para tu cuenta de AWS. AWS muestra el ID de la cuenta cuando haces clic en el nombre de la cuenta en la esquina superior derecha de la página de inicio de la consola.
spec.networkPeers.routeTableCidrBlockBloque CIDR para su AWS VPC. AWS muestra el bloque CIDR en la página de detalles de tu VPC.
spec.networkPeers.vpcIdIdentificador único para tu AWS VPC. AWS muestra el ID de VPC en la página de detalles de tu VPC.
Ejecuta el siguiente comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "AWS" containerID: "6dc5f17280eef56a459fa3fb" accepterRegionName: "us-east-2" awsAccountId: "12345678" routeTableCidrBlock: "10.0.0.0/24" vpcId: "vpc-12345678" EOF
Crear un nuevo contenedor
Especifique el parámetro
spec.networkPeersAtlasProjecten el recurso personalizado. Reemplace los siguientes marcadores de posición con sus valores:Marcador de posiciónDescripciónspec.networkPeers.providerNameNombre del proveedor de nube. Especifique
AWS.spec.networkPeers.atlasCidrBlockBloque CIDR de Atlas para el que Atlas Kubernetes Operator crea un nuevo contenedor. Si no especificas
atlasCidrBlock, debes especificar elcontainerIdde un contenedor existente. Para aprender más, consulta la sección Use Existing Container de este procedimiento.spec.networkPeers.containerRegion(Opcional) AWS región en la que Atlas Kubernetes Operator crea un nuevo contenedor. Si no especificas un
containerRegiono uncontainerId, el Operador de Kubernetes Atlas crea un nuevo contenedor en la misma región que elaccepterRegionName.spec.networkPeers.accepterRegionNameRegión AWS para tu VPC.
spec.networkPeers.awsAccountIdIdentificador único para tu cuenta de AWS. AWS muestra el ID de la cuenta cuando haces clic en el nombre de la cuenta en la esquina superior derecha de la página de inicio de la consola.
spec.networkPeers.routeTableCidrBlockBloque CIDR para su AWS VPC. AWS muestra el bloque CIDR en la página de detalles de tu VPC.
spec.networkPeers.vpcIdIdentificador único para tu AWS VPC. AWS muestra el ID de VPC en la página de detalles de tu VPC.
Ejecuta el siguiente comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "AWS" atlasCidrBlock: "10.8.0.0/21" containerRegion: "us-west-1" accepterRegionName: "us-east-2" awsAccountId: "12345678" routeTableCidrBlock: "10.0.0.0/24" vpcId: "vpc-12345678" EOF
Verifica el estado de WAITING FOR USER.
Ejecuta el siguiente comando:
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.statusName}' WAITING FOR USER Si el valor de
statusNameesWAITING FOR USER, pasa al siguiente paso. Si elstatusNameno esWAITING FOR USER, espera unos minutos y vuelve a intentar este paso.
Acepte la conexión de emparejamiento de VPC en AWS.
Para obtener más información, consulte Aceptar una conexión de emparejamiento de VPC.
Comprueba el estado de tu conexión VPC utilizando Atlas Kubernetes Operator.
Vuelve a ejecutar el siguiente comando para comprobar el estado de la conexión VPC. Atlas Kubernetes Operator devuelve READY cuando se completa la conexión peering de red.
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.statusName}'
READY
Especifica el parámetro spec.networkPeers.
Puede configurar el peering de red para utilizar un contenedor existente o uno nuevo.
Utilice un contenedor existente
Especifique el parámetro
spec.networkPeersAtlasProjecten el recurso personalizado. Reemplace los siguientes marcadores de posición con sus valores:Marcador de posiciónDescripciónspec.networkPeers.providerNameNombre del proveedor de nube. Especifique
AZURE.spec.networkPeers.containerIdIdentificador único para el contenedor de emparejamiento de red que deseas utilizar. Si no especificas
containerId, debes estableceratlasCIDRblock. Para obtener más información, consulta la sección Create New Container de este procedimiento.spec.networkPeers.accepterRegionNameRegión de Azure para su VPC.
spec.networkPeers.azureSubscriptionIdIdentificador único de su suscripción de Azure. Azure muestra el ID de suscripción en la página de detalles de la suscripción.
spec.networkPeers.resourceGroupNameEtiqueta legible para humanos que identifica el grupo de recursos de Azure que contiene la VPC. Azure muestra el nombre del grupo de recursos en la página de detalles del grupo de recursos.
spec.networkPeers.azureDirectoryIdIdentificador único de su inquilino de Azure Active Directory. Azure lo muestra como
Tenant IDen la página de propiedades del inquilino.spec.networkPeers.vnetNameEtiqueta legible por humanos que identifica tu Azure VNET. Azure muestra el nombre de VNET en la página de detalles de tu VNET.
Ejecuta el siguiente comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "AZURE" containerID: "6dc5f17280eef56a459fa3fb" accepterRegionName: "US_EAST_2" azureSubscriptionId: "12345678" resourceGroupName: "my-group" azureDirectoryId: "x0xxx10-00x0-0x01-0xxx-x0x0x01xx100" vnetName: "my-vnet" EOF
Crear un nuevo contenedor
Especifique el parámetro
spec.networkPeersAtlasProjecten el recurso personalizado. Reemplace los siguientes marcadores de posición con sus valores:Marcador de posiciónDescripciónspec.networkPeers.providerNameNombre del proveedor de nube. Especifique
AZURE.spec.networkPeers.atlasCidrBlockBloque CIDR de Atlas para el que Atlas Kubernetes Operator crea un nuevo contenedor. Si no especificas
atlasCidrBlock, debes especificar elcontainerIdde un contenedor existente. Para aprender más, consulta la sección Use Existing Container de este procedimiento.spec.networkPeers.containerRegion(Opcional) Región de Azure en la que Atlas Kubernetes Operator crea un nuevo contenedor. Si no se especifica ni un
containerRegionni uncontainerId, Atlas Kubernetes Operator creará un nuevo contenedor en la misma región que elaccepterRegionName.spec.networkPeers.accepterRegionNameRegión de Azure para su VPC.
spec.networkPeers.azureSubscriptionIdIdentificador único de su suscripción de Azure. Azure muestra el ID de suscripción en la página de detalles de la suscripción.
spec.networkPeers.resourceGroupNameEtiqueta legible para humanos que identifica el grupo de recursos de Azure que contiene la VPC. Azure muestra el nombre del grupo de recursos en la página de detalles del grupo de recursos.
spec.networkPeers.azureDirectoryIdIdentificador único de su inquilino de Azure Active Directory. Azure lo muestra como
Tenant IDen la página de propiedades del inquilino.spec.networkPeers.vnetNameEtiqueta legible por humanos que identifica tu Azure VNET. Azure muestra el nombre de VNET en la página de detalles de tu VNET.
Ejecuta el siguiente comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "AZURE" atlasCidrBlock: "10.8.0.0/21" containerRegion: "US_WEST" azureSubscriptionId: "12345678" resourceGroupName: "my-group" azureDirectoryId: "x0xxx10-00x0-0x01-0xxx-x0x0x01xx100" vnetName: "my-vnet" EOF
Comprueba el estado de tu conexión VPC utilizando Atlas Kubernetes Operator.
Ejecute el siguiente comando para comprobar el estado de la conexión de VPC. El operador de Kubernetes de Atlas devuelve READY cuando se completa la conexión de interconexión de red.
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}'
READY
Especifica el parámetro spec.networkPeers.
Puede configurar el peering de red para utilizar un contenedor existente o uno nuevo.
Utilice un contenedor existente
Especifique el parámetro
spec.networkPeersAtlasProjecten el recurso personalizado. Reemplace los siguientes marcadores de posición con sus valores:Marcador de posiciónDescripciónspec.networkPeers.providerNameNombre del proveedor de nube. Especifique
GCP.spec.networkPeers.containerIdIdentificador único para el contenedor de emparejamiento de red que deseas usar. Si no especifica
containerId, debe estableceratlasCIDRblockycontainerRegion. Para aprender más, consulta la sección Create New Container en este procedimiento.spec.networkPeers.gcpProjectIdIdentificador único para tu proyecto de Google Cloud. Google Cloud muestra el ID del grupo en la página de detalles del Proyecto.
spec.networkPeers.routeTableCidrBlockBloque CIDR para tu VPC de Google Cloud. Google Cloud muestra el bloque CIDR en la página de detalles de tu VPC.
spec.networkPeers.networkNameEtiqueta legible por humanos para el VPC de Google Cloud. Google Cloud muestra el nombre de la red en la página de detalles de tu VPC.
Ejecuta el siguiente comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "GCP" containerId: "6dc5f17280eef56a459fa3fb" gcpProjectId: "12345678" networkName: "my-vpc" EOF
Crear un nuevo contenedor
Especifique el parámetro
spec.networkPeersAtlasProjecten el recurso personalizado. Reemplace los siguientes marcadores de posición con sus valores:Marcador de posiciónDescripciónspec.networkPeers.providerNameNombre del proveedor de nube. Especifique
GCP.spec.networkPeers.atlasCidrBlockBloque CIDR de Atlas para el que Atlas Kubernetes Operator crea un nuevo contenedor. Si no especificas
atlasCidrBlock, debes especificar elcontainerIdde un contenedor existente. Para aprender más, consulta la sección Use Existing Container de este procedimiento.spec.networkPeers.containerRegionregión de Google Cloud para tu VPC.
spec.networkPeers.containerRegionRegión de Google Cloud en la que el operador de Kubernetes de Atlas crea un nuevo contenedor. Si no
containerRegionespecifica, debe especificarcontainerIdde un contenedor existente. Para obtener más información, consulte la Use Existing Container sección de este procedimiento.spec.networkPeers.gcpProjectIdIdentificador único para tu proyecto de Google Cloud. Google Cloud muestra el ID del grupo en la página de detalles del Proyecto.
spec.networkPeers.routeTableCidrBlockBloque CIDR para tu VPC de Google Cloud. Google Cloud muestra el bloque CIDR en la página de detalles de tu VPC.
spec.networkPeers.networkNameEtiqueta legible por humanos para el VPC de Google Cloud. Google Cloud muestra el nombre de la red en la página de detalles de tu VPC.
Ejecuta el siguiente comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasProject metadata: name: my-project spec: name: Test Atlas Operator Project networkPeers: - providerName: "GCP" atlasCidrBlock: "10.8.0.0/21" gcpProjectId: "12345678" networkName: "my-vpc" EOF
Verifica el estado de PENDING ACCEPTANCE.
Ejecuta el siguiente comando:
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}' PENDING ACCEPTANCE Si el valor de
statusesPENDING ACCEPTANCE, pasa al siguiente paso. Si elstatusno esPENDING ACCEPTANCE, espera unos minutos y vuelve a intentar este paso.
Cree la conexión de emparejamiento de VPC en Google Cloud.
Para obtener más información, consulta Uso de emparejamiento de red de VPC.
Comprueba el estado de tu conexión VPC utilizando Atlas Kubernetes Operator.
Vuelve a ejecutar el siguiente comando para comprobar el estado de la conexión VPC. Atlas Kubernetes Operator devuelve READY cuando se completa la conexión peering de red.
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}'
READY