Backup e recuperação para AKS
O backup e a recuperação são uma parte essencial da estratégia operacional e de recuperação de desastres de qualquer organização. Um plano de backup e recuperação geralmente depende de um conjunto diversificado de tecnologias e práticas que se baseiam em fazer cópias periódicas de dados e aplicativos para um dispositivo ou serviço secundário separado. Se ocorrer uma falha do sistema, perda de dados ou desastre, essas cópias serão usadas para recuperar os dados e aplicativos e as operações de negócios das quais dependem.
Esta seção do guia de operações do Dia 2 do Serviço Kubernetes do Azure (AKS) descreve as práticas de backup e recuperação para o AKS.
Por que fazer backup do cluster AKS é importante
À medida que as implantações nativas da nuvem e o Kubernetes continuam a crescer em adoção, torna-se cada vez mais essencial para as organizações incluir clusters e cargas de trabalho do Kubernetes em uma estratégia abrangente de backup e recuperação.
A implementação de backup e recuperação no AKS permite:
- Crie uma cópia secundária da configuração e dos dados do seu cluster AKS, para usar se ocorrer uma falha irreversível do sistema, perda de dados ou desastre.
- Copie recursos do Kubernetes e dados de aplicativos de um cluster AKS para outro.
- Replique seu cluster AKS para criar outros ambientes.
- Tire instantâneos da carga de trabalho antes das operações de manutenção, como atualizações de versão do AKS.
- Aderir aos requisitos de proteção de dados para manter a conformidade regulamentar ou organizacional.
- Reverta rapidamente para uma implantação anterior se for detetado um problema com uma implantação ou alteração recente.
Embora os backups ajudem a restaurar sua carga de trabalho se ocorrer um problema, eles não fornecem alta disponibilidade (HA).
Quando se trata de alta disponibilidade intrarregião e recuperação de desastres entre regiões no AKS, você pode considerar várias outras opções, como:
- Zonas de disponibilidade: o AKS suporta o uso de zonas de disponibilidade, que são datacenters fisicamente separados dentro de uma região do Azure. Ao implantar clusters AKS em várias zonas de disponibilidade, você pode garantir maior resiliência e tolerância a falhas em uma região. Isso permite que seus aplicativos permaneçam operacionais mesmo se uma zona sofrer uma interrupção.
- Opções de redundância para volumes persistentes: o AKS fornece várias opções de redundância para volumes persistentes. O driver Azure Disk CSI para Kubernetes dá suporte a classes de armazenamento internas e classes de armazenamento personalizadas que usam o armazenamento com redundância local (LRS) ou o armazenamento redundante de zona (ZRS) para melhor resiliência dentro da região. Para obter mais informações, consulte Parâmetros do driver.
- Azure Kubernetes Fleet Manager: O Azure Kubernetes Fleet Manager permite cenários multi-cluster e em escala intrarregião e entre regiões para clusters AKS.
- Opções de redundância geográfica para o Azure Container Registry (ACR): o Azure Container Registry (ACR) oferece recursos de replicação geográfica. Com a redundância geográfica, suas imagens de contêiner são replicadas em diferentes regiões do Azure. Portanto, mesmo que uma determinada região sofra uma interrupção, suas imagens estarão disponíveis, o que fornece maior disponibilidade para seu registro de contêiner.
Você também pode usar metodologias como Infrastructure as Code (IaC), Azure Pipelines, GitOps e Flux para reimplantar rapidamente suas cargas de trabalho se ocorrer um desastre.
Para saber mais sobre essas metodologias, você pode revisar estes artigos:
- Criar e implementar no Azure Kubernetes Service com o Azure Pipelines
- Tutorial: Implantar aplicativos usando GitOps com o Flux v2
- Understand the structure and syntax of ARM templates (Compreender a estrutura e a sintaxe dos modelos do Resource Manager)
- O que é o Bicep?
- Visão geral do Terraform no Azure - O que é Terraform?
O que fazer backup
Ao considerar o backup e a recuperação para clusters AKS e Kubernetes em geral, é crucial identificar exatamente quais componentes devem ser incluídos em um backup para garantir uma restauração bem-sucedida. Estes componentes críticos consistem principalmente em:
Estado do cluster: refere-se à configuração ou estado atual e desejado de todos os objetos Kubernetes dentro do cluster. Ele engloba vários objetos, como implantações, pods, serviços e muito mais. O estado do cluster é armazenado em um banco de dados de par chave-valor etcd altamente disponível, que muitas vezes só é acessível a partir do servidor de API, como é o caso de clusters gerenciados como o AKS. O estado do cluster é definido de forma declarativa e é o resultado de todos os arquivos de configuração do Kubernetes aplicados ao cluster, como manifestos YAML.
Dados do aplicativo: referem-se aos dados criados, gerenciados ou acessados pelas cargas de trabalho em contêiner em execução no cluster. Para garantir a persistência de dados em reinicializações de pod ou contêiner, o Kubernetes recomenda armazenar dados de aplicativos em volumes persistentes. Esses volumes podem ser criados estática ou dinamicamente e podem ser apoiados por vários tipos de armazenamento persistente, oferecendo flexibilidade e escalabilidade para requisitos de armazenamento e gerenciamento de dados.
Embora um backup completo do cluster exija que o estado do cluster e os dados do aplicativo sejam incluídos como uma única unidade, determinar o escopo ideal de cada backup depende de vários fatores. Por exemplo, a presença de fontes alternativas, como pipelines de Integração Contínua e Entrega Contínua (CI/CD), pode permitir uma recuperação mais fácil do estado do cluster. Além disso, o tamanho dos dados do aplicativo desempenha um papel nos custos de armazenamento e no tempo necessário para as operações de backup e recuperação.
A estratégia ideal de backup e recuperação depende muito do aplicativo e do ambiente específicos. Por conseguinte, o âmbito da cópia de segurança deve ser avaliado caso a caso. Ele também deve considerar fatores como a importância do estado do cluster e o volume de dados do aplicativo.
O direcionamento de outros componentes, como nós de cluster (VMs) individuais ou sistemas de arquivos e volumes locais, que normalmente são incluídos nos planos tradicionais de backup e recuperação para sistemas baseados em servidor, não é relevante no Kubernetes. O estado e os dados relevantes não são persistidos em nós individuais ou sistemas de arquivos locais da mesma forma que os sistemas tradicionais.
Introdução às opções de backup e recuperação para o AKS
Há diferenças notáveis entre aplicativos monolíticos tradicionais e cargas de trabalho executadas em um cluster Kubernetes, que apresentam vários desafios para backup e recuperação. As cargas de trabalho do Kubernetes são intencionalmente projetadas para serem altamente dinâmicas e distribuídas, com dados persistentes em volumes persistentes externos suportados por vários recursos e serviços subjacentes.
Para oferecer suporte efetivo a ambientes Kubernetes, as soluções de backup e recuperação devem possuir Kubernetes e reconhecimento de aplicativos. Eles devem oferecer um grau de automação, confiabilidade e integração, que muitas vezes não é encontrado em ferramentas de backup e recuperação legadas ou mais convencionais.
Várias soluções de backup e recuperação nativas do Kubernetes estão disponíveis, com opções que variam de código aberto a fechado e oferecendo diferentes modelos de licenciamento.
A seguir estão alguns exemplos de soluções de backup e recuperação que você pode usar com o AKS. Um exemplo notável é a solução de primeira parte totalmente gerenciada da Microsoft chamada Azure Kubernetes Service (AKS) Backup, que fornece um serviço integrado ao Azure projetado para backup e recuperação de clusters AKS e suas cargas de trabalho. Esta lista não é exaustiva e fornece apenas algumas opções disponíveis.
AKS Backup
O AKS Backup é a oferta do Azure para fazer backup e restaurar seus clusters AKS. É um processo simples e nativo do Azure, que permite fazer backup e restaurar os aplicativos e dados em contêineres em execução em seus clusters AKS.
O AKS Backup permite backups sob demanda ou agendados de dados completos ou refinados do estado do cluster e do aplicativo armazenados em volumes persistentes baseados em disco do Azure. Ele se integra ao Centro de Backup do Azure para fornecer uma única área no portal do Azure que pode ajudá-lo a governar, monitorar, operar e analisar backups em escala.
Consulte Sobre o AKS Backup usando o Backup do Azure para obter uma descrição detalhada de como o AKS Backup funciona e seus recursos.
Kasten
Kasten é um produto comercial, que fornece às equipes de operações um sistema fácil de usar e seguro para backup e recuperação de aplicativos Kubernetes. Ele está disponível em uma versão gratuita com funcionalidade limitada e sem suporte, e uma versão paga que inclui mais recursos e suporte ao cliente.
Quando o Kasten é implantado como um operador Kubernetes dentro do cluster, ele fornece uma solução de backup abrangente. Ele oferece um painel de gerenciamento para controle centralizado e visibilidade. Com o Kasten, os usuários podem se beneficiar de backups incrementais e com reconhecimento de aplicativos, permitindo uma proteção de dados eficiente. Além disso, o Kasten oferece recursos de recuperação de desastres. Esses recursos incluem failover e failback automatizados, além de recursos para migração de dados e garantia de segurança.
Para obter mais detalhes sobre o conjunto de recursos do Kasten, consulte a documentação do Kasten K10. Para saber como usar efetivamente o Kasten com clusters AKS, consulte Instalando o K10 no Azure.
Velero
Velero é uma ferramenta de backup e recuperação de código aberto amplamente utilizada para Kubernetes. Oferece uma versão gratuita e irrestrita disponível para todos os usuários, com suporte e manutenção fornecidos por uma comunidade de colaboradores do projeto.
O Velero é executado como uma implantação no cluster e fornece um conjunto abrangente de recursos para backup, recuperação e migração de dados de aplicativos. Embora os painéis não estejam disponíveis imediatamente, eles podem ser adicionados por meio de integrações externas.
Para obter mais informações sobre seu conjunto de recursos e saber como integrá-lo a clusters AKS, consulte a documentação do Velero.
Instalação e configuração do AKS Backup
Para instalar e configurar o AKS Backup, siga estes passos:
- Consulte Pré-requisitos para o Backup do AKS usando o Backup do Azure para obter uma descrição detalhada dos pré-requisitos para usar o Backup do AKS com seu cluster AKS.
- Analise a matriz de suporte do AKS Backup para obter uma descrição detalhada da disponibilidade da região, cenários suportados e limitações do AKS Backup.
- Consulte Gerenciar backups do AKS usando o Backup do Azure para obter orientação sobre como registrar os provedores de recursos necessários em suas assinaturas e gerenciar esses registros.
- Consulte Fazer backup do AKS usando o Backup do Azure para obter instruções detalhadas sobre como configurar o backup e a recuperação para seu cluster AKS usando o AKS Backup. As instruções incluem a criação e configuração de todos os recursos necessários do Azure, como cofre de backup, políticas de backup e instâncias de backup.
- Consulte Restaurar o AKS usando o Backup do Azure para obter instruções detalhadas sobre como executar restaurações completas ou no nível do item do seu cluster AKS a partir de uma instância de Backup existente.
Frequência e retenção de backup no AKS: definindo uma política de backup
Determinar a frequência de backup e o período de retenção é um aspeto fundamental das soluções de backup e recuperação. Esses parâmetros definem a frequência com que os backups são realizados e por quanto tempo eles são retidos antes da exclusão. A seleção da frequência de backup e do período de retenção para um cluster AKS e suas cargas de trabalho deve estar alinhada com as metas predefinidas de RPO (Recovery Point Objetive, objetivo de ponto de recuperação) e RTO (Recovery Time Objetive, objetivo de tempo de recuperação).
Em um cenário de Kubernetes, o RPO representa a quantidade máxima aceitável de estado de cluster ou perda de dados que pode ser tolerada. O RTO especifica o tempo máximo permitido entre o estado do cluster ou a perda de dados e a retomada das operações de cluster.
A frequência de backup e o período de retenção escolhidos são uma compensação entre os destinos desejáveis de RPO/RTO, os custos de armazenamento e a sobrecarga de gerenciamento de backup. Isso significa que não há uma configuração única para todos os clusters e cargas de trabalho do AKS, e a configuração ideal para cada cluster ou carga de trabalho deve ser definida caso a caso para atender aos requisitos do negócio, seguindo um planejamento e consideração cuidadosos. Os fatores relevantes a serem considerados ao definir a frequência de backup e o período de retenção de um cluster AKS incluem:
- Criticidade: o nível de criticidade associado ao cluster e seus dados de aplicativo de carga de trabalho em termos de continuidade de negócios.
- Padrões de acesso e taxa de alteração: a quantidade de estado do cluster e dados que são adicionados, modificados e excluídos em um determinado período de tempo.
- Volume de dados: o volume de dados que afeta os custos de armazenamento e o tempo necessário para concluir as operações de backup e recuperação.
- Conformidade: Os requisitos para retenção de dados e soberania de dados com base em regras internas de conformidade e regulamentos do setor.
No serviço AKS Backup, a frequência e o período de retenção do backup são armazenados como um recurso de política de backup, que se aplica ao estado do cluster e aos dados do aplicativo de volumes persistentes.
As políticas de backup no AKS Backup suportam backups diários e horários, com períodos de retenção de até 360 dias, enquanto várias políticas podem ser definidas e aplicadas ao mesmo cluster.
Consulte Criar uma política de backup para obter mais informações sobre como configurar políticas de backup no AKS Backup.
Outras considerações sobre backup
Para garantir que sua solução de backup e recuperação atenda aos requisitos e políticas da sua organização, considere os seguintes pontos:
- RPO (Recovery Point Objetive, objetivo de ponto de recuperação) e RTO (Recovery Time Objetive, objetivo de tempo de recuperação): determine se você tem metas específicas de RPO e RTO que precisam ser atendidas para suas operações de backup e recuperação.
- Volumes persistentes (PVs): verifique se você está usando volumes persistentes e verifique se a solução AKS Backup suporta seus tipos de PV. Consulte a matriz de suporte do AKS Backup para obter detalhes de compatibilidade.
- Escopo do backup: defina o que precisa ser feito backup, como namespaces específicos, tipos de recursos ou dados específicos dentro do cluster. Para obter mais informações, consulte Configurar uma tarefa de backup.
- Frequência e retenção de backup: determine a frequência com que você precisa executar backups e a duração pela qual você precisa retê-los. Essa configuração pode ser definida usando políticas de backup. Para obter mais informações, consulte Definindo uma política de backup.
- Seleção de clusters: decida se você precisa fazer backup de todos os clusters ou apenas de clusters de produção específicos com base em suas necessidades.
- Procedimento de restauração de teste: execute restaurações de teste periódicas para validar a confiabilidade e a usabilidade de sua estratégia de backup. Essa etapa é crucial para garantir a eficácia da solução de backup e recuperação. Para obter mais informações, consulte Restaurando um cluster AKS.
- Cenários suportados: Verifique se a solução AKS Backup suporta o seu cenário específico. Consulte a matriz de suporte do AKS Backup para obter informações sobre compatibilidade.
- Alocações de orçamento: considere se você tem alocações de orçamento específicas para operações de backup e restauração. Analise as informações de preços fornecidas pela solução AKS Backup para alinhá-las com seus requisitos orçamentários.
Ao levar essas outras considerações em consideração, você pode garantir que sua solução de backup e recuperação para o AKS atenda às necessidades e preferências da sua organização de forma eficiente e eficaz.
Localização e armazenamento de backup AKS
O AKS Backup usa um cofre de backup e uma conta de armazenamento para armazenar os diferentes tipos de dados capturados de um cluster durante um backup.
Para volumes persistentes baseados em disco, o AKS Backup usa instantâneos incrementais do Disco do Azure subjacente, que são armazenados em sua assinatura do Azure.
Um cofre de Backup é uma entidade de armazenamento segura no Azure, que é usada para armazenar dados de backup para cargas de trabalho suportadas pelo Backup do Azure, como clusters AKS. O Cofre de Backup em si contém as políticas de backup e os backups e pontos de recuperação criados por tarefas de backup.
O Azure gerencia automaticamente o armazenamento para um Cofre de Backup. Você pode escolher entre várias opções de redundância para os dados armazenados nele, que podem ser configuradas no ponto de criação do Backup Vault.
Uma conta de armazenamento é uma área de armazenamento para seus objetos de dados no Azure e é altamente configurável. Ele fornece várias opções de redundância intrarregião e entre regiões para garantir a durabilidade dos dados. O AKS Backup usa um contêiner de blob dentro de uma conta de armazenamento designada para fazer backups de alguns componentes do cluster AKS.
Os snapshots incrementais são backups point-in-time para discos gerenciados que, quando tirados, consistem apenas nas alterações desde o último snapshot. O primeiro instantâneo incremental é uma cópia completa do disco. Os snapshots incrementais subsequentes capturam apenas alterações delta em discos desde o último snapshot.
Usando o AKS Backup para migrar cargas de trabalho entre clusters AKS
Você pode usar o AKS Backup como um mecanismo de backup e recuperação para clusters específicos. O AKS Backup também suporta cenários de migração, permitindo que você faça um backup de um cluster e o restaure para outro, como:
- Restaurando um cluster de desenvolvimento para um cluster de preparo
- Replicando conteúdo em vários clusters
Para garantir que seu cenário seja suportado, consulte a seguinte documentação:
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Adam Sharif - Brasil | Assessor Técnico
- Joao Tavares - Portugal | Engenheiro de Escalonamento Sênior
Outros contribuidores:
- Paolo Salvatori - Brasil | Engenheiro de Clientes Principal, FastTrack for Azure
- Sonia Cuff - Brasil | Principal líder do Cloud Advocate
Próximos passos
Saiba mais sobre o AKS Backup
- Visão geral do AKS Backup
- Matriz de suporte do AKS Backup
- Pré-requisitos do AKS Backup
- Configurando o AKS Backup
- Criando um cofre de backup
- Criando uma política de backup
- Configurar cópias de segurança
- Restaurando um cluster AKS
- Práticas recomendadas de continuidade de negócios e recuperação de desastres para o AKS
- Padrões de confiabilidade - padrões de design de nuvem