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 várias nuvens.
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.
O
Project Ownerpapel ouOrganization Ownerno Atlas.Se ainda não tiver feito isso, crie seu VPC no AWS.Para saber mais, consulte Comece a usar o 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
Project Ownerpapel ouOrganization 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
Azureguia em 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
Project Ownerpapel ouOrganization 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 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 doAmazon Web Services para sua VPC.
spec.networkPeers.awsAccountIdIdentificador exclusivo da sua conta AWS . A 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 sua VPC da Amazon Web Services. A Amazon Web Services exibe o bloco CIDR na página de detalhes da sua VPC.
spec.networkPeers.vpcIdIdentificador exclusivo para sua Amazon Web Services VPC. A Amazon Web Services exibe o 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 container existente. Para saber mais, consulte a seção Use Existing Container neste procedimento.spec.networkPeers.containerRegion(Opcional) Região Amazon Web Services 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 container na mesma região doaccepterRegionName.spec.networkPeers.accepterRegionNameRegião doAmazon Web Services para sua VPC.
spec.networkPeers.awsAccountIdIdentificador exclusivo da sua conta AWS . A 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 sua VPC da Amazon Web Services. A Amazon Web Services exibe o bloco CIDR na página de detalhes da sua VPC.
spec.networkPeers.vpcIdIdentificador exclusivo para sua Amazon Web Services VPC. A Amazon Web Services exibe o 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 . 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 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 container 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
containerRegionoucontainerIdum, o Atlas Kubernetes Operator criará um novo contêiner na mesma regiãoaccepterRegionNamedo.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 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 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 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 container 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 do Google Cloud na qual o Atlas Kubernetes Operator cria um novo container. Se você não
containerRegionespecificar, você deverá especificar ocontainerIdde um contêiner existente. Para saber mais, consulte a Use Existing Container seção 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 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