Compartilhar via


Perspectiva do Azure Well-Architected Framework sobre o AKS (Serviço de Kubernetes do Azure)

O AKS (Serviço de Kubernetes do Azure) é um serviço gerenciado do Kubernetes que você pode usar para implantar e gerenciar aplicativos em contêineres. Semelhante a outros serviços gerenciados, o AKS descarrega grande parte da sobrecarga operacional para o Azure, fornecendo recursos de alta disponibilidade, escalabilidade e portabilidade para a carga de trabalho.

Este artigo pressupõe que, enquanto arquiteto, você revisou a árvore de decisão de computação e escolheu o AKS para sua carga de trabalho. As diretrizes neste artigo fornecem recomendações arquitetônicas que são mapeadas para os princípios dos pilares do Azure Well-Architected Framework.

Importante

Como usar este guia

Cada seção tem uma lista de verificação de design que apresenta áreas arquitetônicas preocupantes, juntamente com estratégias de design localizadas no escopo da tecnologia.

Também estão incluídas recomendações para os recursos de tecnologia que podem ajudar a materializar essas estratégias. As recomendações não representam uma lista completa de todas as configurações disponíveis para o AKS e suas dependências. Em vez disso, eles listam as principais recomendações alinhadas às perspectivas de design. Use as recomendações para criar sua prova de conceito ou otimizar seus ambientes existentes.

Arquitetura fundamental que demonstra as principais recomendações: arquitetura de referência do AKS.

Escopo de tecnologia

Esta revisão se concentra nas decisões interrelacionadas para os seguintes recursos do Azure:

  • AKS

Quando você discute as práticas recomendadas dos pilares do Well-Architected Framework para o AKS, é importante distinguir entre o cluster e a carga de trabalho. As práticas recomendadas do cluster são uma responsabilidade compartilhada entre o administrador do cluster e seu provedor de recursos, enquanto as práticas recomendadas de carga de trabalho são o domínio de um desenvolvedor. Este artigo tem considerações e recomendações para cada uma dessas funções.

Nota

Os pilares a seguir incluem uma lista de verificação de design e uma lista de recomendações que indicam se cada opção é aplicável à arquitetura de cluster , à arquitetura de carga de trabalho , ou a ambas.

Confiabilidade

A finalidade do pilar confiabilidade é fornecer funcionalidade contínua criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.

princípios de design de confiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, fluxos do sistema e o sistema como um todo.

Lista de verificação de projeto

Comece sua estratégia de design com base na lista de verificação de revisão de design para confiabilidade. Determine sua relevância para seus requisitos de negócios, tendo em mente os recursos do AKS e suas dependências. Estenda a estratégia para incluir mais abordagens conforme necessário.

  • (Cluster) Construa redundância para melhorar a resiliência. Use zonas de disponibilidade para seus clusters do AKS como parte de sua estratégia de resiliência para aumentar a disponibilidade quando implantar em uma única região. Muitas regiões do Azure fornecem zonas de disponibilidade. As zonas estão próximas o suficiente para ter conexões de baixa latência entre elas, mas distantes o suficiente para reduzir a probabilidade de que interrupções locais afetem mais de uma zona.

    Para cargas de trabalho críticas, implante vários clusters em diferentes regiões do Azure. Ao distribuir geograficamente clusters do AKS, você pode obter maior resiliência e minimizar os efeitos de falhas regionais. Uma estratégia de várias regiões ajuda a maximizar a disponibilidade e fornecer continuidade dos negócios. As cargas de trabalho voltadas para a Internet devem usar do Azure Front Door ou do Gerenciador de Tráfego do Azure para rotear o tráfego globalmente entre clusters do AKS. Para obter mais informações, confira Estratégia em várias regiões.

    Planeje o espaço de endereço IP para garantir que o cluster possa dimensionar e lidar com o tráfego de failover de forma confiável em topologias de vários clusters.

  • (Cluster e carga de trabalho) Monitorar a confiabilidade e os indicadores gerais de integridade do cluster e das cargas de trabalho. Coletar logs e métricas para monitorar a integridade da carga de trabalho, identificar tendências de desempenho e confiabilidade e solucionar problemas. Examine Práticas recomendadas para monitorar o Kubernetes com o Azure Monitor e o guia de Modelagem de integridade para cargas de trabalho do Well-Architected para ajudar a projetar a solução de confiabilidade e monitoramento de integridade para seu AKS.

    Verifique se as cargas de trabalho são criadas para dar suporte à escala horizontal e para relatar a prontidão e a saúde do aplicativo.

  • (Cluster e carga de trabalho) Hospede pods de aplicativos em pools de nós de usuário. Ao isolar os pods do sistema das cargas de trabalho do aplicativo, você ajuda a garantir que os serviços essenciais do AKS não sejam afetados pelas demandas de recursos ou possíveis problemas causados por uma carga de trabalho que opera em pools de nós de usuário.

    Verifique se sua carga de trabalho é executada em pools de nós de usuário e escolha o SKU do tamanho apropriado. No mínimo, inclua dois nós para pools de nós de usuário e três nós para o pool de nós do sistema.

  • (Cluster e carga de trabalho) Fatore o contrato de nível de serviço (SLA) de tempo de atividade do AKS em seus destinos de disponibilidade e recuperação. Para definir os destinos de confiabilidade e recuperação para seu cluster e carga de trabalho, siga as diretrizes em Recomendações para definir destinos de confiabilidade. Em seguida, formular um design que atenda a esses destinos.

  • (Cluster e carga de trabalho) Proteja o serviço de cluster do AKS usando o Backup do Azure armazenando pontos de recuperação em um cofre de Backup e execute a restauração durante qualquer cenário de desastre. Para fazer backup e restaurar os aplicativos e dados em contêineres em execução em clusters do AKS, siga as diretrizes na visão geral do backup do AKS para configurar a proteção.

Recomendações

Recomendação Benefício
(Cluster e carga de trabalho) Controle o agendamento do pod usando seletores de nó e afinidade.

No AKS, o agendador do Kubernetes pode isolar logicamente cargas de trabalho por hardware no nó. Ao contrário de tolerâncias, pods que não têm um seletor de nó correspondente podem ser agendados em nós rotulados, mas a prioridade é dada aos pods que definem o seletor de nó correspondente.
A afinidade do nó resulta em mais flexibilidade, o que permite definir o que acontece se não for possível corresponder o pod a um nó.
(Cluster) Escolha o plug-in de rede apropriado com base nos requisitos de rede e no dimensionamento do cluster.

Diferentes plug-ins de rede fornecem diferentes níveis de funcionalidade. A CNI (Interface de Rede de Contêiner do Azure) é necessária para cenários específicos, como pools de nós baseados no Windows, alguns requisitos de rede e políticas de rede do Kubernetes.

Para obter mais informações, consulte Kubenet versus CNI do Azure.
O plug-in de rede correto pode ajudar a garantir uma melhor compatibilidade e desempenho.
(Cluster e carga de trabalho) Use o SLA de tempo de atividade do AKS para clusters de nível de produção. A carga de trabalho pode dar suporte a objetivos de disponibilidade mais altos devido às garantias de disponibilidade mais altas do endpoint do servidor de API do Kubernetes nos clusters AKS.
(Cluster) Utilize zonas de disponibilidade para maximizar a resiliência dentro de uma região do Azure, distribuindo os nós de agentes do AKS entre datacenters fisicamente separados.

Se houver requisitos de colocalidade, use uma implantação regular do AKS baseada em conjuntos de dimensionamento de máquinas virtuais em uma única zona ou use grupos de posicionamento por proximidade para minimizar a latência entre nós.
Ao distribuir pools de nós em várias zonas, os nós de um pool de nós continuam operando mesmo que outra zona fique inoperante.
(Cluster e carga de trabalho) Defina as solicitações e limites de recursos do pod nos manifestos de implantação do aplicativo. Imponha esses limites usando o Azure Policy. Os limites de recursos de CPU e memória do contêiner são necessários para evitar o esgotamento de recursos no cluster do Kubernetes.
(Cluster e carga de trabalho) Mantenha o pool de nós do sistema isolado das cargas de trabalho de aplicativos.

Os pools de nós do sistema exigem um SKU de máquina virtual (VM) de pelo menos 2 vCPUs e 4 GB de memória. Recomendamos que você use 4 vCPU ou mais. Para obter mais informações, confira Pools de nós do sistema e do usuário.
O pool de nós do sistema hospeda pods de sistema críticos que são essenciais para o plano de controle do cluster. Ao isolar esses pods do sistema de cargas de trabalho do aplicativo, você ajuda a garantir que os serviços essenciais não sejam afetados pelas demandas de recursos ou possíveis problemas causados por uma carga de trabalho.
(Cluster e tarefas) Separe aplicativos em grupos de nós dedicados com base em requisitos específicos. Evite grandes números de pools de nós para reduzir a sobrecarga de gerenciamento. Os aplicativos podem compartilhar a mesma configuração e precisam de VMs habilitadas para GPU, CPU ou VMs com otimização de memória ou capacidade de dimensionar para zero. Ao dedicar pools de nós a aplicativos específicos, você pode ajudar a garantir que cada aplicativo obtenha os recursos necessários sem superprovisionar ou subutilizar recursos.
(Cluster) Use um gateway da NAT para clusters que executam cargas de trabalho que fazem muitas conexões de saída simultâneas. O Gateway de NAT do Azure dá suporte ao tráfego de saída confiável em escala e ajuda você a evitar problemas de confiabilidade aplicando limitações do Azure Load Balancer ao tráfego de saída altamente simultâneo.
(Cluster e carga de trabalho) Use o Backup do Azure para proteger o cluster do AKS e restaurar para regiões alternativas durante o desastre. O Backup do Azure dá suporte às operações de backup e restauração de aplicativos em contêineres e dados em execução para dados de estado de cluster e de aplicativo.

Você pode usar os backups em um cenário de desastre regional e recuperar backups.
O Backup do Azure com o AKS (Serviço de Kubernetes do Azure) oferece uma solução totalmente gerenciada, escalonável, segura e econômica. Aprimora a confiabilidade da carga de trabalho sem as complexidades de configurar e manter a infraestrutura de backup.

Segurança

O objetivo do pilar Segurança é fornecer garantias de confidencialidade, integridade e disponibilidade para a carga de trabalho.

Os princípios de design do Security fornecem uma estratégia de design de alto nível para atingir essas metas aplicando abordagens ao design técnico do AKS.

Lista de verificação de projeto

Inicie sua estratégia de design com base na lista de verificação de revisão de design para Segurança e identifique vulnerabilidades e controles para melhorar a postura de segurança. Familiarize-se com conceitos de segurança do AKS e avalie as recomendações de proteção de segurança com base no de parâmetro de comparação do Kubernetes do CIS. Estenda a estratégia para incluir mais abordagens conforme necessário.

  • (Cluster) Integre com o Microsoft Entra ID para gerenciamento de identidade e acesso. Centralize o gerenciamento de identidade para seu cluster usando o Microsoft Entra ID. Qualquer alteração na conta do usuário ou no status do grupo é atualizada automaticamente no acesso ao cluster do AKS. Estabelecer a identidade como o principal perímetro de segurança. Os desenvolvedores e proprietários de aplicativos do cluster do Kubernetes precisam ter acesso a recursos diferentes.

    Use o controle de acesso baseado em função (RBAC) do Kubernetes com o Microsoft Entra ID para acesso de privilégio mínimo. Proteja a configuração e os segredos minimizando a alocação de privilégios de administrador.

  • (Cluster) Integrar com o monitoramento de segurança e as ferramentas de gerenciamento de eventos e informações de segurança. Usar o Microsoft Defender para Contêineres com o Microsoft Sentinel para detectar e responder rapidamente às ameaças presentes nos seus clusters e nas cargas de trabalho executadas neles. Habilite o conector do AKS no Microsoft Sentinel para transmitir seus logs de diagnósticos do AKS para o Microsoft Sentinel.

  • (Cluster e carga de trabalho) Implementar controles de segmentação e de rede. Para evitar a exfiltração de dados, verifique se somente o tráfego autorizado e seguro é permitido e contenha o raio de explosão de uma violação de segurança.

    Considere usar um cluster do AKS privado para ajudar a garantir que o tráfego de gerenciamento de cluster para o servidor de API permaneça em sua rede privada. Ou use a lista de permissões do servidor de API para clusters públicos.

  • (Carga de trabalho) Usar um WAF (firewall de aplicativo Web) para verificar o tráfego de entrada em busca de possíveis ataques. WAF pode detectar e atenuar ameaças em tempo real para ajudar a bloquear o tráfego mal-intencionado antes de atingir seus aplicativos. Ele fornece proteção robusta contra ataques comuns baseados na Web, como injeção de SQL, script entre sites e outras vulnerabilidades do Open Web Application Security Project. Alguns balanceadores de carga, como Azure Application Gateway ou Azure Front Door, têm um WAF integrado.

  • (Carga de trabalho) Mantenha a cadeia de fornecimento de software de uma carga de trabalho protegida. Verifique se a integração contínua e o pipeline de entrega contínua estão protegidos com a verificação com reconhecimento de contêiner.

  • (Cluster e carga de trabalho) Implementar proteção extra para cargas de trabalho seguras especializadas. Se o cluster precisar executar uma carga de trabalho confidencial, talvez seja necessário implantar um cluster privado. Aqui estão alguns exemplos:

Recomendações

Recomendação Benefício
(Cluster) Use identidades gerenciadas no cluster. Você pode evitar a sobrecarga associada ao gerenciamento e à rotação de princípios de serviço.
(Carga de trabalho) Use ID de carga de trabalho do Microsoft Entra com o AKS para acessar recursos protegidos do Microsoft Entra, como o Azure Key Vault e o Microsoft Graph, da carga de trabalho. Use IDs de carga de trabalho do AKS para proteger o acesso aos recursos do Azure por meio do Microsoft Entra ID RBAC, sem precisar gerenciar credenciais diretamente em seu código.
(Cluster) Use o Microsoft Entra ID para autenticar no Registro de Contêiner do Azure do AKS. Ao utilizar o Microsoft Entra ID, o AKS pode se autenticar com o Registro de Contêineres sem o uso de segredos imagePullSecrets.
(Cluster) Proteja o tráfego de rede para o servidor de API usando cluster privado do AKS se os requisitos de carga de trabalho exigirem níveis mais altos de segmentação. Por padrão, o tráfego de rede entre os pools de nós e o servidor de API percorre a rede de backbone da Microsoft. Usando um cluster privado, você pode ajudar a garantir que o tráfego de rede para o servidor de API permaneça apenas na rede privada.
(Cluster) Para clusters públicos do AKS, use intervalos de endereços IP autorizados pelo servidor de API. Inclua origens como os endereços IP públicos dos agentes de build de implantação, o gerenciamento de operações e o ponto de saída dos pools de nós, como o Firewall do Azure. Ao usar clusters públicos, você pode reduzir significativamente a superfície de ataque do cluster do AKS limitando o tráfego que pode alcançar o servidor de API de seus clusters.
(Cluster) Proteja o servidor de API usando o RBAC do Microsoft Entra ID.

Desabilite contas locais para impor todo o acesso ao cluster usando identidades baseadas no Microsoft Entra ID.
Proteger o acesso ao servidor de API do Kubernetes é uma das coisas mais importantes que você pode fazer para proteger o cluster. Integre o RBAC do Kubernetes à ID do Microsoft Entra para controlar o acesso ao servidor de API.
(Cluster) Use políticas de rede do Azure ou Calico. Usando políticas, você pode proteger e controlar o tráfego de rede entre pods em um cluster. O Calico fornece um conjunto mais avançado de recursos, incluindo ordenação e prioridade de políticas, regras de bloqueio e regras de correspondência mais flexíveis.
(Cluster) Proteja clusters e pods usando o Azure Policy. O Azure Policy pode ajudar a aplicar a imposição e as proteções em escala em seus clusters de maneira centralizada e consistente. Ele também pode controlar quais pods de funções são concedidos e detectar se algo está em execução em relação à política da empresa.
(Cluster) Proteja o acesso do contêiner aos recursos. Limite o acesso às ações que podem ser executadas por contêineres. Forneça o menor número de permissões e evite o uso de escalonamento raiz ou privilegiado.

Para contêineres baseados em Linux, consulte Acesso do contêiner de segurança a recursos usando os recursos de segurança internos do Linux.
Ao restringir permissões e evitar o uso de escalonamento raiz ou privilegiado, você ajuda a reduzir o risco de violações de segurança. Você pode ajudar a garantir que, mesmo que um contêiner esteja comprometido, o dano potencial seja minimizado.
(Cluster) Controle o tráfego de saída do cluster garantindo que ele passe por um ponto de segurança de rede, como o Firewall do Azure ou um proxy HTTP. Ao rotear o tráfego de saída por meio do Firewall do Azure ou de um proxy HTTP, você pode ajudar a impor políticas de segurança que impedem o acesso não autorizado e a exfiltração de dados. Essa abordagem também simplifica a administração de políticas de segurança e facilita a aplicação de regras consistentes em todo o cluster do AKS.
(Cluster) Use o ID de carga de trabalho do Microsoft Entra de código aberto e o Driver do CSI do Repositório de Segredos com o Key Vault. Esses recursos ajudam você a proteger e rodar segredos, certificados e cadeias de conexão no Key Vault usando criptografia forte. Eles fornecem um log de auditoria de acesso e mantêm segredos essenciais fora do pipeline de implantação.
(Cluster) Use o Microsoft Defender para contêineres. O Microsoft Defender para Contêineres ajuda você a monitorar e manter a segurança de seus clusters, contêineres e seus aplicativos.

Otimização de custos

A otimização de custos se concentra na na detecção de padrões de gastos, na priorização de investimentos em áreas críticas e na otimização de outras para atender ao orçamento da organização e, ao mesmo tempo, aos requisitos comerciais.

Os princípios de design da Otimização de Custos fornecem uma estratégia de design de alto nível para atingir essas metas e fazer compensações conforme necessário no design técnico relacionado ao AKS e seu ambiente.

Lista de verificação de projeto

Comece sua estratégia de design com base na lista de verificação de revisão de design para otimização de custos em investimentos. Ajuste o design para que a carga de trabalho seja alinhada com o orçamento alocado para a carga de trabalho. Seu design deve usar os recursos corretos do Azure, monitorar investimentos e encontrar oportunidades para otimizar ao longo do tempo.

  • (Cluster) Inclua os tipos de preço do AKS em seu modelo de custo. Para estimar os custos, use a calculadora de preços do Azure e teste diferentes planos de configuração e pagamento na calculadora.

  • (Cluster) Obtenha as melhores tarifas para suas cargas de trabalho. Use o tipo de VM apropriado para cada pool de nós, pois isso afeta diretamente o custo de execução de suas cargas de trabalho. Escolher uma VM de alto desempenho sem a utilização adequada pode levar a gastos desperdiçados. Selecionar uma VM menos poderosa pode causar problemas de desempenho e aumentar o tempo de inatividade.

    Se você planejou corretamente a capacidade e sua carga de trabalho é previsível e existirá por um longo período, assine Reservas do Azure ou um plano de economia para reduzir os custos de recursos.

    Escolha Máquinas Virtuais de Spot do Azure para usar a capacidade não utilizada do Azure com descontos significativos. Esses descontos podem chegar a até 90% em preços de pagamento conforme o uso. Se o Azure precisar de capacidade de volta, a infraestrutura do Azure removerá os nós Spot.

    Se você executar o AKS no local ou na periferia, também poderá usar o Benefício Híbrido do Azure para reduzir os custos ao executar aplicativos em contêineres nesses cenários.

  • (Cluster e carga de trabalho) Otimizar os custos dos componentes da carga de trabalho. Escolha a região mais econômica para sua carga de trabalho. Avalie os requisitos de custo, latência e conformidade para garantir que você execute sua carga de trabalho de forma econômica e que ela não afete seus clientes ou crie encargos extras de rede. A região em que você implanta sua carga de trabalho no Azure pode afetar significativamente o custo. Devido a muitos fatores, o custo dos recursos varia para cada região do Azure.

    Mantenha imagens pequenas e otimizadas para ajudar a reduzir os custos porque novos nós precisam baixar essas imagens. Falhas de solicitação do usuário ou tempos limite quando o aplicativo está sendo iniciado podem levar ao superprovisionamento. Crie imagens de uma maneira que permita que o contêiner comece o mais rápido possível para ajudar a evitar falhas e tempos limite.

    Examine as recomendações de otimização de custos nas práticas recomendadas de para monitorar o Kubernetes com o Azure Monitor para determinar a melhor estratégia de monitoramento para suas cargas de trabalho. Analise as métricas de desempenho, começando com CPU, memória, armazenamento e rede, para identificar oportunidades de otimização de custos por cluster, nós e namespace.

  • (Cluster e carga de trabalho) Otimizar os custos de dimensionamento da carga de trabalho. Considere configurações de dimensionamento vertical e horizontal alternativas para reduzir os custos de dimensionamento e, ao mesmo tempo, atender a todos os requisitos de carga de trabalho. Use dimensionadores automáticos para dimensionar quando as cargas de trabalho estiverem menos ativas.

  • (Cluster e carga de trabalho) Coletar e analisar dados de custo. A base para habilitar a otimização de custos é a disseminação de um cluster de economia de custos. Desenvolva uma mentalidade de custo-eficiência que inclua colaboração entre as equipes de finanças, operações e engenharia para impulsionar o alinhamento nas metas de economia de custos e trazer transparência aos custos de nuvem.

Recomendações

Recomendação Benefício
(Cluster e carga de trabalho) Alinhe a seleção de SKU do AKS e o tamanho do disco gerenciado com os requisitos de carga de trabalho. Corresponder sua seleção às suas demandas de carga de trabalho ajuda a garantir que você não pague por recursos desnecessários.
(Cluster) Escolha os tipos corretos de instância de VM para os pools de nós do AKS.

Para determinar os tipos de instância de VM corretos, considere as características da carga de trabalho, os requisitos de recursos e as necessidades de disponibilidade.
Selecionar o tipo de instância de VM correto é crucial porque afeta diretamente o custo para executar aplicativos no AKS. Escolher uma instância de alto desempenho sem a utilização adequada pode levar a gastos desperdiçados. Escolher uma instância menos poderosa pode levar a problemas de desempenho e maior tempo de inatividade.
(Cluster) Escolha VMs com base na arquitetura mais eficiente do Azure Resource Manager. O AKS dá suporte à criação de pools de nós do Arm64 e uma combinação de nós de arquitetura do Intel e do Resource Manager em um cluster. A arquitetura Arm64 fornece uma melhor relação preço-desempenho devido à sua menor utilização de energia e ao desempenho eficiente da computação. Esses recursos podem trazer melhor desempenho a um custo menor.
(Cluster) Habilite o dimensionador automático de cluster para reduzir automaticamente o número de nós de agentes em resposta ao excesso de capacidade de recursos. Reduzir automaticamente o número de nós no cluster do AKS permite executar um cluster eficiente quando a demanda é baixa e aumentar quando a demanda aumentar.
(Cluster) Habilite o autoprovisionamento de nós para automatizar a seleção de SKU de VM. O provisionamento automático de nós simplifica o processo de seleção de SKU e decide, com base nos requisitos de recursos de pod pendentes, a configuração ideal da VM para executar essas cargas de trabalho da maneira mais eficiente e econômica.
(Carga de trabalho) Use HorizontalPodAutoscaler para ajustar o número de pods em uma implantação com base na utilização da CPU ou de outras métricas. Reduzir automaticamente o número de pods quando a demanda for baixa e aumentar quando a demanda aumentar resultará em uma operação mais econômica da sua carga de trabalho.
(Carga de trabalho) Use VerticalPodAutoscaler (versão prévia) para dimensionar adequadamente seus pods e definir dinamicamente solicitações e limites com base no uso histórico. Ao definir solicitações de recursos e limites em contêineres para cada carga de trabalho, VerticalPodAutoscaler libera CPU e memória para outros pods e ajuda a garantir a utilização efetiva dos clusters do AKS.
(Cluster) Configure o complemento de análise de custo do AKS. A extensão do cluster de análise de custos permite que você obtenha insights granulares sobre os custos associados a vários recursos do Kubernetes em seus clusters ou namespaces.

Excelência Operacional

A Excelência Operacional se concentra principalmente nos procedimentos para práticas de desenvolvimento , observabilidade e gerenciamento de lançamentos.

Os princípios de design da Excelência Operacional fornecem uma estratégia de design de alto nível para atingir essas metas para os requisitos operacionais da carga de trabalho.

Lista de verificação de projeto

Inicie sua estratégia de design com base na lista de verificação de revisão de design da Excelência Operacional, para definir processos de observabilidade, teste e implantação. Consulte práticas recomendadas do AKS e o Guia de Operações do Dia 2 para entender as principais considerações a serem compreendidas e implementadas.

  • (Cluster) Implementar uma abordagem de implantação de IaC (infraestrutura como código). Usar uma abordagem declarativa de implantação baseada em modelo usando Bicep, Terraform ou ferramentas semelhantes. Verifique se todas as implantações são repetíveis, rastreáveis e armazenadas em um repositório de código-fonte. Para mais informações, consulte os tutoriais de Início Rápido na documentação do produto AKS.

  • (Cluster e carga de trabalho) Automatizar implantações de infraestrutura e carga de trabalho. usar soluções de software padrão para gerenciar, integrar e automatizar a implantação de seu cluster e cargas de trabalho. Integre pipelines de implantação ao seu sistema de controle do código-fonte e incorpore testes automatizados.

    Crie um processo automatizado para ajudar a garantir que seus clusters sejam inicializados com as configurações e implantações necessárias em todo o cluster. Esse processo normalmente é executado usando o GitOps.

    Use um processo de implantação repetível e automatizado para sua carga de trabalho no ciclo de vida de desenvolvimento de software.

  • (Cluster e carga de trabalho) Implementar uma estratégia de monitoramento abrangente. Coletar logs e métricas para monitorar a integridade da carga de trabalho, identificar tendências de desempenho e confiabilidade e solucionar problemas. Examine as Práticas recomendadas do para monitorar o Kubernetes com o Azure Monitor e as Recomendações do Well-Architected para projetar e criar um sistema de monitoramento para determinar a melhor estratégia de monitoramento para suas cargas de trabalho.

    Habilite as configurações de diagnóstico para garantir que as interações do plano de controle ou do servidor de API principal sejam registradas.

    A carga de trabalho deve ser projetada para emitir telemetria que pode ser coletada, incluindo status de vitalidade e prontidão.

  • (Cluster e carga de trabalho) Implementar testes em estratégias de produção. Teste em produção usa implantações reais para validar e medir o comportamento e o desempenho de um aplicativo no ambiente de produção. Use práticas de engenharia de caos direcionadas ao Kubernetes para identificar problemas de confiabilidade de aplicativo ou plataforma.

    O Azure Chaos Studio pode ajudar a simular falhas e acionar situações de recuperação de desastre.

  • (Cluster e carga de trabalho) Impor governança de carga de trabalho. Azure Policy ajuda a garantir a conformidade consistente com os padrões organizacionais, automatiza a imposição de políticas e fornece visibilidade centralizada e controle sobre os recursos do cluster.

    Examine a seção Políticas do Azure para saber mais sobre as políticas internas disponíveis para o AKS.

  • (Cluster e carga de trabalho) Use implantações azuis-verdes no nível do carimbo para cargas de trabalho críticas. Uma abordagem de implantação azul-verde no nível do carimbo pode aumentar a confiança no lançamento de alterações e permite atualizações sem tempo de inatividade porque as compatibilidades com dependências a jusante, como a plataforma do Azure, provedores de recursos e módulos IaC podem ser validadas.

    O Kubernetes e os controladores de entrada oferecem suporte a muitos padrões avançados de implantação para inclusão em seu processo de engenharia de lançamento. Considere padrões como implantações azul-verde ou versões canário.

  • (Cluster e carga de trabalho) tornar as cargas de trabalho mais sustentáveis. Tornar as cargas de trabalho mais sustentáveis e eficientes em nuvem requer a combinação de esforços em torno de otimização de custos, redução das emissões de carbonoe otimização do consumo de energia. Otimizar o custo do aplicativo é a etapa inicial para tornar as cargas de trabalho mais sustentáveis.

    Consulte Princípios de engenharia de software sustentável no AKS para saber como criar cargas de trabalho do AKS sustentáveis e eficientes.

Recomendações

Recomendação Benefício
(Cluster) Operacionalize os padrões de configuração de clusters e pods usando as políticas do Azure para o AKS. As políticas do Azure para AKS podem ajudar você a aplicar proteções e imposição em escala em seus clusters de maneira centralizada e consistente. Use políticas para definir as permissões concedidas aos pods e garantir a conformidade com as políticas da empresa.
(Carga de trabalho) Use Dimensionador Automático Controlado por Eventos do Kubernetes (KEDA). O KEDA permite que seus aplicativos sejam dimensionados com base em eventos, como o número de eventos que estão sendo processados. Você pode escolher entre um catálogo avançado de mais de 50 dimensionadores KEDA.

Eficiência de desempenho

Eficiência de desempenho significa manter a experiência do usuário mesmo quando há um aumento na carga por meio do gerenciamento da capacidade. A estratégia inclui dimensionamento de recursos, identificação e otimização de possíveis gargalos e otimização para o desempenho de pico.

Os princípios de design de eficiência de desempenho fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade em relação ao uso esperado.

Lista de verificação de projeto

Inicie sua estratégia de design com base na lista de verificação de revisão de design para Eficiência de Desempenho para definir uma linha de base segundo os principais indicadores de desempenho do AKS.

  • (Cluster e carga de trabalho) Realize o planejamento da capacidade. Execute e realize iterações sobre um exercício de plano de capacidade detalhado que inclui as configurações de SKU, dimensionamento automático, endereçamento IP e considerações de failover.

    Depois de formalizar seu plano de capacidade, atualize frequentemente o plano observando continuamente a utilização de recursos do cluster.

  • (Cluster) Definir uma estratégia de dimensionamento. Configurar o dimensionamento para garantir que os recursos sejam ajustados com eficiência para atender às demandas de carga de trabalho sem uso excessivo ou desperdício. Use recursos do AKS como dimensionamento automático de cluster e HorizontalPodAutoscaler para atender dinamicamente às suas necessidades de carga de trabalho com menos tensão nas operações. Otimize sua carga de trabalho para operar e implantar com eficiência em um contêiner.

    Consulte o guia de dimensionamento e particionamento para compreender os vários aspectos da configuração de dimensionamento.

  • (Cluster e carga de trabalho) Realize testes de desempenho. Faça atividades contínuas de teste de carga que exercitem tanto o pod quanto o dimensionador automático de cluster. Compare os resultados com as metas de desempenho e as linhas de base estabelecidas.

  • (Cluster e carga de trabalho) Escalar cargas de trabalho e fluxos de dados de forma independente. Separar cargas de trabalho e fluxos de dados em agrupamentos de nós diferentes para permitir o dimensionamento independente. Siga as diretrizes em Otimizar o design da carga de trabalho usando fluxos para identificar e priorizar seus fluxos.

Recomendações

Recomendação Benefício
(Cluster) Habilite o dimensionador automático de cluster para ajustar automaticamente o número de nós de agente em resposta às demandas de carga de trabalho.

Use HorizontalPodAutoscaler para ajustar o número de pods em uma implantação com base na utilização da CPU ou de outras métricas.
A capacidade de escalar ou reduzir verticalmente o número de nós e pods no cluster do AKS permite a execução de um cluster eficiente e econômico.
(Cluster e carga de trabalho) Separe cargas de trabalho em pools de nós diferentes e considere o escalonamento de pools de nós de usuário. Diferentemente dos pools de nós do sistema que sempre exigem nós em execução, os pools de nós do usuário permitem que você dimensione para cima ou para baixo.
(Carga de trabalho) Use recursos avançados do agendador do AKS para implementar o balanceamento avançado de recursos para cargas de trabalho que os exigem. Ao gerenciar clusters do AKS, você geralmente precisa isolar equipes e cargas de trabalho. Os recursos avançados que o agendador do Kubernetes fornece permitem controlar quais pods podem ser agendados em determinados nós. Eles também permitem controlar como os aplicativos multipod podem ser distribuídos adequadamente pelo cluster.
(Carga de trabalho) Use KEDA para criar um conjunto de regras de dimensionamento automático significativo com base em sinais específicos para sua carga de trabalho. Nem todas as decisões de escala podem ser derivadas de métricas de CPU ou memória. As considerações de escala geralmente vêm de pontos de dados mais complexos ou até mesmo externos. O KEDA permite que seus aplicativos sejam dimensionados com base em eventos, como o número de mensagens em uma fila ou o atraso de um tópico.

Políticas do Azure

O Azure fornece um amplo conjunto de políticas internas relacionadas ao AKS que se aplicam ao recurso do Azure, como políticas típicas do Azure e o complemento do Azure Policy para Kubernetes e dentro do cluster. Muitas das políticas de recursos do Azure vêm em variantes de Auditoria/Negação e Implantar se não existir. Além das definições internas do Azure Policy, você pode criar políticas personalizadas para o recurso do AKS e para o complemento do Azure Policy para Kubernetes.

Algumas das recomendações neste artigo podem ser auditadas por meio do Azure Policy. Por exemplo, você pode verificar as seguintes políticas de cluster:

  • Os clusters têm verificações de integridade de prontidão ou vivacidade configuradas para sua configuração do pod.
  • Microsoft Defender para políticas baseadas em nuvem.
  • O modo de autenticação e as políticas de configuração, como Microsoft Entra ID, RBAC, e desabilite a autenticação local.
  • Políticas de acesso à rede do servidor de API, incluindo cluster privado.
  • Políticas de configuração do GitOps.
  • Políticas de configurações de diagnóstico.
  • Restrições de versão do AKS.
  • Impeça a invocação de comando.

Você também pode verificar as seguintes políticas de cluster e carga de trabalho:

  • Iniciativas de segurança do pod do cluster do Kubernetes para cargas de trabalho baseadas no Linux.
  • Inclua políticas de capacidade de pod e contêiner, como AppArmor, sysctl, capacidades de segurança, SELinux, seccomp, contêineres privilegiados e credenciais de API de cluster de montagem automática.
  • Montagem, drivers de volume e políticas de sistemas de arquivos.
  • Políticas de rede de pod e container, como rede do host, porta, IPs externos permitidos, HTTPS e balanceadores de carga internos.
  • Restrições de implantação de namespace.
  • Limites de recursos de CPU e memória.

Para uma governança abrangente, examine as definições internas do Azure Policy para o Kubernetes e outras políticas que podem afetar a segurança da camada de computação.

Recomendações do Assistente do Azure

O Assistente do Azure é um consultor de nuvem personalizado que ajuda você a seguir as práticas recomendadas para otimizar suas implantações do Azure. Aqui estão algumas recomendações que podem ajudá-lo a melhorar a confiabilidade, a segurança, a eficácia do custo, o desempenho e a excelência operacional do AKS.

Considere os artigos a seguir como recursos que demonstram as recomendações realçadas neste artigo.

Crie conhecimentos de implementação usando a seguinte documentação do produto: