Implantar um Cluster do Kubernetes com Gerenciamento Automático de DNS para Vários Ambientes

Gerenciar a estratégia de DNS na nuvem para seus ambientes internos e externos (desenvolvimento, teste e produção, por exemplo) pode se tornar complicado e demorado sem uma solução automatizada. Idealmente, seus usuários e clientes devem ser capazes de navegar para um domínio, e sua solução de DNS deve direcionar para o endereço IP do ambiente correto. Este cenário ideal é amigável e pode evitar erros humanos.

O Kubernetes ExternalDNS oferece recursos para automatizar uma solução de DNS a fim de facilitar a navegação dos usuários para o domínio desejado, incluindo recursos avançados como balanceamento de carga global, failover automático, gerenciamento de tráfego baseado em DNS e recursos de segurança incorporados, como DNSSEC (Domain Name System Security Extensions), para ajudar a proteger contra ataques de adulteração e falsificação.

Essa arquitetura de referência usa uma única implantação de cluster do kubernetes com Zonas de DNS do Oracle Cloud Infrastructure e Kubernetes ExternalDNS para configurar uma solução de DNS projetada para vários ambientes.

Arquitetura

Essa arquitetura usa um cluster do Oracle Cloud Infrastructure Container Engine for Kubernetes (OCI OKE) implantado em uma zona do OCI DNS para manter os "Registros A" dos seus serviços expostos por meio de balanceadores de carga. Nesta arquitetura, o cluster do OKE tem três nós de trabalho e três namespaces diferentes para segregação de implantação. Use essa arquitetura para uma implantação do OKE de vários ambientes que use um único cluster em vez de vários.

O diagrama a seguir ilustra essa arquitetura de referência.



multilocatário-oke-dns-architecture.zip

Cada ambiente (desenvolvimento, teste e produção) tem seu próprio conjunto de componentes kubernetes, como namespaces, pods e serviços. O Kubernetes ExternalDNS permite a criação e o gerenciamento automáticos de registros de DNS para serviços kubernetes expostos externamente. Isso facilita o acesso dos clientes externos aos serviços dentro do cluster. Os componentes do kubernetes são roteados para o Kubernetes ExternalDNS, que cria "Um registro" apontando para cada balanceador de carga de serviço no OCI.

O diagrama a seguir ilustra essa arquitetura de software.



kubernetes-external-dns.zip

A arquitetura tem os seguintes componentes:

  • Região

    Região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, denominada domínios de disponibilidade. As regiões são independentes de outras regiões, e grandes distâncias podem separá-las (entre países ou até mesmo continentes).

  • Domínios de disponibilidade

    Domínios de disponibilidade são data centers stand-alone e independentes dentro de uma região. Os recursos físicos de cada domínio de disponibilidade são isolados dos recursos de outros domínios de disponibilidade, o que oferece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura como energia ou refrigeração ou a rede interna do domínio de disponibilidade. Desse modo, é improvável que uma falha em um domínio de disponibilidade afete os outros domínios de disponibilidade na região.

  • Domínios de falha

    Um domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com energia e hardware independentes. Quando você distribui recursos entre vários domínios de falha, seus aplicativos podem tolerar falhas físicas do servidor, manutenção do sistema e falhas de energia dentro de um domínio de falha.

  • VCN (rede virtual na nuvem) e sub-redes

    Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes tradicionais de data center, as VCNs oferecem total controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após a criação da VCN. Você pode segmentar uma VCN em sub-redes, com escopo definido para uma região ou para um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contíguo de endereços que não se sobrepõem a outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

  • Balanceador de carga

    O serviço Oracle Cloud Infrastructure Load Balancing fornece distribuição automatizada de tráfego de um único ponto de entrada para vários servidores no back-end.

  • Lista de segurança

    Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego que deve ser permitido dentro e fora da sub-rede.

  • Engenharia do Contêiner para Kubernetes

    O Oracle Cloud Infrastructure Container Engine for Kubernetes é um serviço totalmente gerenciado, escalável e altamente disponível que você pode usar para implantar seus aplicativos de contêineres na nuvem. Você especifica os recursos de computação necessários, e o Container Engine for Kubernetes os provisionará no Oracle Cloud Infrastructure em uma tenancy existente. O Container Engine for Kubernetes usa o Kubernetes para automatizar a implantação, o dimensionamento e o gerenciamento de aplicativos de contêineres em clusters de hosts.

  • DNS

    O serviço DNS (Domain Name System) do Oracle Cloud Infrastructure é uma rede DNS (Domain Name System) anycast global altamente escalável que oferece desempenho, resiliência e escalabilidade de DNS aprimorados, para que os usuários finais se conectem ao aplicativo dos clientes o mais rápido possível, de onde quer que estejam.

  • Zona do DNS Público/Privado

    O serviço de DNS do Oracle Cloud Infrastructure permite que você gerencie zonas. Uma zona é uma parte do namespace de DNS. Um registro de Início de Autoridade (SOA) define uma zona. Uma zona contém todos os labels abaixo dela mesma na árvore, a menos que especificado em contrário.

Recomendações

Use as recomendações a seguir como ponto de partida. Seus requisitos podem ser diferentes da arquitetura descrita aqui.
  • Rede virtual na nuvem (VCN)

    Ao criar uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar às sub-redes na VCN. Use blocos CIDR que estejam dentro do espaço de endereço IP privado padrão.

    Ao projetar as sub-redes, considere seus requisitos de fluxo de tráfego e segurança. Anexe todos os recursos dentro de uma camada ou função específica à mesma sub-rede, que pode servir como um limite de segurança.

  • Largura de banda do balanceador de carga

    Ao criar o balanceador de carga, você pode selecionar uma forma predefinida que forneça uma largura de banda fixa ou especificar uma forma personalizada (flexível) em que defina um intervalo de largura de banda e deixe que o serviço dimensione a largura de banda automaticamente com base nos padrões de tráfego. Com qualquer uma das abordagens, você pode alterar a forma a qualquer momento após criar o balanceador de carga.

Considerações

Ao implantar vários ambientes dentro de um único cluster do Oracle Cloud Infrastructure Container Engine for Kubernetes, considere o seguinte.

  • Segurança

    Considere o uso de Políticas de Rede do Kubernetes para segregar a conectividade dos namespaces e confiar no controle de acesso baseado em atribuição para controlar o acesso ao gerenciamento dos namespaces.

Implante

As instruções para configurar o Kubernetes ExternalDNS para usar o Oracle Cloud Infrastructure DNS estão disponíveis em "Configurando ExternalDNS para usar o Oracle Cloud Infrastructure DNS" na Documentação do Oracle Cloud Infrastructure.

Explorar Mais

Saiba mais sobre a implantação de um cluster do Oracle Container Engine for Kubernetes com gerenciamento automático do DNS.

Revise estes recursos adicionais:

Confirmações

Autor:

  • Guido Alejandro Ferreyra