Perspetiva sobre o Azure Well-Architected Framework no Serviço Kubernetes do Azure (AKS)
O Serviço Kubernetes do Azure (AKS) é um serviço Kubernetes gerenciado 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 enquanto fornece recursos de alta disponibilidade, escalabilidade e portabilidade para a carga de trabalho.
Este artigo pressupõe que, como arquiteto, você revisou a árvore de decisão de computação e escolheu o AKS como a computação para sua carga de trabalho. As diretrizes neste artigo fornecem recomendações de arquitetura 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 projeto que apresenta áreas arquitetônicas de preocupação, juntamente com estratégias de design localizadas para o escopo da tecnologia.
Também estão incluídas recomendações para os recursos tecnológicos que podem ajudar a materializar essas estratégias. As recomendações não representam uma lista exaustiva de todas as configurações disponíveis para o AKS e suas dependências. Em vez disso, eles listam as principais recomendações mapeadas para as perspectivas de design. Use as recomendações para criar sua prova de conceito ou para otimizar seus ambientes existentes.
Arquitetura fundamental que demonstra as principais recomendações: arquitetura básica do AKS.
Âmbito da tecnologia
Esta análise concentra-se nas decisões inter-relacionadas para os seguintes recursos do Azure:
- AKS
Quando se discute as melhores práticas dos pilares do Well-Architected Framework para o AKS, é importante distinguir entre o cluster e a carga de trabalho . As práticas recomendadas de 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 contém considerações e recomendações para cada uma dessas funções.
Observação
Os pilares a seguir incluem uma lista de verificação de projeto e uma lista de recomendações que indicam se cada opção é aplicável a arquitetura de de cluster, arquitetura de de carga de trabalho ou ambas.
Fiabilidade
O objetivo do pilar Confiabilidade é fornecer funcionalidade contínua, criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.
Os princípios de projeto de confiabilidade fornecer uma estratégia de projeto de alto nível aplicada a componentes individuais, fluxos do sistema e o sistema como um todo.
Lista de verificação de estruturação
Inicie sua estratégia de design com base na lista de verificação de revisão de projeto para Confiabilidade. Determine a sua relevância para os requisitos do seu negócio, tendo em mente os recursos do AKS e suas dependências. Alargar a estratégia de modo a incluir mais abordagens, conforme necessário.
(Cluster) Crie redundância para melhorar a resiliência. Use zonas de disponibilidade para seus clusters AKS como parte de sua estratégia de resiliência para aumentar a disponibilidade ao implantar em uma única região. Muitas regiões do Azure fornecem zonas de disponibilidade. As zonas sã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 AKS, você pode obter maior resiliência e minimizar os efeitos de falhas regionais. Uma estratégia multirregional ajuda a maximizar a disponibilidade e fornecer continuidade de negócios. As cargas de trabalho voltadas para a Internet devem usar do Azure Front Door ou do Azure Traffic Manager para rotear o tráfego globalmente em clusters AKS. Para obter mais informações, consulte Estratégia multirregional.
Planeje o espaço de endereço IP para garantir que seu cluster possa dimensionar e lidar de forma confiável com o tráfego de failover em topologias de vários clusters.
(Cluster e carga de trabalho) Monitore a confiabilidade e os indicadores gerais de integridade do cluster e das cargas de trabalho. Colete logs e métricas para monitorar a integridade da carga de trabalho, identificar tendências de desempenho e confiabilidade e solucionar problemas. Analise o guia sobre práticas recomendadas para monitorizar o Kubernetes com o Azure Monitor e o guia de modelagem da integridade para cargas de trabalho Well-Architected como ajuda para projetar a solução de monitorização da confiabilidade e integridade para a sua solução AKS.
Certifique-se de que as cargas de trabalho sejam criadas para dar suporte ao dimensionamento horizontal e relatar a prontidão e a integridade do aplicativo.
(Cluster e carga de trabalho) Hospede pods de aplicações em pools de nós de utilizadores. Ao isolar os pods de sistema das cargas de trabalho das aplicações, ajuda a garantir que os serviços essenciais do AKS não sejam afetados pelas demandas de recursos ou problemas potenciais causados por uma carga de trabalho nos pools de nós de utilizadores.
Certifique-se de que sua carga de trabalho seja executada em pools de nós de usuário e escolha o tamanho certo de SKU. 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) Integre o contrato de nível de serviço (SLA) de tempo de atividade do AKS nas suas metas de disponibilidade e recuperação. Para definir as metas de confiabilidade e recuperação para o seu cluster e carga de trabalho, siga as orientações em Recomendações para definir metas de confiabilidade. Em seguida, formule um design que atenda a essas metas.
(Cluster e carga de trabalho) Proteja o serviço de cluster 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 executados em clusters AKS, siga as orientações 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 de pods usando seletores de nós e afinidade. No AKS, o agendador do Kubernetes pode isolar logicamente cargas de trabalho por hardware no nó. Ao contrário das tolerâncias, os pods que não têm um seletor de nó correspondente poderão ser alocados em nós rotulados, mas é dada prioridade aos pods que definem o seletor de nó correspondente. |
A afinidade de nós resulta em mais flexibilidade, o que permite definir o que acontece se o pod não puder ser associado a um nó. |
(Agrupamento) Escolha o plug-in de rede apropriado com base nos requisitos de rede e no dimensionamento do cluster. Diferentes plugins de rede fornecem diferentes níveis de funcionalidade. A Interface de Rede de Contêiner do Azure (Azure CNI) é 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 Azure CNI. |
O plugin de rede certo pode ajudar a garantir uma melhor compatibilidade e desempenho. |
(Cluster e carga de trabalho) Use o de SLA de tempo de atividade do AKS para clusters de nível de produção. | A carga de trabalho pode suportar objetivos de maior disponibilidade devido à maior garantia de disponibilidade proporcionada pelo ponto de extremidade do servidor da API do Kubernetes para clusters AKS. |
(Agrupamento) Use zonas de disponibilidade para maximizar a resiliência dentro de uma região do Azure distribuindo nós de agente AKS em datacenters fisicamente separados. Se existirem requisitos de colocalidade, use uma implantação AKS baseada em conjuntos de dimensionamento de máquina virtual regular em uma única zona ou use grupos de posicionamento de proximidade para minimizar a latência internade. |
Ao distribuir pools de nós por várias zonas, os nós num pool de nós continuam a funcionar mesmo se outra zona ficar indisponível. |
(Cluster e carga de trabalho) Defina pedidos e limites de recursos de pod nos manifestos de implantação de aplicações. Imponha esses limites usando a Política do Azure. | 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 do aplicativo. Os pools de nós do sistema exigem uma 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, consulte Sistema e grupos de nós de utilizador. |
O pool de nós do sistema hospeda pods críticos do sistema que são essenciais para o plano de controle do cluster. Ao isolar esses pods de sistema das cargas de trabalho do aplicativo, você ajuda a garantir que os serviços essenciais não sejam afetados pelas demandas de recursos ou problemas potenciais causados por uma carga de trabalho. |
(Cluster e carga de trabalho) Separe os aplicativos em pools de nós dedicados com base em requisitos específicos. Evite um grande número de pools de nós para reduzir a sobrecarga de gerenciamento. | As aplicações podem partilhar a mesma configuração e podem necessitar de VMs com suporte para GPU, ou VMs otimizadas para CPU ou memória, ou ainda a capacidade de escalar até zero. Ao dedicar pools de nós a aplicativos específicos, você pode ajudar a garantir que cada aplicativo obtenha os recursos de que precisa sem provisionamento excessivo ou subutilização de recursos. |
(Cluster) Usar um gateway NAT para clusters que executam cargas de trabalho que fazem muitas conexões de saída simultâneas. | O Azure NAT Gateway dá suporte ao tráfego de saída confiável em escala e ajuda você a evitar problemas de confiabilidade aplicando limitações do Balanceador de Carga do Azure ao alto tráfego de saída simultâneo. |
(Cluster e carga de trabalho) Use o Backup do Azure para proteger o cluster AKS e restaurar para regiões alternativas durante um desastre. O Backup do Azure oferece suporte às operações de backup e restauração de aplicações em contentores e dados em execução, tanto para o estado do cluster quanto para os dados da aplicação. Você pode usar os backups em um cenário de desastre regional e recuperá-los. |
O Backup do Azure com o Serviço Kubernetes do Azure (AKS) oferece uma solução totalmente gerenciada, escalável, segura e econômica. Aumenta a confiabilidade da carga de trabalho sem as complexidades de configuração e manutenção da infraestrutura de backup. |
Segurança
O objetivo do pilar Segurança é fornecer confidencialidade, integridade e disponibilidade garantias para a carga de trabalho.
Os princípios de design de segurança fornecem uma estratégia de design de alto nível para alcançar esses objetivos, aplicando abordagens ao design técnico do AKS.
Lista de verificação de estruturação
Inicie a sua estratégia de design com base na lista de verificação de revisão de design para segurança e identifique vulnerabilidades e controlos para melhorar a postura de segurança. Familiarize-se com os conceitos de segurança do AKS e avalie as recomendações de endurecimento de segurança com base no benchmark CIS Kubernetes . Alargar a estratégia de modo a incluir mais abordagens, conforme necessário.
(Cluster) Integrar com o Microsoft Entra ID para gestão de identidade e acesso. Centralize a gestão de identidades para o seu cluster usando o Microsoft Entra ID. Qualquer alteração na conta de usuário ou status do grupo é automaticamente atualizada no acesso ao cluster AKS. Estabelecer a identidade como o perímetro primário de segurança. Os desenvolvedores e proprietários de aplicativos do cluster Kubernetes precisam ter acesso a diferentes recursos.
Use o controle de acesso baseado em função (RBAC) do Kubernetes com o Microsoft Entra ID para acesso com privilégios mínimos. Proteja a configuração e os segredos minimizando a alocação de privilégios de administrador.
(Cluster) Integre com ferramentas de monitoramento de segurança e gerenciamento de eventos e informações de segurança. Use o Microsoft Defender for Containers com Microsoft Sentinel para detetar e responder rapidamente a ameaças em seus clusters e às cargas de trabalho que são executadas neles. Habilite o conector AKS para o Microsoft Sentinel para transmitir os seus logs de diagnóstico do AKS para o Microsoft Sentinel.
(Cluster e carga de trabalho) Implementar controles de segmentação e rede. Para evitar a exfiltração de dados, certifique-se de que apenas o tráfego autorizado e seguro seja permitido e contenha o raio de explosão de uma violação de segurança.
Considere o uso de um cluster AKS privado para ajudar a garantir que o tráfego de gerenciamento de cluster para seu 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) Use um firewall de aplicativo Web (WAF) para verificar o tráfego de entrada em busca de possíveis ataques. WAF pode detetar e mitigar ameaças em tempo real para ajudar a bloquear o tráfego mal-intencionado antes que ele chegue aos seus aplicativos. Ele fornece proteção robusta contra ataques comuns baseados na Web, como injeção de SQL, scripts 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) Manter a cadeia de suprimentos de software de uma carga de trabalho reforçada. Garantir que seu pipeline de integração contínua e entrega contínua seja reforçado com a verificação com reconhecimento de contêiner.
(Cluster e carga de trabalho) Implemente 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. Eis alguns exemplos:
- Padrão de Segurança de Dados da Indústria de Cartões de Pagamento (PCI-DSS 3.2.1): cluster regulamentado pelo AKS para PCI-DSS 3.2.1
- Suporte e requisitos do DoD Impact Level 5 (IL5) com AKS: Azure Government IL5 isolation requirements.
Recomendações
Recomendação | Benefício |
---|---|
(Agrupamento) Use identidades gerenciadas no cluster. | Você pode evitar a sobrecarga associada ao gerenciamento e à rotação dos princípios de serviço. |
(Carga de trabalho) Utilize o ID de Carga de Trabalho do Microsoft Entra com o AKS para aceder a recursos protegidos pelo Microsoft Entra, como o Azure Key Vault e o Microsoft Graph, na sua carga de trabalho. | Use IDs de carga de trabalho AKS para proteger o acesso aos recursos do Azure usando o RBAC do Microsoft Entra ID sem precisar gerenciar credenciais diretamente em seu código. |
(Agrupamento) Use o ID do Microsoft Entra para autenticar no Azure Container Registry a partir do AKS. | Usando o Microsoft Entra ID, o AKS pode autenticar-se com o Registo de Contentores sem a utilização de segredos imagePullSecrets . |
(Agrupamento) Proteja o tráfego de rede para o seu servidor de API usando cluster AKS privado 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. |
(Agrupamento) Para clusters AKS públicos, use intervalos de endereços IP autorizados pelo servidor API. Inclua fontes como os endereços IP públicos de seus agentes de compilação de implantação, gerenciamento de operações e ponto de saída de 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 AKS limitando o tráfego que pode chegar ao servidor de API dos clusters. |
(Cluster) Proteja o servidor API utilizando o Microsoft Entra ID RBAC. Desabilitar contas locais para impor o acesso ao cluster exclusivamente por identidades baseadas em Microsoft Entra ID. |
Proteger o acesso ao servidor de API do Kubernetes é uma das coisas mais importantes que você pode fazer para proteger seu cluster. Integre o Kubernetes RBAC com o Microsoft Entra ID para controlar o acesso ao servidor de API. |
(Agrupamento) Use as 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 oferece um conjunto mais rico de recursos, incluindo ordenação e prioridade de políticas, regras de negação e regras de correspondência mais flexíveis. |
(Cluster) Proteja clusters e pods usando a Azure Policy. | A Política do Azure pode ajudar a aplicar a imposição e salvaguardas em escala em seus clusters de maneira centralizada e consistente. Ele também pode controlar quais funções são concedidas aos pods e detetar se algo está a violar a política da empresa. |
(Agrupamento) Proteja o acesso do contêiner aos recursos. Limite o acesso a ações que os contêineres podem executar. Forneça o menor número de permissões e evite o uso de escalonamento raiz ou privilegiado. Para contentores baseados em Linux, consulte Acesso seguro de contentores a recursos utilizando funcionalidades de segurança nativas do Linux. |
Ao restringir as 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 seja comprometido, os danos potenciais sejam minimizados. |
(Agrupamento) Controle o tráfego de saída do cluster garantindo que esse tráfego 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 impeçam 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 AKS. |
(Agrupamento) Use o de código aberto de ID de carga de trabalho do Microsoft Entra e o de driver CSI do Secrets Store com o Key Vault. | Esses recursos ajudam a proteger e a rodar segredos, certificados e cadeias de conexão no Key Vault usando forte criptografia. Eles fornecem um log de auditoria de acesso e mantêm os segredos fundamentais fora do pipeline de implantação. |
(Agrupamento) Use Microsoft Defender for Containers. | O Microsoft Defender for Containers 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 concentra-se em detetar padrões de gastos, priorizar investimentos em áreas críticas e otimizar em outras para respeitar o orçamento da organização, ao mesmo tempo que satisfaz as necessidades empresariais.
Os princípios de projeto de Otimização de Custos fornecem uma estratégia de design de alto nível para alcançar esses objetivos e fazer compromissos conforme necessário no projeto técnico relacionado ao AKS e ao seu ambiente.
Lista de verificação de estruturação
Inicie sua estratégia de design com base na lista de verificação de revisão de projeto para Otimização de Custos para investimentos. Ajuste o design para que a carga de trabalho esteja alinhada com o orçamento alocado para a carga de trabalho. Seu design deve usar os recursos certos do Azure, monitorar investimentos e encontrar oportunidades para otimizar ao longo do tempo.
(Cluster) Inclua os níveis de preços para o AKS no seu modelo de custo. Para estimar custos, use a calculadora de preços do Azure e teste diferentes planos de configuração e pagamento na calculadora.
(Cluster) Obtenha as melhores taxas para a sua carga de trabalho. Use a SKU de VM apropriada 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 maior tempo de inatividade.
Se planear corretamente a capacidade e a sua carga de trabalho for previsível e de longa duração, inscreva-se para Reservas do Azure ou um plano de poupança para reduzir os seus custos com recursos.
Opte por Máquinas Virtuais Spot do Azure para usar a capacidade não utilizada do Azure com descontos significativos. Estes descontos podem atingir até 90% dos preços pré-pagos. 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 borda, também poderá usar de Benefício Híbrido do Azure para reduzir custos ao executar aplicativos em contêineres nesses cenários.
(Cluster e carga de trabalho) Otimize 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 isso não afete seus clientes ou crie taxas de rede extras. A região onde 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 no Azure.
Mantenha imagens pequenas e otimizadas para ajudar a reduzir custos, porque novos nós terão de descarregar essas imagens. Falhas de solicitação do usuário ou tempos limite quando o aplicativo está sendo iniciado podem levar ao provisionamento excessivo. Crie imagens de uma forma que permita que o contêiner seja iniciado o mais rápido possível para ajudar a evitar falhas e tempos limites.
Analise as recomendações de Otimização de Custos em Práticas recomendadas para monitorar o Kubernetes com o Azure Monitor para determinar a melhor estratégia de monitoramento para suas cargas de trabalho. Analise 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) Otimize os custos de dimensionamento da carga de trabalho. Considere configurações alternativas de dimensionamento vertical e horizontal 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 permitir a otimização de custos é a disseminação de um cluster de economia de custos. Desenvolva uma mentalidade de eficiência de custos que inclua a colaboração entre as equipes de finanças, operações e engenharia para impulsionar o alinhamento em metas de economia de custos e trazer transparência aos custos de nuvem.
Recomendações
Recomendação | Benefício |
---|---|
Alinhe a seleção de SKU AKS e o tamanho do disco gerido com os requisitos da carga de trabalho. | Adequar sua seleção às demandas de carga de trabalho ajuda a garantir que você não pague por recursos desnecessários. |
(Agrupamento) Escolha os tipos de instância de VM certos para seus pools de nós AKS . Para determinar os tipos corretos de instância de VM, 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 de execução de aplicativos no AKS. Escolher uma instância de alto desempenho sem uma utilização adequada pode levar a gastos desperdiçados. A escolha de uma instância menos poderosa pode levar a problemas de desempenho e aumento do tempo de inatividade. |
(Agrupamento) Escolha VMs com base na arquitetura mais eficiente em termos de energia do Azure Resource Manager. O AKS suporta a criação de pools de nós Arm64 e uma combinação de nós das arquiteturas Intel e Resource Manager dentro de um cluster. | A arquitetura Arm64 fornece uma melhor relação preço/desempenho devido à sua menor utilização de energia e desempenho de computação eficiente. Esses recursos podem trazer um melhor desempenho a um custo mais baixo. |
(Agrupamento) Ative o escalonador automático do cluster para reduzir automaticamente o número de nós do agente em resposta ao excesso de capacidade de recursos. | Reduzir automaticamente o número de nós em seu cluster AKS permite executar um cluster eficiente quando a demanda é baixa e aumentar a escala quando a demanda aumenta. |
(Agrupamento) Ative o aprovisionamento automático de nó para automatizar a escolha 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 de VM ideal para executar cargas de trabalho da maneira mais eficiente e econômica. |
(Carga de trabalho) Use HorizontalPodAutoscaler para ajustar o número de pods numa implementação, com base na utilização da CPU ou outras métricas. | A redução automática do número de pods quando a demanda é baixa e a expansão quando a demanda aumenta resulta em uma operação mais econômica da sua carga de trabalho. |
(Carga de trabalho) Use VerticalPodAutoscaler (visualização) para dimensionar corretamente os seus pods e definir dinamicamente requisitos e limites com base no uso histórico. | Ao definir solicitações de recursos e limites em contêineres para cada carga de trabalho, o VerticalPodAutoscaler libera CPU e memória para outros pods e ajuda a garantir a utilização eficaz de seus clusters AKS. |
(Cluster) Configure o complemento de análise de custos do AKS . | A extensão de cluster de análise de custos permite obter informações granulares sobre os custos associados a vários recursos do Kubernetes em seus clusters ou namespaces. |
Excelência Operacional
A Excelência Operacional concentra-se principalmente em procedimentos para práticas de desenvolvimento de , observabilidade e gestão de lançamento.
Os princípios de design da Excelência Operacional fornecem uma estratégia de design de alto nível que visam cumprir os requisitos operacionais da carga de trabalho.
Lista de verificação de estruturação
Inicie sua estratégia de design com base na lista de verificação de revisão de projeto para Excelência Operacional para definir processos de observabilidade, teste e implantação. Consulte as melhores práticas do AKS e o guia de operações do Dia 2 para aprender sobre as principais considerações a compreender e implementar.
(Cluster) Implementar uma abordagem de implantação de infraestrutura como código (IaC). Use uma abordagem de implantação declarativa baseada em modelo usando Bicep, Terraform ou ferramentas semelhantes. Certifique-se de que todas as implantações sejam repetíveis, rastreáveis e armazenadas em um repositório de código-fonte. Para obter mais informações, consulte os de início rápido na documentação do produto AKS.
(Cluster e carga de trabalho) Automatize implantações de infraestrutura e carga de trabalho. Use 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 com seu sistema de controle de origem 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 é realizado usando GitOps.
Use processos de implantação repetíveis e automatizados para sua carga de trabalho dentro do ciclo de vida de desenvolvimento de software.
(Cluster e carga de trabalho) Implementar uma estratégia de monitorização abrangente. Colete logs e métricas para monitorar a integridade da carga de trabalho, identificar tendências de desempenho e confiabilidade e solucionar problemas. Analise as Práticas recomendadas para monitorizar Kubernetes com o Azure Monitor e as Well-Architected Recomendações para projetar e criar um sistema de monitorização para determinar a melhor estratégia de monitorização para as 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 possa ser coletada e que também inclua os estados de atividade e prontidão.
(Cluster e carga de trabalho) Implementar testes em estratégias de produção. Os testes em produção usam 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 caóticas que visam o Kubernetes para identificar problemas de confiabilidade de aplicativos ou plataformas.
do Azure Chaos Studio pode ajudar a simular falhas e acionar situações de recuperação de desastres.
(Cluster e carga de trabalho) Impor a governança da carga de trabalho. Política do Azure ajuda a garantir a conformidade consistente com os padrões organizacionais, automatiza a aplicação de políticas e fornece visibilidade e controle centralizados sobre os recursos do cluster.
Analise a secção de políticas do Azure, para saber mais sobre as políticas embutidas disponíveis para o AKS.
(Cluster e carga de trabalho) Use implantações de nível de carimbo e azul-verde para cargas de trabalho de missão crítica. Uma abordagem de implantação azul-verde de nível de carimbo pode aumentar a confiança na liberação de alterações e permite atualizações sem tempo de inatividade, pois as compatibilidades com dependências downstream, como a plataforma Azure, provedores de recursos e módulos IaC, podem ser validadas.
O Kubernetes e os controladores de entrada suportam muitos padrões avançados de implantação para inclusão em seu processo de engenharia de versão. Considere padrões como implantações azul-esverdeadas ou lançamentos canários.
(Cluster e carga de trabalho) Tornar as cargas de trabalho mais sustentáveis. Tornar as cargas de trabalho mais sustentáveis e eficientes na nuvem requer a combinação de esforços em torno da otimização de custos , redução das emissões de carbonoe otimização do consumo de energia. Otimizar o custo do aplicativo é o passo inicial para tornar as cargas de trabalho mais sustentáveis.
Consulte Princípios de engenharia de software sustentável no AKS para aprender a criar cargas de trabalho AKS sustentáveis e eficientes.
Recomendações
Recomendação | Benefício |
---|---|
(Agrupamento) Operacionalize os padrões de configuração de cluster e pod usando políticas do Azure para AKS. | As políticas do Azure para AKS podem ajudá-lo a aplicar imposição em larga escala e proteções nos 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 Kubernetes Event Driven Autoscaler (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 rico catálogo de mais de 50 escaladores KEDA. |
Eficiência de desempenho
A Eficiência de Desempenho tem a ver manter a experiência do usuário, mesmo quando há um aumento na de carga por meio do gerenciamento de capacidade. A estratégia inclui dimensionar recursos, identificar e otimizar potenciais gargalos e otimizar para obter o máximo desempenho.
Os princípios de design de Eficiência de Performance fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade de acordo com o uso esperado.
Lista de verificação de estruturação
Inicie sua estratégia de design com base na lista de verificação de revisão de projeto para Eficiência de Desempenho para definir uma linha de base com base em indicadores-chave de desempenho para AKS.
(Cluster e carga de trabalho) Realizar planejamento de capacidade. Execute e itere em um exercício de plano de capacidade detalhado que inclui SKU, configurações de 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 escala. Configure o dimensionamento para garantir que os recursos sejam ajustados de forma eficiente para atender às demandas de carga de trabalho sem uso excessivo ou desperdício. Use recursos do AKS como o dimensionamento automático de cluster e o HorizontalPodAutoscaler para atender dinamicamente às suas necessidades de carga de trabalho com menos pressão sobre as 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 entender os vários aspetos da configuração de dimensionamento.
(Cluster e carga de trabalho) Realizar testes de desempenho. Execute atividades contínuas de teste de carga que exerçam o dimensionador automático de pod e cluster. Comparar os resultados com as metas de desempenho e as bases de referência estabelecidas.
(Cluster e carga de trabalho) Dimensione cargas de trabalho e fluxos de forma independente. Separe cargas de trabalho e fluxos em pools de nós diferentes para permitir dimensionamento independente. Siga as orientações em Otimizar o projeto de carga de trabalho usando fluxos para identificar e priorizar os seus fluxos.
Recomendações
Recomendação | Benefício |
---|---|
(Agrupamento) Ative o escalador automático de clusters para ajustar automaticamente o número de nós de agente em resposta às demandas de carga de trabalho. Utilize o HorizontalPodAutoscaler para ajustar o número de pods numa implementação, dependendo da utilização da CPU ou de outras métricas. |
A capacidade de aumentar ou reduzir automaticamente o número de nós e o número de pods em seu cluster AKS permite que você execute um cluster eficiente e econômico. |
(Cluster e carga de trabalho) Separe cargas de trabalho em pools de nós diferentes e considere dimensionamento do pool de nós do usuários. | Ao contrário dos pools de nós do sistema, que exigem sempre ter nós em execução, os pools de nós do utilizador permitem escalar para cima ou para baixo. |
(Carga de trabalho) Utilize os recursos avançados do agendador do AKS para implementar o balanceamento avançado de recursos para as cargas de trabalho que requerem estes recursos. | Ao gerenciar clusters AKS, muitas vezes você 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. KEDA permite que as suas aplicações sejam dimensionadas com base nos eventos, tais como o número de mensagens numa fila ou o atraso de um tópico. |
Políticas do Azure
O Azure fornece um extenso 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 de Política do Azure para Kubernetes, e dentro do cluster. Muitas das políticas de recursos do Azure vêm em variantes de Auditoria/Negação e Implementar Se Não Existir. Além das definições internas da Política do Azure, você pode criar políticas personalizadas para o recurso AKS e para o complemento Política do Azure para Kubernetes.
Algumas das recomendações neste artigo podem ser auditadas através da Política do Azure. Por exemplo, você pode verificar as seguintes políticas de cluster:
- Os clusters possuem sondas de integridade de prontidão ou vivacidade configuradas para a sua especificação de pod.
- Microsoft Defender para políticas baseadas na nuvem.
- Modos de autenticação e políticas de configuração, como Microsoft Entra ID, RBAC e desactivar 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.
- Impedir a invocação do comando.
Você também pode verificar as seguintes políticas de cluster e carga de trabalho:
- Iniciativas de segurança de pods em clusters do Kubernetes para cargas de trabalho baseadas em 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 do cluster para montagem automática.
- Montagem, drivers de volume e políticas de sistema de arquivos.
- Políticas de rede de pod e contêiner, como rede de 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 obter uma governança abrangente, revise as definições internas da Política do Azure para do Kubernetes e outras políticas que possam afetar a segurança da camada de computação.
Recomendações do Azure Advisor
O Azure Advisor é 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, segurança, relação custo-benefício, desempenho e excelência operacional do AKS.
Conteúdo relacionado
Considere os seguintes artigos como recursos que demonstram as recomendações destacadas neste artigo.
- Arquitetura de linha de base AKS
- Arquitetura avançada de microsserviços AKS
- Cluster AKS para uma carga de trabalho PCI-DSS
- Linha de base AKS para clusters multirregionais
- AKS Landing Zone Acelerador
Crie experiência em implementação usando a seguinte documentação do produto: