Continuidade de negócios à escala empresarial e recuperação de desastres para o Serviço Azure KubernetesEnterprise-scale business continuity and disaster recovery for Azure Kubernetes Service

A sua organização precisa de conceber capacidades adequadas ao nível do serviço Azure Kubernetes (AKS) para satisfazer os seus requisitos específicos.Your organization needs to design suitable Azure Kubernetes Service (AKS) platform-level capabilities to meet its specific requirements. Estes serviços de aplicação têm requisitos relacionados com o objetivo do tempo de recuperação (RTO) e o objetivo do ponto de recuperação (RPO).These application services have requirements related to recovery time objective (RTO) and recovery point objective (RPO). Há múltiplas considerações a abordar para a recuperação de desastres da AKS.There are multiple considerations to address for AKS disaster recovery. O seu primeiro passo é definir um acordo de nível de serviço (SLA) para a sua infraestrutura e aplicação.Your first step is to define a service-level agreement (SLA) for your infrastructure and application. Saiba mais sobre o Serviço SLA for Azure Kubernetes (AKS).Learn about the SLA for Azure Kubernetes Service (AKS). Consulte a secção de detalhes do SLA para obter informações sobre os cálculos mensais de tempo de paragem.See the SLA details section for information about monthly uptime calculations.

Considerações de conceçãoDesign considerations

Considere os seguintes fatores:Consider the following factors:

  • O cluster AKS deve utilizar vários nós num conjunto de nós para fornecer o nível mínimo de disponibilidade para a sua aplicação.The AKS cluster should use multiple nodes in a node pool to provide the minimum level of availability for your application.

  • Definir pedidos e limitesde pod .Set pod requests and limits. A definição destes limites permite que kubernetes:Setting these limits lets Kubernetes:

    • Dê eficientemente CPU e recursos de memória para as cápsulas.Efficiently give CPU and memory resources to the pods.

    • Tem maior densidade de contentores num nó.Have higher container density on a node.

    Os limites também podem aumentar a fiabilidade com custos reduzidos devido a uma melhor utilização do hardware.Limits can also increase reliability with reduced costs because of better use of hardware.

  • Adequação da AKS para Zonas de Disponibilidade ou conjuntos de disponibilidade.AKS suitability for Availability Zones or availability sets.

    • Escolha uma região que suporte Zonas de Disponibilidade.Choose a region that supports Availability Zones.

    • Zonas de disponibilidade só podem ser definidas quando a piscina de nós é criada e não pode ser alterada mais tarde.Availability Zones can only be set when the node pool is created and can't be changed later. O suporte multizona aplica-se apenas a piscinas de nó.Multizone support only applies to node pools.

    • Para um benefício zonal completo, todas as dependências de serviços também devem apoiar zonas.For complete zonal benefit, all service dependencies must also support zones. Se um serviço dependente não suporta zonas, é possível que uma falha de zona possa fazer com que esse serviço falhe.If a dependent service doesn't support zones, it's possible that a zone failure could cause that service to fail.

    • Para uma maior disponibilidade para além do que as Zonas de Disponibilidade podem alcançar, executar vários clusters AKS em diferentes regiões emparelhadas.For higher availability beyond what Availability Zones can achieve, run multiple AKS clusters in different paired regions. Se um recurso Azure apoiar a geo-redundância, forneça o local onde o serviço redundante terá a sua região secundária.If an Azure resource supports geo-redundancy, provide the location where the redundant service will have its secondary region.

  • Deve estar ciente das orientações para a recuperação de desastres na AKS.You should be aware of guidelines for disaster recovery in AKS. Em seguida, considere se se aplicam aos clusters AKS que você usa para Azure Dev Spaces.Then consider whether they apply to the AKS clusters that you use for Azure Dev Spaces.

  • Crie consistentemente backups para aplicações e dados.Consistently create backups for applications and data.

    • Um serviço não estatal pode ser replicado de forma eficiente.A non-stateful service can be replicated efficiently.

    • Se precisar de armazenar o estado no cluster (não recomendado), certifique-se de que faz o back up com frequência na região emparelhada.If you need to store state in the cluster (not recommended), make sure you back up the data frequently in the paired region.

  • Atualização e manutenção do cluster.Cluster update and maintenance.

    • Mantenha sempre o seu agrupamento atualizado.Always keep your cluster up to date.

    • Esteja atento ao processo de libertação e depreciação.Be aware of the release and deprecation process.

    • Planeie as suas atualizações e manutenção com antecedência.Plan your updates and maintenance in advance.

  • Conectividade da rede se ocorrer uma falha.Network connectivity if a failover occurs.

    • Escolha um router de tráfego que possa distribuir tráfego por zonas ou regiões, dependendo da sua exigência.Choose a traffic router that can distribute traffic across zones or regions, depending on your requirement. Esta arquitetura implementa o Azure Load Balancer porque pode distribuir tráfego não web em zonas.This architecture deploys Azure Load Balancer because it can distribute non-web traffic across zones.

    • Se precisar de distribuir tráfego por regiões, considere utilizar a Porta frontal do Azure.If you need to distribute traffic across regions, consider using Azure Front Door.

  • Falhas planeadas e não planeadas.Planned and unplanned failovers.

    • Ao configurar cada serviço Azure, escolha funcionalidades que suportem a recuperação de desastres.When setting up each Azure service, choose features that support disaster recovery. Por exemplo, nesta arquitetura, permitir o Registo de Contentores Azure para a geo-replicação.For example, in this architecture, enable Azure Container Registry for geo-replication. Se uma região cair, ainda pode tirar imagens da região replicada.If a region goes down, you can still pull images from the replicated region.
  • Manter capacidades de devOps de engenharia para atingir objetivos de nível de serviço.Maintain engineering DevOps capabilities to reach service level goals.

  • Determine se precisa de um SLA apoiado financeiramente para o seu ponto final do servidor API da Kubernetes.Determine whether you need a financially backed SLA for your Kubernetes API server endpoint.

Recomendações de designDesign recommendations

Seguem-se as melhores práticas para o seu design:The following are best practices for your design:

  • Utilize três nós para a piscina de nós do sistema.Use three nodes for the system node pool. Para a piscina de nó do utilizador, comece com nada menos que dois nós.For the user node pool, start with no less than two nodes. Se precisar de uma maior disponibilidade, ponda mais nós.If you need higher availability, set up more nodes.

  • Isole a sua aplicação dos serviços do sistema colocando-a num conjunto de nós separado.Isolate your application from the system services by placing it in a separate node pool. Desta forma, os serviços da Kubernetes funcionam com nós dedicados e não competem com outros serviços.This way, Kubernetes services run on dedicated nodes and don't compete with other services. Use etiquetas, etiquetas e manchas para identificar a piscina de nós para agendar a sua carga de trabalho.Use tags, labels, and taints to identify the node pool to schedule your workload.

  • A manutenção regular do seu cluster como fazer atualizações atempadamente é crucial para a fiabilidade.Regular upkeep of your cluster like making timely updates is crucial for reliability. Esteja atento à janela suportada das versões Kubernetes na AKS e planeie as suas atualizações com antecedência.Be mindful of supported window of Kubernetes versions on AKS and plan your updates in advance. Além disso, recomenda-se monitorizar a saúde das cápsulas através de sondas.Also, monitoring the health of the pods through probes is recommended.

  • Sempre que possível, retire o estado de serviço dos contentores internos.Whenever possible, remove service state from inside containers. Em vez disso, utilize uma plataforma Azure como um serviço (PaaS) que suporte a replicação multi-região.Instead, use an Azure platform as a service (PaaS) that supports multiregion replication.

  • Garantir recursos de pod.Ensure pod resources. É altamente recomendado que as implementações especifiquem os requisitos de recursos do pod.It's highly recommended that deployments specify pod resource requirements. O agendador pode então agendar adequadamente a cápsula.The scheduler can then appropriately schedule the pod. A fiabilidade desvaloriza significativamente quando as cápsulas não estão programadas.Reliability depreciates significantly when pods aren't scheduled.

  • Crie várias réplicas na implementação para lidar com perturbações como falhas de hardware.Set up multiple replicas in the deployment to handle disruptions like hardware failures. Para eventos planeados como atualizações e atualizações, um orçamento de disrupção pode garantir que o número necessário de réplicas de pod existe para lidar com a carga de aplicação esperada.For planned events like updates and upgrades, a disruption budget can ensure the required number of pod replicas exist to handle expected application load.

  • As suas aplicações podem utilizar o Azure Storage para os seus dados.Your applications might use Azure Storage for their data. Como as suas aplicações estão espalhadas por vários clusters AKS em diferentes regiões, você precisa manter o armazenamento sincronizado.Because your applications are spread across multiple AKS clusters in different regions, you need to keep the storage synced. Aqui estão duas formas comuns de replicar o armazenamento:Here are two common ways to replicate storage:

    • Replicação assíncronea baseada em infraestruturasInfrastructure-based asynchronous replication

    • Replicação assíncronea baseada em aplicaçõesApplication-based asynchronous replication

  • Estimativa de limites de vagem.Estimate pod limits. Teste e estabeleça uma linha de base.Test and establish a baseline. Comece com valores iguais para pedidos e limites.Start with equal values for requests and limits. Em seguida, afina gradualmente esses valores até estabelecer um limiar que pode causar instabilidade no cluster.Then, gradually tune those values until you've established a threshold that can cause instability in the cluster. Os limites de pod podem ser especificados nos seus manifestos de implantação.Pod limits can be specified in your deployment manifests.

    As características incorporadas fornecem uma solução para a complexa tarefa de lidar com falhas e perturbações na arquitetura de serviços.The built-in features provide a solution to the complex task of handling failures and disruptions in service architecture. Estas configurações ajudam a simplificar tanto a automação de design como a automatização de implantação.These configurations help to simplify both design and deployment automation. Quando uma organização definiu um padrão para o SLA, RTO e RPO, pode usar serviços incorporados para Kubernetes e Azure para alcançar os seus objetivos de negócio.When an organization has defined a standard for the SLA, RTO, and RPO, it can use built-in services to Kubernetes and Azure to achieve its business goals.

  • Definir orçamentos de disrupção do casulo.Set pod disruption budgets. Esta definição verifica quantas réplicas numa implementação pode retirar durante um evento de atualização ou atualização.This setting checks how many replicas in a deployment you can take down during an update or upgrade event.

  • Impor quotas de recursos nos espaços de nome de serviço.Enforce resource quotas on the service namespaces. A quota de recursos num espaço de nome garantirá que os pedidos e limites do pod são devidamente definidos numa implantação.The resource quota on a namespace will ensure pod requests and limits are properly set on a deployment.

    • A fixação de quotas de recursos ao nível do cluster pode causar problemas ao implementar serviços de parceiros que não têm pedidos e limites adequados.Setting resources quotas at the cluster level can cause problems when deploying partner services that don't have proper requests and limits.
  • Execute regularmente a versão mais recente da kube-advisor ferramenta de código aberto para detetar problemas no seu cluster.Regularly run the latest version of the kube-advisor open-source tool to detect issues in your cluster.

  • Guarde as imagens do seu contentor no Registo do Contentor de Azure e replique o registo em cada região da AKS.Store your container images in Azure Container Registry and geo-replicate the registry to each AKS region.

  • AKS pode ser usada como um serviço gratuito, mas esse nível não oferece um SLA apoiado financeiramente.AKS can be used as a free service, but that tier doesn't offer a financially backed SLA. Para conseguir o SLA, tens de adicionar um SLA de tempo ao que compras.To get that SLA, you have to add an uptime SLA to what you buy. Recomendamos que todos os clusters de produção utilizem esta opção.We recommend all production clusters use this option. Reserva de clusters sem esta opção para clusters de pré-produção.Reserve clusters without this option for pre-production clusters. Quando combinado com As Zonas de Disponibilidade, o servidor API SLA da Kubernetes é aumentado para 99,95%.When combined with Availability Zones, the Kubernetes API server SLA is increased to 99.95%. As suas piscinas de nó, e outros recursos estão cobertos pelo seu próprio SLA.Your node pools, and other resources are covered under their own SLA.

  • Utilize várias regiões e locais de observação para a conectividade ExpressRoute.Use multiple regions and peering locations for ExpressRoute connectivity.

    Se ocorrer uma falha que afete uma região de Azure ou a localização do fornecedor de observação, uma arquitetura de rede híbrida redundante pode ajudar a garantir a conectividade ininterrupta das instalações cruzadas.If an outage affecting an Azure region or peering provider location occurs, a redundant hybrid network architecture can help ensure uninterrupted cross-premises connectivity.

  • Interligar regiões com a rede virtual global de observação.Interconnect regions with global virtual network peering. Se os clusters precisarem de falar uns com os outros, a ligação de ambas as redes virtuais entre si pode ser conseguida através do olhar de rede virtual.If the clusters need to talk to each other, connecting both virtual networks to each other can be achieved through virtual network peering. Esta tecnologia interliga redes virtuais entre si, fornecendo alta largura de banda através da rede de espinha dorsal da Microsoft, mesmo em diferentes regiões geográficas.This technology interconnects virtual networks to each other providing high bandwidth across Microsoft's backbone network, even across different geographic regions.

  • Utilizando um protocolo de qualquercast baseado em TCP dividido,a Porta Frontal Azure garante que os seus utilizadores finais se ligam prontamente ao ponto de presença da porta frontal mais próximo.Using split TCP-based anycast protocol, Azure Front Door ensures that your end users promptly connect to the nearest Front Door point of presence. Outras características da Porta frontal Azure incluem:Other features of Azure Front Door include:

    • Rescisão de TLSTLS termination

    • Domínio personalizadoCustom domain

    • Firewall de Aplicações WebWeb Application Firewall

    • Reescrever URLURL rewrite

    • Afinidade de sessãoSession affinity

    Reveja as necessidades do tráfego da sua aplicação para saber qual a solução mais adequada.Review the needs of your application traffic to learn which solution is the most suitable.