Editar

Linha de base AKS para clusters multirregionais

Azure Kubernetes Service (AKS)
Azure Front Door
Azure Application Gateway
Azure Container Registry
Azure Firewall

Esta arquitetura de referência detalha como executar várias instâncias de um cluster do Serviço Kubernetes do Azure (AKS) em várias regiões em uma configuração ativa/ativa e altamente disponível.

Esta arquitetura baseia-se na arquitetura de linha de base AKS, o ponto de partida recomendado pela Microsoft para a infraestrutura AKS. A linha de base do AKS detalha recursos de infraestrutura, como ID de carga de trabalho do Microsoft Entra, restrições de entrada e saída, limites de recursos e outras configurações seguras de infraestrutura do AKS. Esses detalhes de infraestrutura não são abordados neste documento. É recomendável que você se familiarize com a linha de base do AKS antes de prosseguir com o conteúdo de várias regiões.

Arquitetura

Architecture diagram showing multi-region deployment.

Transfira um ficheiro do Visio desta arquitetura.

GitHub logo Uma implementação de referência dessa arquitetura está disponível no GitHub.

Componentes

Muitos componentes e serviços do Azure são usados na arquitetura de referência AKS de várias regiões. Somente os componentes com exclusividade para essa arquitetura multi-cluster estão listados abaixo. Para o restante, faça referência à arquitetura AKS Baseline (Linha de base AKS).

  • Vários clusters / várias regiões Vários clusters AKS são implantados, cada um em uma região separada do Azure. Durante as operações normais, o tráfego de rede é roteado entre todas as regiões. Se uma região ficar indisponível, o tráfego será roteado para uma região mais próxima do usuário que emitiu a solicitação.
  • rede hub-spoke por região Um par de rede hub-spoke regional é implantado para cada instância regional do AKS. As políticas do Azure Firewall Manager são usadas para gerenciar políticas de firewall em todas as regiões.
  • Armazenamento de chaves regional O Azure Key Vault é provisionado em cada região para armazenar valores confidenciais e chaves específicas para a instância AKS e serviços de suporte encontrados nessa região.
  • Azure Front Door O Azure Front door é usado para balancear a carga e rotear o tráfego para uma instância regional do Gateway de Aplicativo do Azure, que fica na frente de cada cluster AKS. O Azure Front Door permite o roteamento global da camada sete, ambos necessários para essa arquitetura de referência.
  • As instâncias do Log Analytics Regional Log Analytics são usadas para armazenar métricas de rede regional e logs de diagnóstico. Além disso, uma instância compartilhada do Log Analytics é usada para armazenar métricas e logs de diagnóstico para todas as instâncias do AKS.
  • Registro de contêiner As imagens de contêiner para a carga de trabalho são armazenadas em um registro de contêiner gerenciado. Nessa arquitetura, um único Registro de Contêiner do Azure é usado para todas as instâncias do Kubernetes no cluster. A replicação geográfica para o Registro de Contêiner do Azure permite replicar imagens para as regiões selecionadas do Azure e fornecer acesso contínuo às imagens, mesmo que uma região esteja passando por uma interrupção.

Padrões de design

Essa arquitetura de referência usa dois padrões de design de nuvem. Nó geográfico (geodes), onde qualquer região pode atender a qualquer solicitação, e Selos de implantação, onde várias cópias independentes de um aplicativo ou componente de aplicativo são implantadas a partir de uma única fonte (modelo de implantação).

Considerações sobre o padrão do nó geográfico

Ao selecionar regiões para implantar cada cluster AKS, considere regiões próximas ao consumidor da carga de trabalho ou aos seus clientes. Além disso, considere a utilização da replicação entre regiões. A replicação entre regiões replica de forma assíncrona os mesmos aplicativos e dados em outras regiões do Azure para proteção de recuperação de desastres. À medida que o cluster for dimensionado para além de duas regiões, continue a planejar a replicação entre regiões para cada par de clusters AKS.

Dentro de cada região, os nós nos pools de nós AKS estão espalhados por várias zonas de disponibilidade para ajudar a evitar problemas devido a falhas zonais. As zonas de disponibilidade são suportadas num conjunto limitado de regiões, o que influencia a colocação de clusters regionais. Para obter mais informações sobre o AKS e as zonas de disponibilidade, incluindo uma lista de regiões suportadas, consulte Zonas de disponibilidade do AKS.

Considerações sobre carimbo de implantação

Ao gerenciar um cluster AKS de várias regiões, várias instâncias do AKS são implantadas em várias regiões. Cada uma dessas instâncias é considerada um selo. No caso de uma falha regional ou da necessidade de adicionar mais capacidade e/ou presença regional para o cluster, talvez seja necessário criar uma nova instância de carimbo. Ao selecionar um processo para criar e gerenciar carimbos de implantação, é importante considerar as seguintes coisas:

  • Selecione a tecnologia apropriada para definições de carimbo que permite a configuração generalizada, como infraestrutura como código
  • Fornecer valores específicos da instância usando um mecanismo de entrada de implantação, como variáveis ou arquivos de parâmetros
  • Selecione ferramentas de implantação que permitam uma implantação flexível, repetível e idempotente
  • Em uma configuração de carimbo ativo/ativo, considere como o tráfego é balanceado em cada carimbo
  • À medida que os selos são adicionados e removidos da coleção, considere as preocupações de capacidade e custo
  • Considere como ganhar visibilidade e/ou monitorar a coleção de selos como uma única unidade.

Cada um desses itens é detalhado com orientação específica nas seções a seguir desta arquitetura de referência.

Gestão de frotas

Esta solução representa uma topologia multi-cluster e multi-região, sem a inclusão de um orquestrador avançado para tratar todos os clusters como parte de uma frota unificada. Quando a contagem de clusters aumentar, considere inscrever os membros no Azure Kubernetes Fleet Manager para um melhor gerenciamento em escala dos clusters participantes. A arquitetura de infraestrutura apresentada aqui não muda fundamentalmente com a inscrição no Fleet Manager, mas as operações do dia 2 e atividades semelhantes se beneficiam de um plano de controle que pode atingir vários clusters simultaneamente.

Considerações

Essas considerações implementam os pilares do Azure Well-Architected Framework, que é um conjunto de princípios orientadores que podem ser usados para melhorar a qualidade de uma carga de trabalho. Para obter mais informações, consulte Microsoft Azure Well-Architected Framework.

Implantação e inicialização de cluster

Ao implantar vários clusters Kubernetes em configurações altamente disponíveis e geograficamente distribuídas, é essencial considerar a soma de cada cluster Kubernetes como uma unidade acoplada. Talvez você queira desenvolver estratégias orientadas por código para implantação e configuração automatizadas para garantir que cada instância do Kubernetes seja o mais idêntica possível. Você desejará considerar estratégias de expansão e entrada, adicionando ou removendo outras instâncias do Kubernetes. Você desejará que seu design, implantação e plano de configuração levem em conta falhas regionais ou outros cenários comuns.

Definição de cluster

Você tem muitas opções para implantar um cluster do Serviço Kubernetes do Azure. O portal do Azure, a CLI do Azure e o módulo do Azure PowerShell são opções decentes para implantar clusters AKS individuais ou não acoplados. Esses métodos, no entanto, podem apresentar desafios ao trabalhar com muitos clusters AKS fortemente acoplados. Por exemplo, usar o portal do Azure abre a oportunidade de configuração perdida devido a etapas perdidas ou opções de configuração indisponíveis. Além disso, a implantação e configuração de muitos clusters usando o portal é um processo oportuno que requer o foco de um ou mais engenheiros. Você pode construir um processo repetível e automatizado usando as ferramentas de linha de comando. No entanto, a responsabilidade da idempotência, do controle de falhas de implantação e da recuperação de falhas é de você e dos scripts criados.

Ao trabalhar com muitas instâncias do AKS, recomendamos considerar a infraestrutura como soluções de código, como modelos do Azure Resource Manager, modelos Bicep ou configurações do Terraform. A infraestrutura como soluções de código fornece uma solução de implantação automatizada, escalável e idempotente. Esta arquitetura de referência inclui um modelo ARM para os serviços compartilhados de soluções e, em seguida, outro para os clusters AKS + serviços regionais. Se você usar a infraestrutura como código, um carimbo de implantação poderá ser definido com configurações generalizadas, como rede, autorização e diagnóstico. Um arquivo de parâmetro de implantação pode ser fornecido com valores específicos regionais. Com essa configuração, um único modelo pode ser usado para implantar um carimbo quase idêntico em qualquer região.

O custo de desenvolvimento e manutenção da infraestrutura como ativos de código pode ser caro. Em alguns casos, como quando um número estático/fixo de instâncias AKS é implantado, a sobrecarga da infraestrutura como código pode superar os benefícios. Para esses casos, usar uma abordagem mais imperativa, como com ferramentas de linha de comando, ou até mesmo uma abordagem manual, é ok.

Implantação de cluster

Depois que a definição de carimbo de cluster tiver sido definida, você terá muitas opções para implantar instâncias de carimbo individuais ou múltiplas. Nossa recomendação é usar tecnologia moderna de integração contínua, como GitHub Actions ou Azure Pipelines. Os benefícios das soluções de implantação baseadas em integração contínua incluem:

  • Implantações baseadas em código que permitem que carimbos sejam adicionados e removidos usando código
  • Capacidades de teste integradas
  • Ambiente integrado e capacidades de preparação
  • Soluções integradas de gestão de segredos
  • Integração com código / controle de código-fonte de implantação
  • Histórico e registro em log da implantação

À medida que novos carimbos são adicionados ou removidos do cluster global, o pipeline de implantação precisa ser atualizado para permanecer consistente. Na implementação de referência, cada região é implantada como uma etapa individual dentro de um fluxo de trabalho de Ação do GitHub (exemplo). Essa configuração é simples, pois cada instância de cluster é claramente definida dentro do pipeline de implantação. Essa configuração inclui alguma sobrecarga administrativa na adição e remoção de clusters da implantação.

Outra opção seria utilizar a lógica para criar clusters com base em uma lista de locais desejados ou outros pontos de dados indicativos. Por exemplo, o pipeline de implantação pode conter uma lista de regiões desejadas; Uma etapa dentro do pipeline poderia então percorrer essa lista, implantando um cluster em cada região encontrada na lista. A desvantagem dessa configuração é a complexidade na generalização da implantação e que cada carimbo de cluster não é explicitamente detalhado no pipeline de implantação. O benefício positivo é que adicionar ou remover carimbos de cluster do pipeline torna-se uma simples atualização da lista de regiões desejadas.

Além disso, remover um carimbo de cluster do pipeline de implantação não garante necessariamente que ele também seja desativado. Dependendo da sua solução de implantação e configuração, você pode precisar de uma etapa extra para garantir que as instâncias do AKS tenham sido desativadas adequadamente.

Inicialização de cluster

Depois que cada instância ou carimbo do Kubernetes for implantado, os componentes do cluster, como controladores de entrada, soluções de identidade e componentes de carga de trabalho, precisam ser implantados e configurados. Você também precisará considerar a aplicação de políticas de segurança, acesso e governança em todo o cluster.

Semelhante à implantação, essas configurações podem se tornar difíceis de gerenciar manualmente em várias instâncias do Kubernetes. Em vez disso, considere as seguintes opções para configuração e política em escala.

GitOps

Em vez de configurar manualmente os componentes do Kubernetes, considere o uso de métodos automatizados para aplicar configurações a um cluster do Kubernetes, pois essas configurações são verificadas em um repositório de origem. Este processo é muitas vezes referido como GitOps, e as soluções populares de GitOps para Kubernetes incluem Flux e Argo CD. Essa implementação usa a extensão Flux para AKS para habilitar a inicialização dos clusters automaticamente e imediatamente após a implantação dos clusters.

O GitOps é detalhado com mais profundidade na arquitetura de referência de linha de base do AKS. O ponto importante aqui é que o uso de uma abordagem de configuração baseada em GitOps ajuda a garantir que cada instância do Kubernetes seja configurada de forma semelhante, sem esforço personalizado. Isto torna-se ainda mais importante à medida que o tamanho da sua frota aumenta.

Azure Policy

À medida que várias instâncias do Kubernetes são adicionadas, o benefício da governança, conformidade e configuração orientadas por políticas aumenta. Utilizando políticas, a Política do Azure especificamente, fornece um método centralizado e escalável para controle de cluster. O benefício das políticas do AKS é detalhado na arquitetura de referência de linha de base do AKS.

A Política do Azure é habilitada nessa implementação de referência quando os clusters AKS são criados e atribui a iniciativa restritiva no modo de Auditoria para obter visibilidade sobre não conformidade. A implementação também define mais políticas que não fazem parte de nenhuma iniciativa incorporada. Essas políticas são definidas no modo Negar. Por exemplo, há uma política em vigor para garantir que apenas imagens de contêiner aprovadas sejam executadas no cluster. Considere criar suas próprias iniciativas personalizadas. Combine as políticas aplicáveis à sua carga de trabalho em uma única atribuição.

O âmbito da política refere-se ao objetivo de cada política e iniciativa política. A implementação de referência associada a essa arquitetura usa um modelo ARM para atribuir políticas ao grupo de recursos no qual cada cluster AKS é implantado. À medida que a pegada do cluster global cresce, isso resulta em muitas políticas duplicadas. Você também pode definir o escopo de políticas para uma assinatura do Azure ou grupo de gerenciamento do Azure. Esse método permite que você aplique um único conjunto de políticas a todos os clusters AKS dentro do escopo de uma assinatura e/ou a todas as assinaturas encontradas em um grupo de gerenciamento.

Ao projetar a política para vários clusters AKS, considere os seguintes itens:

  • As políticas que devem ser aplicadas globalmente a todas as instâncias do AKS podem ser aplicadas a um grupo de gerenciamento ou assinatura
  • Colocar cada cluster regional em seu próprio grupo de recursos permite políticas específicas da região aplicadas ao grupo de recursos

Consulte Organização de recursos do Cloud Adoption Framework para obter materiais que o ajudarão a estabelecer uma estratégia de gerenciamento de políticas.

Implantação da carga de trabalho

Além da configuração da instância do AKS, considere a carga de trabalho implantada em cada instância ou carimbo regional. Soluções de implantação ou pipelines exigirão configuração para acomodar cada carimbo regional. À medida que mais carimbos são adicionados ao cluster global, o processo de implantação precisa ser estendido ou flexível o suficiente para acomodar as novas instâncias regionais.

Considere os seguintes itens ao planejar a implantação da carga de trabalho.

  • Generalize a implantação, como com um gráfico Helm, para garantir que uma única configuração de implantação possa ser usada em vários carimbos de cluster.
  • Use um único pipeline de implantação contínua configurado para implantar a carga de trabalho em todos os carimbos de cluster.
  • Forneça detalhes de instância específicos do carimbo como parâmetros de implantação.
  • Considere como o log de diagnóstico de aplicativos e o rastreamento distribuído são configurados para observabilidade em todo o aplicativo.

Disponibilidade e failover

Uma motivação significativa para escolher uma arquitetura Kubernetes multirregião é a disponibilidade do serviço. Ou seja, se um serviço ou componente de serviço ficar indisponível em uma região, o tráfego deve ser roteado para uma região onde esse serviço está disponível. Uma arquitetura de várias regiões inclui muitos pontos de falha diferentes. Nesta seção, cada um desses possíveis pontos de falha é discutido.

Pods de Aplicação (regional)

Um objeto de implantação do Kubernetes é usado para criar várias réplicas de um pod (ReplicaSet). Se um não estiver disponível, o tráfego é roteado entre os restantes. O Kubernetes ReplicaSet tenta manter o número especificado de réplicas em funcionamento. Se uma instância ficar inativa, uma nova instância deverá ser recriada. Finalmente, as sondas de vivacidade podem ser usadas para verificar o estado do aplicativo ou processo em execução no pod. Se o serviço não estiver respondendo, o teste de vivacidade removerá o pod, o que força o ReplicaSet a criar uma nova instância.

Para obter mais informações, consulte Kubernetes ReplicaSet.

Pods de aplicação (global)

Quando uma região inteira fica indisponível, os pods no cluster não estão mais disponíveis para atender solicitações. Nesse caso, a instância do Azure Front Door roteia todo o tráfego para as regiões saudáveis restantes. Os clusters e pods do Kubernetes nessas regiões continuarão a atender às solicitações.

Tome cuidado nesta situação para compensar o aumento de tráfego / solicitações para o cluster restante. Algumas coisas a considerar:

  • Certifique-se de que os recursos de rede e computação estejam no tamanho certo para absorver qualquer aumento repentino no tráfego devido ao failover de região. Por exemplo, ao usar o Azure CNI, certifique-se de ter uma sub-rede que possa suportar todos os IPs de Pod com uma carga de tráfego picada.
  • Utilize o Horizontal Pod Autoscaler para aumentar a contagem de réplicas de pods para compensar o aumento da demanda regional.
  • Utilize o AKS Cluster Autoscaler para aumentar as contagens de nós de instância do Kubernetes para compensar o aumento da demanda regional.

Para obter mais informações, consulte Horizontal Pod Autoscaler e AKS cluster autoscaler.

Pools de nós do Kubernetes (regional)

Ocasionalmente, pode ocorrer falha localizada em recursos de computação, por exemplo, se a energia ficar indisponível para um único rack de servidores do Azure. Para proteger seus nós AKS de se tornarem uma falha regional de ponto único, utilize as zonas de Disponibilidade do Azure. O uso de zonas de disponibilidade garante que os nós AKS em uma determinada zona de disponibilidade sejam fisicamente separados daqueles definidos em outra zona de disponibilidade.

Para obter mais informações, consulte Zonas de disponibilidade do AKS e do Azure.

Pools de nós do Kubernetes (global)

Em uma falha regional completa, o Azure Front Door encaminhará o tráfego para as regiões restantes e íntegras. Mais uma vez, tome cuidado nesta situação para compensar o aumento do tráfego / solicitações para o cluster restante.

Para obter mais informações, consulte Azure Front Door.

Topologia de rede

Semelhante à arquitetura de referência de linha de base AKS, essa arquitetura usa uma topologia de rede hub-spoke. Além das considerações especificadas na arquitetura de referência de linha de base do AKS, considere as seguintes práticas recomendadas:

  • Implemente um hub-spoke para cada instância regional do AKS, onde as redes virtuais hub-spoke são emparelhadas.
  • Encaminhe todo o tráfego de saída por meio de uma instância do Firewall do Azure encontrada em cada rede de hub regional. Utilize as políticas do Gerenciador de Firewall do Azure para gerenciar políticas de firewall em todas as regiões.
  • Siga o dimensionamento de IP encontrado na arquitetura de referência de linha de base do AKS e permita mais endereços IP para operações de escala de nó e pod, se ocorrer uma falha regional.

Gestão do tráfego

Com a arquitetura de referência de linha de base do AKS, o tráfego de carga de trabalho é roteado diretamente para uma instância do Gateway de Aplicativo do Azure e, em seguida, encaminhado para o balanceador de carga de back-end/recursos de entrada do AKS. Quando você trabalha com vários clusters, as solicitações de cliente são roteadas por meio de uma instância do Azure Front Door, que roteia para a instância do Gateway de Aplicativo do Azure.

Architecture diagram showing workload traffic in multi-region deployment.

Baixe um arquivo do Visio deste diagrama.

  1. O usuário envia uma solicitação para um nome de domínio (como https://contoso-web.azurefd.net), que é resolvido para a instância do Azure Front Door. Essa solicitação é criptografada com um certificado curinga (*.azurefd.net) emitido para todos os subdomínios do Azure Front Door. A instância do Azure Front Door valida a solicitação em relação às políticas WAF, seleciona o back-end mais rápido (com base na integridade e latência) e usa DNS público para resolver o endereço IP de back-end (instância do Gateway de Aplicativo do Azure).

  2. O Front Door encaminha a solicitação para a instância apropriada do Application Gateway selecionada, que serve como ponto de entrada para o carimbo regional. O tráfego flui pela Internet e é criptografado pelo Azure Front Door. Considere um método para garantir que a instância do Application Gateway só aceite tráfego da instância Front Door. Uma abordagem é usar um Grupo de Segurança de Rede na sub-rede que contém o Gateway de Aplicativo. As regras podem filtrar o tráfego de entrada (ou saída) com base em propriedades como Origem, Porta, Destino. A propriedade Source permite definir uma marca de serviço interna que indica endereços IP para um recurso do Azure. Essa abstração torna mais fácil configurar e manter a regra e manter o controle de endereços IP. Além disso, considere utilizar o cabeçalho Front Door to backend X-Azure-FDID para garantir que a instância do Application Gateway só aceite tráfego da instância Front Door. Para obter mais informações sobre cabeçalhos de porta frontal, consulte Suporte de protocolo para cabeçalhos HTTP no Azure Front Door.

Considerações sobre recursos compartilhados

Embora o foco dessa arquitetura de referência seja ter várias instâncias do Kubernetes espalhadas por várias regiões do Azure, faz sentido ter alguns recursos compartilhados em todas as instâncias. A implementação de referência multi-região do AKS usando um único modelo ARM para implantar todos os recursos compartilhados e, em seguida, outro para implantar cada carimbo regional. Esta seção detalha cada um desses recursos compartilhados e considerações para usar cada um em várias instâncias do AKS.

Container Registry

O Registro de Contêiner do Azure é usado nessa arquitetura de referência para fornecer serviços de imagem de contêiner (pull). Considere os seguintes itens ao trabalhar com o Registro de Contêiner do Azure em uma implantação de cluster de várias regiões.

Disponibilidade geográfica

Posicionar um registro de contêiner em cada região em que um cluster AKS é implantado permite operações de fechamento de rede, permitindo transferências de camada de imagem rápidas e confiáveis. Tenha vários pontos de extremidade de serviço de imagem para fornecer disponibilidade quando os serviços regionais não estiverem disponíveis. O uso da funcionalidade de replicação geográfica dos Registros de Contêiner do Azure permite gerenciar uma instância do Registro de Contêiner replicada para várias regiões.

A implementação de referência multirregião do AKS criou uma única instância do Registro de Contêiner e réplicas dessa instância em cada região do cluster. Para obter mais informações sobre a replicação do Registro de Contêiner do Azure, consulte Replicação geográfica no Registro de Contêiner do Azure.

Imagem mostrando várias réplicas ACR de dentro do portal do Azure.

Image showing multiple ACR replicas from within the Azure portal.

Acesso ao Cluster

Cada instância do AKS requer acesso para extrair camadas de imagem do Registro de Contêiner do Azure. Há várias maneiras de estabelecer o acesso ao Registro de Contêiner do Azure; essa arquitetura de referência usa uma Identidade Gerenciada do Azure para cada cluster, que recebe a função AcrPull na instância do Registro de Contêiner. Para obter mais informações e recomendações sobre como usar Identidades Gerenciadas para acesso ao Registro de Contêiner, consulte a arquitetura de referência de linha de base do AKS.

Essa configuração é definida no modelo ARM de carimbo de cluster para que cada vez que um novo carimbo seja implantado, a nova instância do AKS receba acesso. Como o Registro de Contêiner é um recurso compartilhado, certifique-se de que seu modelo de carimbo de implantação possa consumir e usar os detalhes necessários, neste caso, a ID do recurso do Registro de Contêiner.

Azure Monitor

O recurso Azure Monitor Container insights é a ferramenta recomendada para monitorar e entender o desempenho e a integridade de suas cargas de trabalho de cluster e contêiner. O Container insights utiliza um espaço de trabalho do Log Analytics para armazenar dados de log e o Azure Monitor Metrics para armazenar dados numéricos de séries cronológicas. As métricas do Prometheus também podem ser coletadas pelo Container Insights e enviar os dados para o serviço gerenciado do Azure Monitor para Prometheus ou Azure Monitor Logs.

Você também pode configurar suas configurações de diagnóstico de cluster AKS para coletar e analisar logs de recursos dos componentes do plano de controle AKS e encaminhar para um espaço de trabalho do Log Analytics.

AKS Para obter mais informações, consulte a arquitetura de referência de linha de base do AKS.

Ao considerar o monitoramento para uma implementação entre regiões, como essa arquitetura de referência, é importante considerar o acoplamento entre cada carimbo. Neste caso, considere cada carimbo um componente de uma única unidade (cluster regional). A implementação de referência AKS de várias regiões utiliza um único espaço de trabalho do Log Analytics, compartilhado por cada cluster do Kubernetes. Como acontece com os outros recursos compartilhados, defina seu carimbo regional para consumir informações sobre o único espaço de trabalho do Log Analytics e conecte cada cluster a ele.

Agora que cada cluster regional está emitindo logs de diagnóstico para um único espaço de trabalho do Log Analytics, esses dados, juntamente com métricas de recursos, podem ser usados para criar mais facilmente relatórios e painéis que representam a totalidade do cluster global.

Azure Front Door

A porta frontal do Azure é usada para balancear a carga e rotear o tráfego para cada cluster AKS. O Azure Front Door permite o roteamento global da camada sete, ambos necessários para essa arquitetura de referência.

Configuração do cluster

À medida que instâncias regionais AKS são adicionadas, o Application Gateway implantado junto com o cluster Kubernetes precisa ser registrado como um back-end Front Door para roteamento adequado. Esta operação requer uma atualização para sua infraestrutura como ativos de código. Como alternativa, essa operação pode ser dissociada da configuração de implantação e gerenciada com ferramentas como a CLI do Azure. O pipeline de implantação de implementações de referência incluído utiliza uma etapa distinta da CLI do Azure para esta operação.

Certificados

O Front Door não suporta certificados autoassinados, mesmo em ambientes de desenvolvimento/teste. Para habilitar o tráfego HTTPS, você precisa criar seu certificado TLS/SSL assinado por uma autoridade de certificação (CA). A implementação de referência usa o Certbot para criar um certificado Let's Encrypt Authority X3. Ao planejar um cluster de produção, use o método preferido da sua organização para adquirir certificados TLS.

Para obter informações sobre outras CAs suportadas pelo Front Door, consulte Autoridades de certificação permitidas para habilitar HTTPS personalizado no Azure Front Door.

Acesso e identidade do cluster

Conforme discutido na arquitetura de referência de linha de base do AKS, recomenda-se usar o Microsoft Entra ID como provedor de identidade de acesso dos clusters. Os grupos do Microsoft Entra podem ser usados para controlar o acesso aos recursos do cluster.

Ao gerenciar vários clusters, você precisará decidir sobre um esquema de acesso. As opções incluem:

  • Crie um grupo de acesso global em todo o cluster onde os membros possam acessar todos os objetos em cada instância do Kubernetes no cluster. Esta opção fornece necessidades mínimas de administração; no entanto, concede privilégios significativos a qualquer membro do grupo.
  • Crie um grupo de acesso individual para cada instância do Kubernetes usada para conceder acesso a objetos em uma instância de cluster individual. Com esta opção, as despesas gerais administrativas aumentam; no entanto, ele também fornece acesso a cluster mais granular.
  • Defina controles de acesso granulares para tipos de objeto e namespaces do Kubernetes e correlacione os resultados a uma estrutura do Grupo de Diretórios do Azure. Com esta opção, as despesas gerais administrativas aumentam significativamente; no entanto, ele fornece acesso granular não apenas a cada cluster, mas também aos namespaces e APIs do Kubernetes encontrados em cada cluster.

Com a implementação de referência incluída, dois grupos do Microsoft Entra são criados para acesso de administrador. Esses grupos são especificados na hora de implantação do carimbo de cluster usando o arquivo de parâmetro de implantação. Os membros de cada grupo têm acesso total ao carimbo de cluster correspondente.

Para obter mais informações sobre como gerenciar o acesso ao cluster do AKS com o ID do Microsoft Entra, consulte Integração do AKS Microsoft Entra.

Dados, estado e cache

Ao usar um cluster distribuído globalmente de instâncias AKS, considere a arquitetura do aplicativo, processo ou outras cargas de trabalho que possam ser executadas no cluster. Como a carga de trabalho baseada em estado está espalhada pelo cluster, ela precisará acessar um armazenamento de estado? Se um processo for recriado em outro lugar do cluster devido a falha, a carga de trabalho ou o processo continuará a ter acesso a um armazenamento de estado dependente ou a uma solução de cache? O Estado pode ser alcançado de muitas maneiras; no entanto, ele pode ser complexo em um único cluster do Kubernetes. A complexidade aumenta ao adicionar várias instâncias clusterizadas do Kubernetes. Devido a preocupações de acesso regional e complexidade, considere projetar seus aplicativos para usar um serviço de armazenamento de estado distribuído globalmente.

A implementação de referência de vários clusters não inclui uma demonstração ou configuração para preocupações de estado. Se você executar aplicativos em instâncias AKS clusterizadas, considere arquitetar sua carga de trabalho para usar um serviço de dados distribuído globalmente, como o Azure Cosmos DB. O Azure Cosmos DB é um sistema de base de dados distribuído globalmente que lhe permite ler e escrever dados das réplicas locais da sua base de dados. Para obter mais informações, consulte Azure Cosmos DB.

Se sua carga de trabalho utiliza uma solução de cache, certifique-se de que ela tenha sido arquitetada para que os serviços de cache permaneçam funcionais. Para fazer isso, certifique-se de que a carga de trabalho em si seja resiliente ao failover relacionado ao cache e que as soluções de cache estejam presentes em todas as instâncias regionais do AKS.

Otimização de custos

Use a calculadora de preços do Azure para estimar os custos dos serviços usados na arquitetura. Outras práticas recomendadas são descritas na seção Otimização de custos no Microsoft Azure Well-Architected Framework e opções específicas de configuração de otimização de custos no artigo Otimizar custos.

Considere habilitar a análise de custos do AKS para alocação granular de custos de infraestrutura de cluster por construções específicas do Kubernetes.

Próximos passos