Observação
- Esta funcionalidade não está disponÃvel para clusters
M0e clustersFlex.
O Atlas oferece suporte a conexões de peering de rede para clusters dedicados hospedados na AWS, Google Cloud e Azure, e em clusters fragmentados em multinuvem .
O peering de rede estabelece uma conexão privada entre a Atlas VPC e a VPC do seu fornecedor 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 peering de rede com o Atlas Kubernetes Operator, você pode especificar e atualizar o spec.networkPeers para o recurso personalizadoAtlasProject . 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 função
Project OwnerouOrganization Ownerno Atlas.Se ainda não tiver feito isso, crie seu VPC no AWS. Para saber mais, consulte Introdução ao Amazon VPC.
Uma 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.
A função
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 VPCs do Azure, consulte a guia
Azureem 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.
A função
Project OwnerouOrganization Ownerno Atlas.Uma conta de usuário do Google Cloud 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 no Google Cloud, consulte Criar e modificar redes virtuais de nuvem privada (VPC).
Se ainda não tiver feito isso, crie seu VPC no Google Cloud. 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 o parâmetro spec.networkPeers.
Você pode configurar o Peering para usar um container existente ou um novo container.
Usar um container Existente
Especifique o spec.networkPeers no
AtlasProjectRecurso Personalizado. Substitua os seguintes placeholders pelos seus valores:Espaço reservadoDescriçãospec.networkPeers.providerNameNome do fornecedor de nuvem. Especifique
AWS.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 AWS para sua VPC.
spec.networkPeers.awsAccountIdIdentificador exclusivo da sua conta AWS . AWS 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 sua AWS VPC. A AWS exibe o bloco CIDR na página de detalhes da sua VPC.
spec.networkPeers.vpcIdIdentificador exclusivo para sua AWS VPC. A AWS exibe a ID da VPC 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: "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 spec.networkPeers no
AtlasProjectRecurso Personalizado. Substitua os seguintes placeholders pelos 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 AWS 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 que oaccepterRegionName.spec.networkPeers.accepterRegionNameRegião AWS para sua VPC.
spec.networkPeers.awsAccountIdIdentificador exclusivo da sua conta AWS . AWS 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 sua AWS VPC. A AWS exibe o bloco CIDR na página de detalhes da sua VPC.
spec.networkPeers.vpcIdIdentificador exclusivo para sua AWS VPC. A AWS exibe a ID da VPC 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: "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 status WAITING FOR USER.
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 emparelhamento VPC no AWS.
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 o parâmetro spec.networkPeers.
Você pode configurar o Peering para usar um container existente ou um novo container.
Usar um container Existente
Especifique o spec.networkPeers no
AtlasProjectRecurso Personalizado. Substitua os seguintes placeholders pelos 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 . OAzure 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. OAzure 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. OAzure 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 spec.networkPeers no
AtlasProjectRecurso Personalizado. Substitua os seguintes placeholders pelos 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 . OAzure 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. OAzure 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. OAzure 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 o parâmetro spec.networkPeers.
Você pode configurar o Peering para usar um container existente ou um novo container.
Usar um container Existente
Especifique o spec.networkPeers no
AtlasProjectRecurso Personalizado. Substitua os seguintes placeholders pelos 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 VPC do Google Cloud. O Google Cloud exibe o bloco CIDR na página de detalhes da sua VPC.
spec.networkPeers.networkNameEtiqueta legÃvel por humanos para sua VPC do Google Cloud. O Google Cloud 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 spec.networkPeers no
AtlasProjectRecurso Personalizado. Substitua os seguintes placeholders pelos 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 do Google Cloud para sua VPC.
spec.networkPeers.containerRegionRegião do Google Cloud na qual o 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 VPC do Google Cloud. O Google Cloud exibe o bloco CIDR na página de detalhes da sua VPC.
spec.networkPeers.networkNameEtiqueta legÃvel por humanos para sua VPC do Google Cloud. O Google Cloud 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 status PENDING ACCEPTANCE.
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 conexão de emparelhamento VPC no Google Cloud.
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