Configurar emparelhamento de rede
Nesta página
Observação
Este recurso não está disponível para nenhuma das seguintes implantações:
Instâncias sem servidor
M0
clustersM2/M5
clustersClusters 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 Owner
função ouOrganization Owner
no Atlas.Se ainda não tiver feito isso, crie seu VPC no Amazon Web Services. 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çãoPortaAlvoPermitirsaída27015-27017 inclusiveao seu CIDR do Atlas
Um cluster Kubernetes em execução com o Atlas Kubernetes Operator distribuído.
O papel
Project Owner
ouOrganization Owner
no 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 emparelhamento de rede conexões com Azure VPCs,
Azure
consulte a guia em Configurar uma conexão de peering 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.json
e 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.json
por detalhes sobre a VNet do Azure para a qual você deseja criar uma conexão de emparelhamento:VariávelDescriçãoazureSubscriptionId
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 Owner
ouOrganization Owner
no Atlas.Uma Google Cloud Platform conta de usuário do com uma política de usuário IAM e um administrador de rede de computação role que concede permissões para criar, modificar e excluir recursos de rede. Para saber mais sobre como gerenciar conexões e endpoints privados na Google Cloud Platform, consulte Criar e modificar redes virtuaisVPC de nuvem privada ( ).
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.networkPeers
noAtlasProject
Recurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerName
Nome do fornecedor de nuvem. EspecifiqueAWS
.spec.networkPeers.containerId
Identificador exclusivo do contêiner de emparelhamento de rede que você deseja usar. Se você não especificarcontainerId
, deverá definiratlasCIDRblock
. 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.networkPeers
noAtlasProject
Recurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerName
Nome do fornecedor de nuvem. EspecifiqueAWS
.spec.networkPeers.atlasCidrBlock
Bloco CIDR do Atlas para o qual o Atlas Kubernetes Operator cria um novo contêiner. Se você não especificaratlasCidrBlock
, você deverá especificar ocontainerId
de 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 umcontainerRegion
ou umcontainerId
, o Atlas Kubernetes Operator criará um novo contêiner na mesma região doaccepterRegionName
.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
statusName
forWAITING FOR USER
, prossiga para a próxima etapa. Se ostatusName
nã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.networkPeers
noAtlasProject
Recurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerName
Nome do fornecedor de nuvem. EspecifiqueAZURE
.spec.networkPeers.containerId
Identificador exclusivo do container de Peering de rede que você deseja usar. Se você não especificarcontainerId
, deverá definiratlasCIDRblock
. 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 comoTenant ID
na 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" atlasCidrBlock: "10.8.0.0/21" containerRegion: "US_WEST" 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.networkPeers
noAtlasProject
Recurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerName
Nome do fornecedor de nuvem. EspecifiqueAZURE
.spec.networkPeers.atlasCidrBlock
Bloco CIDR do Atlas para o qual o Atlas Kubernetes Operator cria um novo contêiner. Se você não especificaratlasCidrBlock
, você deverá especificar ocontainerId
de 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 umcontainerRegion
ou umcontainerId
, o Atlas Kubernetes Operator criará um novo contêiner na mesma região doaccepterRegionName
.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 comoTenant ID
na 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" accepterRegionName: "US_EAST_2" 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.networkPeers
noAtlasProject
Recurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerName
Nome do fornecedor de nuvem. EspecifiqueGCP
.spec.networkPeers.containerId
Identificador exclusivo do contêiner de emparelhamento de rede que você deseja usar. Se você não especificarcontainerId
, deverá definiratlasCIDRblock
econtainerRegion
. 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" routeTableCidrBlock: "10.0.0.0/24" networkName: "my-vpc" EOF
Criar um novo container
Especifique o parâmetro
spec.networkPeers
noAtlasProject
Recurso Personalizado. Substitua os seguintes espaços reservados por seus valores:Espaço reservadoDescriçãospec.networkPeers.providerName
Nome do fornecedor de nuvem. EspecifiqueGCP
.spec.networkPeers.atlasCidrBlock
Bloco CIDR do Atlas para o qual o Atlas Kubernetes Operator cria um novo contêiner. Se você não especificaratlasCidrBlock
, você deverá especificar ocontainerId
de 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 especificarcontainerRegion
, você deverá especificar ocontainerId
de 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" containerRegion: "us-east1" gcpProjectId: "12345678" routeTableCidrBlock: "10.0.0.0/24" 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
status
forPENDING ACCEPTANCE
, prossiga para a próxima etapa. Se ostatus
nã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