Observação
- Esta funcionalidade não está disponível para clusters - M0e clusters- Flex.
O Atlas oferece suporte a conexões de peering de rede para clusters dedicados hospedados no AWS, Google Cloud e Azure e em clusters fragmentados em multinuvem.
Um emparelhamento de rede estabelece uma conexão privada entre seu Atlas VPC e o VPC do seu provedor de nuvem. A conexão isola o tráfego de redes públicas para aumentar a segurança.
O Atlas não oferece suporte ao Peering entre clusters que você implementa em uma única região em diferentes fornecedor de nuvem.
Para gerenciar suas conexões de emparelhamento de rede com Atlas Kubernetes Operator, você pode especificar e atualizar o parâmetro spec.networkPeers para o AtlasProject Recurso Personalizado. Cada vez que você altera o campo spec em qualquer um dos recursos personalizados suportados, o Atlas Kubernetes Operator cria ou atualiza a configuração correspondente do Atlas .
Pré-requisitos
Para configurar o Peering utilizando Atlas Kubernetes Operator, você exige:
- Um cluster Kubernetes em execução com o Atlas Kubernetes Operator distribuído. 
- A - Project Ownerfunção ou- Organization Ownerno Atlas.
- Se ainda não tiver feito isso, crie seu VPC no Amazon Web Services. Para saber mais, consulte Introdução ao Amazon VPC. 
- A regra de tráfego de rede para tráfego de saída. - Defina a seguinte regra de tráfego de rede no seu grupo de segurança da AWS vinculado aos recursos que se conectam ao Atlas: PermissãoDireçãoPortaAlvo- Permitir - saída - 27015-27017 inclusive - ao seu CIDR do Atlas 
- Um cluster Kubernetes em execução com o Atlas Kubernetes Operator distribuído. 
- O papel - Project Ownerou- Organization Ownerno Atlas.
- Se ainda não tiver feito isso, crie sua VNet no Azure. Para saber mais, consulte Criar uma rede virtual usando o portal do Azure. 
- Azure roles necessários para configurar uma conexão de peering de rede. - Para saber mais, consulte as Permissões do Azure. 
- Um principal de serviço para o ID do aplicativo de emparelhamento Atlas . - Observação- Para obter detalhes sobre como o Atlas cria conexões de emparelhamento de rede com VPCsdo Azure, consulte a guia - Azureem Configurar uma conexão de emparelhamento de rede.- Você deve concluir as seguintes etapas antes de criar cada conexão de peering de rede Azure : - Execute o seguinte comando do Azure CLI para criar uma entidade de serviço utilizando o ID do aplicativo de emparelhamento Atlas especificado: - az ad sp create --id e90a1407-55c3-432d-9cb1-3638900a9d22 - Você só precisa fazer isso uma vez para cada assinatura. Se você receber a seguinte mensagem, a entidade de serviço com o ID do aplicativo de emparelhamento do Atlas já existe. Prossiga para a próxima etapa. - Another object with the same value for property servicePrincipalNames already exists. 
- Copie o seguinte arquivo de exemplo - peering-role.jsone salve-o em seu diretório de trabalho atual:- 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 - } 
- Substitua as variáveis em - peering-role.jsonpor detalhes sobre a VNet do Azure para a qual você deseja criar uma conexão de emparelhamento:VariávelDescrição- azureSubscriptionId- Identificador exclusivo da assinatura do Azure na qual a VNet reside. - resourceGroupName- Nome do seu grupo de recursos do Azure. - vnetName- Nome do seu Azure VNet. 
- Execute o seguinte comando CLI do Azure para criar a definição de função usando o arquivo - peering-role.json:- az role definition create --role-definition peering-role.json 
- Execute o comando CLI do Azure mostrado abaixo para atribuir a função que você criou ao principal de serviço. - Substitua as variáveis pelos mesmos valores que você usou no arquivo - 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>" 
 
- Um cluster Kubernetes em execução com o Atlas Kubernetes Operator distribuído. 
- O papel - Project Ownerou- Organization Ownerno Atlas.
- Uma conta de usuário do Google Cloud Platform com uma política de usuário IAM e uma função de administrador de rede de computação que concede permissões para criar, modificar e excluir recursos de rede. Para saber mais sobre como gerenciar endpoints e conexões privadas na Google Cloud Platform, consulte Criar e modificar redes VPC (VPC). 
- Se ainda não tiver feito isso, crie seu VPC no Google Cloud Platform. Para saber mais, consulte a documentação da GCP. 
Procedimento
Permita aos clientes se conectarem ao cluster do Atlas utilizando uma conexão de Peering de rede com o seguinte procedimento:
Especifique spec.networkPeers o parâmetro.
Você pode configurar o Peering para usar um container existente ou um novo container.
Usar um container Existente
- Especifique o parâmetro - spec.networkPeersno- AtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescrição- spec.networkPeers.providerName- Nome do fornecedor de nuvem. Especifique - AWS.- spec.networkPeers.containerId- Identificador exclusivo do contêiner de emparelhamento de rede que você deseja usar. Se você não especificar - containerId, deverá definir- atlasCIDRblock. Para saber mais, consulte a seção Create New Container neste procedimento.- spec.networkPeers.accepterRegionName- Região doAmazon Web Services para sua VPC. - spec.networkPeers.awsAccountId- Identificador exclusivo da sua conta do Amazon Web Services . Amazon Web Services exibe a ID da conta quando você clica no nome da conta no canto superior direito da página inicial do console. - spec.networkPeers.routeTableCidrBlock- Bloco CIDR para o do Amazon Web Services VPC. Amazon Web Services exibe o bloco CIDR na página de detalhes da sua VPC. - spec.networkPeers.vpcId- Identificador exclusivo para o seu Amazon Web Services VPC. Amazon Web Services exibe a VPC ID VPCda na página de detalhes da sua . 
- Execute o seguinte 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 
Criar um novo container
- Especifique o parâmetro - spec.networkPeersno- AtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescrição- spec.networkPeers.providerName- Nome do fornecedor de nuvem. Especifique - AWS.- spec.networkPeers.atlasCidrBlock- Bloco CIDR do Atlas para o qual o Atlas Kubernetes Operator cria um novo contêiner. Se você não especificar - atlasCidrBlock, você deverá especificar o- containerIdde um contêiner existente. Para saber mais, consulte a seção Use Existing Container neste procedimento.- spec.networkPeers.containerRegion- (Opcional) Região do Amazon Web Services na qual Atlas Kubernetes Operator cria um novo container. Se você não especificar um - containerRegionou um- containerId, o Atlas Kubernetes Operator criará um novo contêiner na mesma região do- accepterRegionName.- spec.networkPeers.accepterRegionName- Região doAmazon Web Services para sua VPC. - spec.networkPeers.awsAccountId- Identificador exclusivo da sua conta do Amazon Web Services . Amazon Web Services exibe a ID da conta quando você clica no nome da conta no canto superior direito da página inicial do console. - spec.networkPeers.routeTableCidrBlock- Bloco CIDR para o do Amazon Web Services VPC. Amazon Web Services exibe o bloco CIDR na página de detalhes da sua VPC. - spec.networkPeers.vpcId- Identificador exclusivo para o seu Amazon Web Services VPC. Amazon Web Services exibe a VPC ID VPCda na página de detalhes da sua . 
- Execute o seguinte 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 o WAITING FOR USER status.
- Execute o seguinte comando: - kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.statusName}' - WAITING FOR USER 
- Se o valor - statusNamefor- WAITING FOR USER, prossiga para a próxima etapa. Se o- statusNamenão for- WAITING FOR USER, aguarde alguns minutos e tente esta etapa novamente.
Aceite a conexão de VPC emparelhamento VPC no Amazon Web Amazon Web Services Services.
Para saber mais, consulte Aceitar uma conexão de emparelhamento VPC.
Verifique o status da sua conexão VPC usando o Atlas Kubernetes Operator.
Execute o seguinte comando novamente para verificar o status da conexão VPC . O Atlas Kubernetes Operator retorna READY quando a conexão de peering de rede está concluída.
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.statusName}' 
READY 
Especifique spec.networkPeers o parâmetro.
Você pode configurar o Peering para usar um container existente ou um novo container.
Usar um container Existente
- Especifique o parâmetro - spec.networkPeersno- AtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescrição- spec.networkPeers.providerName- Nome do fornecedor de nuvem. Especifique - AZURE.- spec.networkPeers.containerId- Identificador exclusivo do container de Peering de rede que você deseja usar. Se você não especificar - containerId, deverá definir- atlasCIDRblock. Para saber mais, consulte a seção Create New Container neste procedimento.- spec.networkPeers.accepterRegionName- Região do Azure para sua VPC. - spec.networkPeers.azureSubscriptionId- Identificador exclusivo para sua assinatura do Azure . O Azure exibe a ID da assinatura na página de detalhes da assinatura. - spec.networkPeers.resourceGroupName- Etiqueta legível por humanos que identifica o grupo de recursos do Azure que contém a VPC. O Azure exibe o nome do grupo de recursos na página de detalhes do grupo de recursos. - spec.networkPeers.azureDirectoryId- Identificador exclusivo do seu locatário do Azure Active Directory. O Azure exibe isso como - Tenant IDna página de propriedades do locatário.- spec.networkPeers.vnetName- Etiqueta legível por humanos que identifica seu Azure VNET. O Azure exibe o nome da VNET na página de detalhes da sua VNET. 
- Execute o seguinte 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 
Criar um novo container
- Especifique o parâmetro - spec.networkPeersno- AtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescrição- spec.networkPeers.providerName- Nome do fornecedor de nuvem. Especifique - AZURE.- spec.networkPeers.atlasCidrBlock- Bloco CIDR do Atlas para o qual o Atlas Kubernetes Operator cria um novo contêiner. Se você não especificar - atlasCidrBlock, você deverá especificar o- containerIdde um contêiner existente. Para saber mais, consulte a seção Use Existing Container neste procedimento.- spec.networkPeers.containerRegion- (Opcional) Região do Azure na qual o Atlas Kubernetes Operator cria um novo container. Se você não especificar um - containerRegionou um- containerId, o Atlas Kubernetes Operator criará um novo contêiner na mesma região do- accepterRegionName.- spec.networkPeers.accepterRegionName- Região do Azure para sua VPC. - spec.networkPeers.azureSubscriptionId- Identificador exclusivo para sua assinatura do Azure . O Azure exibe a ID da assinatura na página de detalhes da assinatura. - spec.networkPeers.resourceGroupName- Etiqueta legível por humanos que identifica o grupo de recursos do Azure que contém a VPC. O Azure exibe o nome do grupo de recursos na página de detalhes do grupo de recursos. - spec.networkPeers.azureDirectoryId- Identificador exclusivo do seu locatário do Azure Active Directory. O Azure exibe isso como - Tenant IDna página de propriedades do locatário.- spec.networkPeers.vnetName- Etiqueta legível por humanos que identifica seu Azure VNET. O Azure exibe o nome da VNET na página de detalhes da sua VNET. 
- Execute o seguinte 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 o status da sua conexão VPC usando o Atlas Kubernetes Operator.
Execute o comando a seguir para verificar o status da conexão VPC . O Atlas Kubernetes Operator retorna READY quando a conexão de peering de rede está concluída.
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}' 
READY 
Especifique spec.networkPeers o parâmetro.
Você pode configurar o Peering para usar um container existente ou um novo container.
Usar um container Existente
- Especifique o parâmetro - spec.networkPeersno- AtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescrição- spec.networkPeers.providerName- Nome do fornecedor de nuvem. Especifique - GCP.- spec.networkPeers.containerId- Identificador exclusivo do contêiner de emparelhamento de rede que você deseja usar. Se você não especificar - containerId, deverá definir- atlasCIDRblocke- containerRegion. Para saber mais, consulte a seção Create New Container neste procedimento.- spec.networkPeers.gcpProjectId- Identificador exclusivo do seu projeto da Google Cloud Platform . Google Cloud Platform exibe o ID do projeto na página de detalhes do projeto. - spec.networkPeers.routeTableCidrBlock- Bloco CIDR para sua do Google Cloud Platform VPC. Google Cloud Platform exibe o bloco CIDR na página de detalhes da sua VPC. - spec.networkPeers.networkName- Etiqueta legível por humanos para sua Google Cloud Platform VPC. Google Cloud Platform exibe o nome da rede na página de detalhes da sua VPC. 
- Execute o seguinte 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 
Criar um novo container
- Especifique o parâmetro - spec.networkPeersno- AtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescrição- spec.networkPeers.providerName- Nome do fornecedor de nuvem. Especifique - GCP.- spec.networkPeers.atlasCidrBlock- Bloco CIDR do Atlas para o qual o Atlas Kubernetes Operator cria um novo contêiner. Se você não especificar - atlasCidrBlock, você deverá especificar o- containerIdde um contêiner existente. Para saber mais, consulte a seção Use Existing Container neste procedimento.- spec.networkPeers.containerRegion- Região doGoogle Cloud Platform para sua VPC. - spec.networkPeers.containerRegion- Região doGoogle Cloud Platform na qual Atlas Kubernetes Operator cria um novo container. Se você não especificar - containerRegion, você deverá especificar o- containerIdde um contêiner existente. Para saber mais, consulte a seção Use Existing Container neste procedimento.- spec.networkPeers.gcpProjectId- Identificador exclusivo do seu projeto da Google Cloud Platform . Google Cloud Platform exibe o ID do projeto na página de detalhes do projeto. - spec.networkPeers.routeTableCidrBlock- Bloco CIDR para sua do Google Cloud Platform VPC. Google Cloud Platform exibe o bloco CIDR na página de detalhes da sua VPC. - spec.networkPeers.networkName- Etiqueta legível por humanos para sua Google Cloud Platform VPC. Google Cloud Platform exibe o nome da rede na página de detalhes da sua VPC. 
- Execute o seguinte 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 o PENDING ACCEPTANCE status.
- Execute o seguinte comando: - kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}' - PENDING ACCEPTANCE 
- Se o valor - statusfor- PENDING ACCEPTANCE, prossiga para a próxima etapa. Se o- statusnão for- PENDING ACCEPTANCE, aguarde alguns minutos e tente esta etapa novamente.
Crie a VPC conexão de emparelhamento VPC no Google Cloud Platform Google Cloud Platform.
Para saber mais, consulte Como usar o emparelhamento de rede VPC.
Verifique o status da sua conexão VPC usando o Atlas Kubernetes Operator.
Execute o seguinte comando novamente para verificar o status da conexão VPC . O Atlas Kubernetes Operator retorna READY quando a conexão de peering de rede está concluída.
kubectl get atlasprojects my-project -o=jsonpath='{.status.networkPeers.status}' 
READY