Nota
Esta función no está disponible para
M0clústeres yFlexclústeres.
Atlas admite conexiones de interconexión de redes para clústeres dedicados alojados en AWS, Google Cloud y Azure, y en clústeres fragmentados de múltiples nubes.
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 intercambio de redes entre clústeres implementados en una sola región en diferentes proveedores de nube.
Para administrar sus conexiones de interconexión de red con Atlas Kubernetes Operator, puede especificar y actualizar 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 mediante Atlas Kubernetes Operator, necesita:
Un clúster de Kubernetes en ejecución con Atlas Kubernetes Operator implementado.
El
Project Ownerrol oOrganization Owneren 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 regla 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 ejecución con Atlas Kubernetes Operator implementado.
El
Project Ownerrol oOrganization Owneren Atlas.Si aún no lo ha hecho, cree su red virtual en Azure. Para obtener más información, consulte Crear una red virtual mediante Azure Portal.
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.
Una entidad de servicio para el ID de la aplicación de intercambio de tráfico de Atlas.
Nota
Para obtener detalles sobre cómo Atlas crea conexiones de emparejamiento de red con VPCde Azure,
Azureconsulte la pestaña en Configurar una conexión de emparejamiento de red.Debe completar los siguientes pasos antes de crear cada conexión de emparejamiento de red de Azure:
Ejecute el siguiente comando de la CLI de Azure para crear una entidad de servicio mediante el identificador de aplicación de emparejamiento de Atlas especificado:
az ad sp create --id e90a1407-55c3-432d-9cb1-3638900a9d22 Solo tiene que hacer esto una vez por cada suscripción. Si recibe el siguiente mensaje, la entidad de servicio con el ID de la aplicación de emparejamiento de Atlas ya existe. Continúe con el siguiente paso.
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
peering-role.jsoncon detalles sobre la red virtual de Azure a 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 de la CLI de Azure para crear la definición de rol mediante el archivo
peering-role.json:az role definition create --role-definition peering-role.json Ejecute el comando CLI de Azure que se muestra a continuación para asignar el rol que creó a la entidad de 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 ejecución con Atlas Kubernetes Operator implementado.
El
Project Ownerrol oOrganization Owneren 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, consulta 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:
Especifique el spec.networkPeers parámetro.
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 la nube. Especifique
AWS.spec.networkPeers.containerIdIdentificador único del contenedor de interconexión de red que desea utilizar. Si no especifica
containerId, debe configuraratlasCIDRblock. Para obtener más información, consulte Create New Container sección de este procedimiento.spec.networkPeers.accepterRegionNameRegión de AWS para su 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 VPC de AWS. AWS muestra el bloque CIDR en la página de detalles de su VPC.
spec.networkPeers.vpcIdIdentificador único de su VPC de AWS. AWS muestra el ID de VPC en la página de detalles de su 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 la 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) Región de AWS en la que Atlas Kubernetes Operator crea un nuevo contenedor. Si no especifica
containerRegioncontainerIdni, Atlas Kubernetes Operator crea un nuevo contenedor en la misma regiónaccepterRegionNameque.spec.networkPeers.accepterRegionNameRegión de AWS para su 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 VPC de AWS. AWS muestra el bloque CIDR en la página de detalles de su VPC.
spec.networkPeers.vpcIdIdentificador único de su VPC de AWS. AWS muestra el ID de VPC en la página de detalles de su 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
Verifique el WAITING FOR USER estado.
Ejecuta el siguiente comando:
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.statusName}' WAITING FOR USER Si el valor
statusNameesWAITING FOR USER, continúe con el siguiente paso. Si el valorstatusNameno esWAITING FOR USER, espere unos minutos y vuelva a intentarlo.
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.
Verifique el estado de su conexión VPC usando Atlas Kubernetes Operator.
Ejecute el siguiente comando nuevamente para verificar 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.statusName}'
READY
Especifique el spec.networkPeers parámetro.
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 la nube. Especifique
AZURE.spec.networkPeers.containerIdIdentificador único del contenedor de interconexión de red que desea utilizar. Si no especifica
containerId, debe configuraratlasCIDRblock. Para obtener más información, consulte 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 identificador de la suscripción en su página de detalles.
spec.networkPeers.resourceGroupNameEtiqueta legible que identifica el grupo de recursos de Azure que contiene la VPC.Azure muestra el nombre del grupo de recursos en su página de detalles.
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 que identifica su red virtual de Azure. Azure muestra el nombre de la red virtual en su página de detalles.
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 la 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 especifica
containerRegioncontainerIdni, Atlas Kubernetes Operator crea un nuevo contenedor en la misma regiónaccepterRegionNameque.spec.networkPeers.accepterRegionNameRegión de Azure para su VPC.
spec.networkPeers.azureSubscriptionIdIdentificador único de su suscripción de Azure. Azure muestra el identificador de la suscripción en su página de detalles.
spec.networkPeers.resourceGroupNameEtiqueta legible que identifica el grupo de recursos de Azure que contiene la VPC.Azure muestra el nombre del grupo de recursos en su página de detalles.
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 que identifica su red virtual de Azure. Azure muestra el nombre de la red virtual en su página de detalles.
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
Verifique el estado de su conexión VPC usando 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
Especifique el spec.networkPeers parámetro.
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 la 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 para tu 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 la 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 su 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 para tu 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
Verifique el PENDING ACCEPTANCE estado.
Ejecuta el siguiente comando:
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}' PENDING ACCEPTANCE Si el valor
statusesPENDING ACCEPTANCE, continúe con el siguiente paso. Si el valorstatusno esPENDING ACCEPTANCE, espere unos minutos y vuelva a intentarlo.
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.
Verifique el estado de su conexión VPC usando Atlas Kubernetes Operator.
Ejecute el siguiente comando nuevamente para verificar 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