Observação
O Atlas desativou os clusters M2
e M5
e as instâncias sem servidor. Em um futuro próximo, o Atlas migrará automaticamente todos os clusters M2
e M5
para clusters Flex. Para instâncias sem servidor, o Atlas determinará se você deve migrar as instâncias para cluster livre, cluster flexível ou cluster dedicado de acordo com seu uso e, em seguida, migrar as instâncias sem servidor automaticamente.
Para preservar a compatibilidade com versões anteriores das APIs por um período de tempo, o Atlas continuará permitindo que esses clusters migrados sejam gerenciados por meio das mesmas APIs (antigas e novas APIs), inclusive ao usar o Atlas Kubernetes Operator. A compatibilidade com versões anteriores das APIs permanecerá em vigor até 2026 de janeiro, quando as APIs antigas serão removidas e apenas as APIs relacionadas a clusters Flex permanecerão em vigor.
O suporte para endpoints privados em instâncias sem servidor terminará em 2025 de março. Você deve atualizar suas configurações do Atlas Kubernetes Operator para remover endpoints privados até março de 2025. Você deve remover todas as funcionalidades restantes de instância M2
, M5
e sem servidor das configurações do Atlas Kubernetes Operator antes de janeiro de 2026.
Se suas cargas de trabalho exigirem endpoints privados ou backup contínuo e restauração point-in-time, mude para clusters dedicados do Atlas . Para saber mais, consulte Migration to Flex Clusters e o Atlas Flex Migration Guide.
O Atlas Kubernetes Operator oferece suporte ao gerenciamento de endpoints privados para instâncias sem servidor nas seguintes plataformas:
Amazon Web Services usando o AWS PrivateLink funcionalidade.
Azure usando a funcionalidade Azure Private Link.
Observação
As instâncias sem servidor não oferecem suporte ao Private Service Connect. Se você precisar configurar o Private Service Connect, use um cluster dedicado.
Antes de começar, consulte managed endpoints privados.
Procedimento
Para permitir que os clientes se conectem a instâncias sem servidor do Atlas utilizando endpoints privados:
Especifique spec.serverlessSpec.privateEndpoints
o parâmetro.
Especifique o parâmetro spec.serverlessSpec.privateEndpoints
para o Recurso Personalizado AtlasDeployment
. No campo spec.serverlessSpec.privateEndpoints.name
, especifique um rótulo exclusivo para identificar o endpoint privado e execute o seguinte comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: atlas-deployment-serverless spec: projectRef: name: my-project serverlessSpec: name: serverless-instance tags: - key: "environment" value: "production" providerSettings: providerName: SERVERLESS backingProviderName: AWS regionName: US_EAST_1 privateEndpoints: - name: "{unique-private-endpoint-label}" EOF
O Atlas cria os recursos de VPC . Isso pode levar alguns minutos para ser concluído.
Encontre os nomes de serviço para seus endpoints privados.
Execute o seguinte comando:
kubectl get atlasdeployment atlas-deployment-serverless -o yaml Observe a string de nome de serviço para cada endpoint privado dentro do campo
status.serverlessPrivateEndpoints.EndpointServiceName
do Recurso Personalizado doAtlasDeployment
.
Use a Amazon Web Services CLI para configurar cada endpoint privado.
Para criar o endpoint da interface VPC do seu aplicativo:
Copie o seguinte comando:
aws ec2 create-vpc-endpoint --vpc-id {your-application-vpc-id} --region {aws-region} --service-name {service-name-string} --vpc-endpoint-type Interface --subnet-ids {your-application-subnet-ids} Substitua os seguintes placeholders pelos detalhes sobre sua Amazon Web Services VPC:
your-application-vpc-id
String exclusiva que identifica o emparelhamento VPC da AWS. Encontre esse valor no dashboard da VPC em sua conta da AWS .
aws-region
Etiqueta que identifica a região do Amazon Web Services do endpoint privado.
service-name-string
Sequência exclusiva que identifica o nome do serviço para seu endpoint privado. Encontre este valor dentro do campo
status.serverlessPrivateEndpoints.EndpointServiceName
do Recurso PersonalizadoAtlasDeployment
.your-application-subnet-ids
Strings únicas que identificam as sub-redes que seu Amazon Web Services VPC usa. Separe cada sub-rede com um espaço. Encontre esses valores no dashboard Subnet da sua conta Amazon Web Services .
IMPORTANTE: você deve especificar pelo menos uma sub-rede. Caso contrário, Amazon Web Services não provisionará um ponto de extremidade da interface à sua VPC. Um ponto de conexão da ponto de extremidade da interface é necessário para que os clientes em sua VPC enviem tráfego para os endpoints privados.
Execute o comando com a do Amazon Web Services.CLI
Observe o valor
VpcEndpointId
na saída.Exemplo
"VpcEndpoint": { "VpcEndpointId": "vpce-XXXXXX", "VpcEndpointType": "Interface", "VpcId": "vpc-XXXXX", "ServiceName": "com.amazonaws.vpce.{aws-region}.vpce-svc-XXXX", "State": "pendingAcceptance",
Para saber mais,consulte Criar um ponto de conexão da interface na documentação do Amazon Web Services .
Atualize o spec.serverlessSpec.privateEndpoints
parâmetro.
Atualize o parâmetro spec.serverlessSpec.privateEndpoints
para o Recurso PersonalizadoAtlasDeployment
. Substitua o vpce-id
pelos valores VpcEndpointId
para seus endpoints privados e execute o seguinte comando:
Observação
Você pode encontrar o identificador exclusivo da AWS VPC de emparelhamento no dashboard da VPC em sua conta AWS .
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: atlas-deployment-serverless spec: projectRef: name: my-project serverlessSpec: name: serverless-instance tags: - key: "environment" value: "production" providerSettings: providerName: SERVERLESS backingProviderName: AWS regionName: US_EAST_1 privateEndpoints: - name: "{unique-private-endpoint-label}" cloudProviderEndpointID: "{vpce-id}" EOF
Recupere o segredo que o Atlas Kubernetes Operator criou para conectar ao cluster.
Copie o seguinte comando:
Importante
O comando a seguir requer
jq
1.6 ou superior.kubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)'; Substitua os seguintes espaços reservados pelos detalhes dos seus recursos personalizados:
my-project
Especifique o valor do campo
metadata
do seu Recurso PersonalizadoAtlasProject
.my-atlas-cluster
Especifique o valor do campo
metadata
do seu Recurso PersonalizadoAtlasDeployment
.my-database-user
Especifique o valor do campo
metadata
do seu Recurso PersonalizadoAtlasDatabaseUser
.Execute o comando.
Observação
Sua string de conexão será diferente do exemplo a seguir. Se você tiver vários endpoints privados, o segredo conterá vários campos
connectionStringPrivate
econnectionStringPrivateSvr
com o sufixo numérico apropriado (por exemplo,connectionStringPrivate1
,connectionStringPrivate2
e assim por diante).{ "connectionStringPrivate": "mongodb://pl-0-eastus2.uzgh6.mongodb.net:1024,pl-0-eastus2.uzgh6.mongodb.net:1025,pl-0-eastus2.uzgh6.mongodb.net:1026/?ssl=truereplicaSet=atlas-18bndf-shard-0", "connectionStringPrivateSrv": "mongodb+srv://cluster0-pl-0.uzgh6.mongodb.net", "password": "P@@sword%", "username": "theuser" } Você pode usar este segredo em seu aplicativo:
containers: - name: test-app env: - name: "CONNECTION_STRING" valueFrom: secretKeyRef: name: my-project-my-atlas-cluster-my-database-user key: connectionStringPrivate
Especifique spec.serverlessSpec.privateEndpoints
o parâmetro.
Especifique o parâmetro spec.serverlessSpec.privateEndpoints
para o Recurso Personalizado AtlasDeployment
. No campo spec.serverlessSpec.privateEndpoints.name
, especifique um rótulo exclusivo para identificar o endpoint privado e execute o seguinte comando:
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: atlas-deployment-serverless spec: projectRef: name: my-project serverlessSpec: name: serverless-instance tags: - key: "environment" value: "production" providerSettings: providerName: SERVERLESS backingProviderName: AWS regionName: US_EAST_1 privateEndpoints: - name: "{unique-private-endpoint-label}" EOF
O Atlas cria os recursos VNET. Isso pode levar alguns minutos para ser concluído.
Desative as políticas de rede de endpoints privados.
O Atlas não aceita políticas de rede para endpoints privados.
Copie o seguinte comando:
az network vnet subnet update --resource-group {resource-group-name} --vnet-name {vnet-name} --name {subnet-name} --disable-private-endpoint-network-policies true Substitua os seguintes espaços reservados pelos detalhes sobre sua VNet do Azure :
resource-group-name
Etiqueta legível por humanos para o grupo de recursos que contém a VNet que você deseja usar para se conectar ao Atlas. Encontre esse valor na página Resource Group Properties em seu dashboard do Azure .
vnet-name
Etiqueta legível por humanos que identifica a VNet que você deseja usar para se conectar ao Atlas. Encontre esse valor na página Virtual Network em seu dashboard do Azure .
subnet-name
Etiqueta legível por humanos que identifica a sub-rede em sua rede virtual do Azure . Encontre esse valor na página Virtual Network Subnets em seu dashboard do Azure .
Execute o comando com o Azure CLI.
Para saber mais,consulte as políticas de rede Gerenciar para endpoints privados na documentação do Azure .
Encontre as IDs e os nomes de serviço dos seus endpoints privados.
Execute o seguinte comando:
kubectl get atlasdeployment atlas-deployment-serverless -o yaml Observe o ID do recurso de serviço e o nome do serviço para cada endpoint privado nos campos
status.serverlessPrivateEndpoints.PrivateLinkServiceResourceId
estatus.serverlessPrivateEndpoints.EndpointServiceName
doAtlasDeployment
Recurso Personalizado.
Utilize o Azure CLI para configurar cada endpoint privado.
Para criar seu endpoint privado:
Copie o seguinte comando:
az network private-endpoint create --resource-group {resource-group-name} --name {endpoint-name} --vnet-name {vnet-name} --subnet {subnet-name} --private-connection-resource-id {serviceResourceId} --connection-name {serviceName} --manual-request true Substitua os seguintes espaços reservados pelos detalhes sobre sua VNet do Azure :
resource-group-name
Etiqueta legível por humanos para o grupo de recursos que contém a VNet que você deseja usar para se conectar ao Atlas. Encontre esse valor na página Resource Group Properties em seu dashboard do Azure .
endpoint-name
Etiqueta legível para humanos que identifica seu endpoint privado. Especifique isso agora.
vnet-name
Etiqueta legível por humanos que identifica a VNet que você deseja usar para se conectar ao Atlas. Encontre esse valor na página Virtual Network em seu dashboard do Azure .
subnet-name
Etiqueta legível por humanos que identifica a sub-rede em sua rede virtual do Azure . Encontre esse valor na página Virtual Network Subnets em seu dashboard do Azure .
serviceResourceId
string exclusiva que identifica o recurso de serviço para seu endpoint privado. Encontre este valor no campo
status.serverlessPrivateEndpoints.PrivateLinkServiceResourceId
do Recurso PersonalizadoAtlasDeployment
.serviceName
Sequência exclusiva que identifica o nome do serviço para seu endpoint privado. Encontre este valor dentro do campo
status.serverlessPrivateEndpoints.EndpointServiceName
do Recurso PersonalizadoAtlasDeployment
.Execute o comando com o Azure CLI.
Atualize o spec.serverlessPrivateEndpoints
parâmetro.
Atualize o parâmetro spec.serverlessSpec.privateEndpoints
para o AtlasDeployment
Recurso Personalizado. Especifique as informações de ID do recurso e endereço IP dos seus endpoints privados e execute o seguinte comando:
Observação
A página Properties no painel do Azure exibe o identificador exclusivo do endpoint privado que você criou no campo Resource ID .
A página Overview no painel do Azure exibe o endereço IP privado da interface de rede do endpoint privado que você criou no campo Private IP .
cat <<EOF | kubectl apply -f - apiVersion: atlas.mongodb.com/v1 kind: AtlasDeployment metadata: name: atlas-deployment-serverless spec: projectRef: name: my-project serverlessSpec: name: serverless-instance tags: - key: "environment" value: "production" providerSettings: providerName: SERVERLESS backingProviderName: AWS regionName: US_EAST_1 privateEndpoints: - name: "{unique-private-endpoint-label}" cloudProviderEndpointID: "{resource-id}" privateEndpointIpAddress: "{private-ip}" EOF
Recupere o segredo que o Atlas Kubernetes Operator criou para conectar ao cluster.
Copie o seguinte comando:
Importante
O comando a seguir requer
jq
1.6 ou superior.kubectl get secret {my-project}-{my-atlas-cluster}-{my-database-user} -o json | jq -r '.data | with_entries(.value |= @base64d)'; Substitua os seguintes espaços reservados pelos detalhes dos seus recursos personalizados:
my-project
Especifique o valor do campo
metadata
do seu Recurso PersonalizadoAtlasProject
.my-atlas-cluster
Especifique o valor do campo
metadata
do seu Recurso PersonalizadoAtlasDeployment
.my-database-user
Especifique o valor do campo
metadata
do seu Recurso PersonalizadoAtlasDatabaseUser
.Execute o comando.
Observação
Sua string de conexão será diferente do exemplo a seguir. Se você tiver vários endpoints privados, o segredo conterá vários campos
connectionStringPrivate
econnectionStringPrivateSvr
com o sufixo numérico apropriado (por exemplo,connectionStringPrivate1
,connectionStringPrivate2
e assim por diante).{ "connectionStringPrivate": "mongodb://pl-0-eastus2.uzgh6.mongodb.net:1024,pl-0-eastus2.uzgh6.mongodb.net:1025,pl-0-eastus2.uzgh6.mongodb.net:1026/?ssl=truereplicaSet=atlas-18bndf-shard-0", "connectionStringPrivateSrv": "mongodb+srv://cluster0-pl-0.uzgh6.mongodb.net", "password": "P@@sword%", "username": "theuser" } Você pode usar este segredo em seu aplicativo:
containers: - name: test-app env: - name: "CONNECTION_STRING" valueFrom: secretKeyRef: name: my-project-my-atlas-cluster-my-database-user key: connectionStringPrivate