Conecte com segurança o MongoDB aos clusters Kubernetes oferecidos na nuvem
Avalie esse Tutorial
Os aplicativos em contêineres estão se tornando um padrão do setor para virtualização. Quando falarmos sobre o gerenciamento desses containers, Kubernetes provavelmente será criado muito rapidamente.
O Kubernetes é um sistema de código aberto conhecido por automatizar a implantação, o dimensionamento e o gerenciamento de aplicativos em contêiner. Atualmente, todos os principais provedores de nuvem (AWS, Google Cloud e Azure) têm uma oferta de Kubernetes gerenciado para permitir que as organizações iniciem e dimensionem facilmente seus ambientes Kubernetes.
Não é de surpreendenter que o MongoDB Atlas também seja executado em todas essas funcionalidades para oferecer aos seus aplicativos modernos em container a melhor oferta de banco de dados. No entanto, a facilidade de desenvolvimento pode resultar na perda de alguns aspectos essenciais, como segurança e controle de conectividade com nossos serviços de cloud.
Neste artigo, vou orientá-lo sobre como proteger adequadamente seus serviços Kubernetes cloud ao conectar-se ao MongoDB Atlas usando as soluções robustas e recomendadas que temos.
Você precisará ter uma conta de fornecedor de nuvem e a capacidade de implantar uma das ofertas do Kubernetes:
E, é claro, você precisará de um projeto MongoDB Atlas do qual você é o proprietário do projeto.
Se você ainda não configurou seu cluster gratuito no MongoDB Atlas, agora é um ótimo momento para fazê-lo. Você tem todas as instruções nesta publicação doblog. Observe que, para este tutorial, é necessário ter um cluster M10+.
As conexões do Atlas, por padrão, usam credenciais e criptografia de ponta a ponta para proteger a conexão. No entanto, construir uma rede confiável é fundamental para fechar o ciclo de segurança entre seu aplicativo e o banco de dados.
Não importa em qual nuvem você decide construir seu cluster Kubernetes, a base básica para proteger esse sistema é criar sua própria rede. Você pode consultar os seguintes guias para criar sua própria rede e coletar as informações principais (Nomes, IDs e sub -redeClassless Inter-Domain Routing - CIDR).
Agora, configuraremos a conectividade da rede virtual na qual a região do Atlas reside com a rede virtual que criamos na Etapa 1. Essa conectividade é necessária para garantir que a comunicação entre as redes seja possível. Configuraremos o Atlas para permitir conexões da rede virtual a partir da Etapa 1.
Esse processo é chamado de configuração de uma conexão de pareamento de rede. É significativo, pois permite a comunicação interna entre redes de duas contas diferentes (a conta na nuvem do Atlas e sua conta na nuvem).
![Página de emparelhamento do Atlas](https://mongodb-devhub-cms.s3.us-west-1.amazonaws.com/Atlas_peering_page_3e33f7d799.png)
No entanto, destacarei os principais pontos em cada cloud para uma configuração de emparelhamento bem-sucedida:
AWS | GCP | Azure |
---|---|---|
|
|
|
Os clusters Kubernetes que lançamos devem estar associados à rede emparelhada. Destacarei as especificidades de cada provedor de nuvem.
Quando lançamos nosso EKS por meio do serviço de console da AWS, precisamos configurar a VPC emparelhada na aba "Rede".
Defina as configurações corretas:
- Nome da VPC
- Sub-redes relevantes (recomendado escolher pelo menos três zonas de disponibilidade)
- Escolha um grupo de segurança com portas 27015-27017 abertas para o Atlas CIDR.
- Opcionalmente, você pode adicionar um intervalo de IP para seus pods.
![Nesse caso, coloquei meu nome de VPC emparelhado, escolhi três zonas de disponibilidade da minha região Oeste da UE e especifiquei um grupo de segurança que permitia o acesso 27015 - 27017 ao Atlas CIDR.](/developer/_next/image/?url=https%3A%2F%2Fmongodb-devhub-cms.s3.us-west-1.amazonaws.com%2FAWS_Netoworking_Kube_ed6404dca2.png&w=3840&q=75)
Quando lançamos nosso serviço GKE, precisamos configurar a VPC emparelhada na seção "Rede".
Defina as configurações corretas:
- Nome da VPC
- Nome da sub-rede
- Opcionalmente, você pode adicionar uma faixa de IP para a rede interna do pod que não possa se sobrepor ao CIDR emparelhado.
![Nesse caso, quando acessei a aba de rede, coloquei o nome da minha rede](/developer/_next/image/?url=https%3A%2F%2Fmongodb-devhub-cms.s3.us-west-1.amazonaws.com%2FGCP_Kube_Clusterr_Network_6037204a1a.png&w=3840&q=75)
Quando almoçamos nosso serviço AKS, precisamos usar o mesmo grupo de recursos que a VNET emparelhada e configurar a VNET emparelhada como a rede CNI na guia Rede avançada.
Defina as configurações corretas:
- Grupo de Recursos
- Nome VNET em "Rede virtual"
- A sub-rede do cluster deve ser o intervalo de sub-rede emparelhado.
- O outro CIDR deve ser um CIDR não sobreposto da rede emparelhada.
![Nesse caso, marquei a caixa](/developer/_next/image/?url=https%3A%2F%2Fmongodb-devhub-cms.s3.us-west-1.amazonaws.com%2FNetworking_AKS_Azure_5c9cc20768.png&w=3840&q=75)
Quando o cluster estiver em funcionamento no seu provedor de nuvem, você poderá testar a conectividade com o nosso cluster emparelhado.
Primeiro, precisaremos obter nossa connection string e método a partir da UI do Atlas cluster. Observe que o GCP e o Azure têm cadeias de conexão privadas para emparelhamento e elas devem ser usadas para redes com peering.
![Conectar ao teste de emparelhamento: etapa 1](/developer/_next/image/?url=https%3A%2F%2Fmongodb-devhub-cms.s3.us-west-1.amazonaws.com%2FPrivate_Conn_String_d42ecbe933.png&w=3840&q=75)
![Conectar ao teste de emparelhamento: etapa 2](/developer/_next/image/?url=https%3A%2F%2Fmongodb-devhub-cms.s3.us-west-1.amazonaws.com%2FShell_Template_e101dd97bf.png&w=3840&q=75)
Agora, vamos testar nossa conexão a partir de um dos pods do Kubernetes:
![Teste de shell bem-sucedido](https://mongodb-devhub-cms.s3.us-west-1.amazonaws.com/Success_Shell_Private_3303fc8d3d.png)
Os clusters gerenciados pelo Kubernetes oferecem uma maneira simples e moderna de implantar aplicativos em contêiner no fornecedor de sua escolha. É ótimo podermos proteger facilmente suas conexões para trabalhar com a melhor oferta de banco de dados em nuvem que existe, o MongoDB Atlas, desbloqueando outras possibilidades para criar aplicativos incríveis.
Se tiver dúvidas, acesse o site da nossa comunidade de desenvolvedores, no qual os engenheiros e a comunidade do MongoDB ajudarão você a desenvolver sua próxima grande ideia com o MongoDB.