Observação
Este recurso não está disponível para nenhuma das seguintes implantações:
Instâncias sem servidor
M0clustersM2/M5clustersClusters flexíveis
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 ouOrganization 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çãoPortaAlvoPermitir
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 OwnerouOrganization 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çãoazureSubscriptionIdIdentificador exclusivo da assinatura do Azure na qual a VNet reside.
resourceGroupNameNome do seu grupo de recursos do Azure.
vnetNameNome 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 OwnerouOrganization 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.networkPeersnoAtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerNameNome do fornecedor de nuvem. Especifique
AWS.spec.networkPeers.containerIdIdentificador exclusivo do contêiner de emparelhamento de rede que você deseja usar. Se você não especificar
containerId, deverá definiratlasCIDRblock. Para saber mais, consulte a seção Create New Container neste procedimento.spec.networkPeers.accepterRegionNameRegião doAmazon Web Services para sua VPC.
spec.networkPeers.awsAccountIdIdentificador 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.routeTableCidrBlockBloco 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.vpcIdIdentificador 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.networkPeersnoAtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerNameNome do fornecedor de nuvem. Especifique
AWS.spec.networkPeers.atlasCidrBlockBloco CIDR do Atlas para o qual o Atlas Kubernetes Operator cria um novo contêiner. Se você não especificar
atlasCidrBlock, você deverá especificar ocontainerIdde 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 umcontainerId, o Atlas Kubernetes Operator criará um novo contêiner na mesma região doaccepterRegionName.spec.networkPeers.accepterRegionNameRegião doAmazon Web Services para sua VPC.
spec.networkPeers.awsAccountIdIdentificador 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.routeTableCidrBlockBloco 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.vpcIdIdentificador 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
statusNameforWAITING FOR USER, prossiga para a próxima etapa. Se ostatusNamenão forWAITING 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.networkPeersnoAtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerNameNome do fornecedor de nuvem. Especifique
AZURE.spec.networkPeers.containerIdIdentificador exclusivo do container de Peering de rede que você deseja usar. Se você não especificar
containerId, deverá definiratlasCIDRblock. Para saber mais, consulte a seção Create New Container neste procedimento.spec.networkPeers.accepterRegionNameRegião do Azure para sua VPC.
spec.networkPeers.azureSubscriptionIdIdentificador exclusivo para sua assinatura do Azure . O Azure exibe a ID da assinatura na página de detalhes da assinatura.
spec.networkPeers.resourceGroupNameEtiqueta 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.azureDirectoryIdIdentificador 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.vnetNameEtiqueta 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.networkPeersnoAtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerNameNome do fornecedor de nuvem. Especifique
AZURE.spec.networkPeers.atlasCidrBlockBloco CIDR do Atlas para o qual o Atlas Kubernetes Operator cria um novo contêiner. Se você não especificar
atlasCidrBlock, você deverá especificar ocontainerIdde 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 umcontainerId, o Atlas Kubernetes Operator criará um novo contêiner na mesma região doaccepterRegionName.spec.networkPeers.accepterRegionNameRegião do Azure para sua VPC.
spec.networkPeers.azureSubscriptionIdIdentificador exclusivo para sua assinatura do Azure . O Azure exibe a ID da assinatura na página de detalhes da assinatura.
spec.networkPeers.resourceGroupNameEtiqueta 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.azureDirectoryIdIdentificador 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.vnetNameEtiqueta 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.networkPeersnoAtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerNameNome do fornecedor de nuvem. Especifique
GCP.spec.networkPeers.containerIdIdentificador exclusivo do contêiner de emparelhamento de rede que você deseja usar. Se você não especificar
containerId, deverá definiratlasCIDRblockecontainerRegion. Para saber mais, consulte a seção Create New Container neste procedimento.spec.networkPeers.gcpProjectIdIdentificador 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.routeTableCidrBlockBloco 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.networkNameEtiqueta 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.networkPeersnoAtlasProjectRecurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerNameNome do fornecedor de nuvem. Especifique
GCP.spec.networkPeers.atlasCidrBlockBloco CIDR do Atlas para o qual o Atlas Kubernetes Operator cria um novo contêiner. Se você não especificar
atlasCidrBlock, você deverá especificar ocontainerIdde um contêiner existente. Para saber mais, consulte a seção Use Existing Container neste procedimento.spec.networkPeers.containerRegionRegião doGoogle Cloud Platform para sua VPC.
spec.networkPeers.containerRegionRegião doGoogle Cloud Platform na qual Atlas Kubernetes Operator cria um novo container. Se você não especificar
containerRegion, você deverá especificar ocontainerIdde um contêiner existente. Para saber mais, consulte a seção Use Existing Container neste procedimento.spec.networkPeers.gcpProjectIdIdentificador 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.routeTableCidrBlockBloco 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.networkNameEtiqueta 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
statusforPENDING ACCEPTANCE, prossiga para a próxima etapa. Se ostatusnão forPENDING 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