Compartilhar via


Práticas recomendadas para armazenamento e backups no Serviço de Kubernetes do Azure (AKS)

À medida que você cria e gerencia clusters no Serviço de Kubernetes do Azure (AKS), os aplicativos geralmente precisam de armazenamento. Compreenda as necessidades de desempenho de pod e os mecanismos de acesso a fim de poder escolher o melhor armazenamento para seu aplicativo. O tamanho do nó do AKS pode afetar suas opções de armazenamento. Planeje maneiras de fazer backup e testar o processo de restauração para o armazenamento anexado.

Este artigo de práticas recomendadas se concentra em considerações de armazenamento para operadores de cluster. Neste artigo, você aprende:

  • Quais tipos de armazenamento estão disponíveis.
  • Como dimensionar corretamente os nós do AKS para desempenho de armazenamento.
  • Diferenças entre o provisionamento dinâmico e estático de volumes.
  • Maneiras de fazer backup e proteger seus volumes de dados.

Escolher o tipo de armazenamento apropriado

Orientação de melhor prática

Compreenda as necessidades de seu aplicativo para escolher o armazenamento correto. Use armazenamento de alto desempenho com apoios de SSDs para cargas de trabalho de produção. Planeje um armazenamento baseado em rede quando precisar de várias conexões simultâneas.

Os aplicativos geralmente exigem diferentes tipos e velocidades de armazenamento. Determine o tipo de armazenamento mais adequado fazendo as perguntas a seguir.

  • Seus aplicativos precisam de armazenamento que se conecta a pods individuais?
  • Seus aplicativos precisam de armazenamento compartilhado entre vários pods?
  • O armazenamento é para acesso a dados somente leitura?
  • O armazenamento será utilizado para gravar grandes quantidades de dados estruturados?

A tabela a seguir descreve os tipos de armazenamento disponíveis e suas funcionalidades:

Caso de uso Plug-in de volume Ler/gravar uma vez Muitos somente leitura Muitos ler/gravar Suporte a contêiner do Windows Server
Configuração compartilhada Arquivos do Azure Sim Sim Sim Sim
Dados de aplicativo estruturados Discos do Azure Sim Não Não Sim
Dados não estruturados, operações do sistema de arquivos BlobFuse Sim Sim Sim Não

O AKS oferece dois tipos primários de armazenamento seguro para volumes com suporte por Discos do Azure ou Arquivos do Azure. Os dois utilizam a SSE (Criptografia do Serviço de Armazenamento) do Azure que criptografa dados inativos. Os discos não podem ser criptografados usando a Criptografia de Disco do Azure no nível do nó do AKS. Nos compartilhamentos dos Arquivos do Azure, não há limite para o número de compartilhamentos que podem ser montados em um nó.

Tanto os Arquivos do Azure quanto os Discos do Azure estão disponíveis nos níveis de desempenho Standard e Premium:

  • Discos Premium
    • Com suporte por disco SSD de alto desempenho.
    • Recomendado para todas as cargas de trabalho de produção.
  • Discos Standard
    • Com suporte por HDDs (discos regulares).
    • Bom para dados de arquivo ou pouco acessados.

Embora a camada de armazenamento padrão para o driver CSI do Disco do Azure seja SSD Premium, seu StorageClass personalizado pode usar SSD Premium, SSD Standard ou HDD Standard.

Entenda as necessidades de desempenho do aplicativo e os padrões de acesso para escolher o nível de armazenamento apropriado. Para saber mais sobre os níveis de desempenho e os tamanhos dos Managed Disks, confira Visão geral dos Azure Managed Disks.

Criar e usar as classes de armazenamento para definir as necessidades do aplicativo

Defina o tipo de armazenamento que você deseja usando classes de armazenamento do Kubernetes. Em seguida, a classe de armazenamento é referenciada na especificação do pod ou da implantação. As definições de classe de armazenamento trabalham em conjunto para criar o armazenamento adequado e conectá-lo aos pods.

Para obter mais informações, confira Classes de armazenamento no AKS.

Dimensionar os nós para necessidades de armazenamento

Orientação de melhor prática

Cada tamanho de nó dá suporte a um número máximo de discos. Diferentes tamanhos de nós também fornecem quantidades diferentes de largura de banda de rede e de armazenamento local. Planeje de acordo com suas demandas de aplicativo para implantar o tamanho certo de nó.

Os nós do AKS são executados como vários tipos e tamanhos de VM do Azure. Cada tamanho de VM fornece:

  • Uma quantidade diferente de recursos principais, como CPU e memória.
  • Um número máximo de discos que podem ser anexados.

O desempenho do armazenamento também varia entre os tamanhos de VM para as IOPS (operações de entrada/saída por segundo) máximas do disco local e anexado.

Se seus aplicativos exigirem os Discos do Azure como solução de armazenamento, tenha uma estratégia adequada de um tamanho de VM do nó. A capacidade de armazenamento e as quantidades de CPU e memória têm um papel principal na decisão do tamanho de uma VM.

Por exemplo, embora os tamanhos de VM Standard_B2ms e Standard_DS2_v2 incluam uma quantidade semelhante de recursos de CPU e memória, o potencial de desempenho de armazenamento é diferente:

Tamanho e tipo de nó vCPU Memória (GiB) Discos de dados máximos IOPS de discos com taxa de transferência sem cache Taxa de transferência máxima não armazenada em cache (MBps)
Standard_B2ms 2 8 4 1.920 22,5
Standard_DS2_v2 2 7 8 6.400 96

Neste exemplo, Standard_DS2_v2 oferece duas vezes mais discos anexados e três ou quatro vezes mais a quantidade de IOPS e taxa de transferência de disco. Se você comparasse apenas recursos de computação principais e custos, talvez escolhesse o tamanho de VM Standard_B2ms, com baixo desempenho de armazenamento e limitações.

Trabalhe com sua equipe de desenvolvimento de aplicativos para entender suas necessidades de capacidade de armazenamento e desempenho. Escolha o tamanho de VM apropriado para os nós do AKS para atender ou superar suas necessidades de desempenho. Crie aplicativos de linha de base regularmente para ajustar o tamanho da VM conforme necessário.

Observação

Por padrão, o tamanho e o desempenho dos discos gerenciados são atribuídos de acordo com a contagem de SKU e vCPU da VM selecionada. O dimensionamento padrão do disco do sistema operacional só é usado em novos clusters ou pools de nós quando não há suporte para discos do sistema operacional efêmero e um tamanho de disco padrão do sistema operacional não foi especificado. Para obter mais informações, consulte o Dimensionamento padrão do disco do sistema operacional.

Para obter mais informações sobre os tamanhos de VMs disponíveis, confira Tamanhos das máquinas virtuais do Linux no Azure.

Considere discos de dados NVMe efêmeros para obter o máximo de desempenho

Orientação de melhor prática

Considere discos de dados NVMe efêmeros quando você precisar da maior taxa de transferência de armazenamento e IOPS, e sua carga de trabalho pode tolerar a natureza temporária do armazenamento de nós local. Os discos de dados NVMe efêmeros fornecem armazenamento anexado a host de baixa latência que fornece o IOPS e a taxa de transferência mais altas disponíveis no Azure. Os discos NVMe estão disponíveis em VMs das séries L, E e GPU, com suporte expandido para as famílias VM v6 e v7 mais recentes do Azure, como a série D, a série F, a série H.

O armazenamento com suporte em NVMe aprimora cargas de trabalho que exigem cache de alta velocidade, armazenamento temporário ou processamento transitório de dados. Ela elimina a dependência de discos remotos de alto desempenho, que normalmente exigem as maiores e mais caras configurações de VM para obter um desempenho ideal.

Cenários comuns que se beneficiam de discos de dados NVMe efêmeros incluem:

  • Pipelines de treinamento ou inferência de IA que armazenam grandes conjuntos de dados ou pontos de verificação de uma iteração para outra
  • Bancos de dados de alto desempenho ou mecanismos de streaming que mantêm réplicas ou logs entre pods
  • Trabalhos de análise em lote que exigem espaço transitório temporário ou armazenamento embaralhado

Como os dados NVMe estão vinculados à instância do nó, planeje os orçamentos de interrupção de pod e garanta que seu aplicativo possa se reconstruir rapidamente a partir do armazenamento durável ou da replicação. Os dados colocados nesses discos são perdidos sempre que um nó é desalocado, tem a imagem refeita ou falha.

Para obter recomendações adicionais sobre discos de dados NVMe efêmeros, consulte as práticas recomendadas para discos de dados NVMe efêmeros no AKS (Serviço de Kubernetes do Azure). Para expor a capacidade do NVMe para pods, use o Armazenamento de Contêineres do Azure, que poderá orquestrar e criar volumes efêmeros ou persistentes apoiados por discos NVMe locais. Para obter diretrizes de implementação, consulte Usar o Armazenamento de Contêineres do Azure com o AKS.

Importante

Use discos de dados NVMe apenas para cargas de trabalho que podem tolerar a perda de dados e se recuperar rapidamente. Mantenha dados comercialmente críticos no armazenamento durável, como o Disco do Azure ou os Arquivos do Azure.

Provisionar volumes dinamicamente

Orientação de melhor prática

Para reduzir a sobrecarga de gerenciamento e permitir a colocação em escala, evite criar e atribuir estaticamente volumes persistentes. Use o provisionamento dinâmico. Nas classes de armazenamento, defina a política de recuperação apropriada para minimizar os custos de armazenamento desnecessários depois que os pods forem excluídos.

Para anexar armazenamentos a pods, use volumes persistentes. Os volumes persistentes podem ser criados de forma manual ou dinâmica. A criação manual de volumes persistentes adiciona sobrecarga de gerenciamento e limita sua capacidade de dimensionar. Use o provisionamento persistente do volume dinamicamente para simplificar o gerenciamento do armazenamento e permitir que seus aplicativos se desenvolvam e sejam dimensionados conforme necessário.

Diagrama de declarações de volumes persistentes em um cluster dos Serviços de Kubernetes do Azure (AKS).

Uma declaração de volume persistente (PVC) permite criar dinamicamente o armazenamento conforme necessário. Os discos do Azure subjacentes são criados conforme as solicitações dos pods. Na definição do pod, solicite que um volume seja criado e anexado a um caminho de montagem projetado.

No caso dos conceitos sobre como criar e usar volumes dinamicamente, confira Declarações de Volumes Persistentes.

Para ver esses volumes em ação, veja como criar e usar dinamicamente um volume persistente com os Discos do Azure ou os Arquivos do Azure.

Como parte de suas definições de classe de armazenamento, defina o reclaimPolicy adequado. Essa reclaimPolicy controla o comportamento do recurso de armazenamento do Azure subjacente quando o pod é excluído. O recurso de armazenamento subjacente pode ser excluído ou retido para uso futuro por um pod. Defina reclaimPolicy como retain ou delete.

Entenda as necessidades do seu aplicativo e implemente verificações constantes de armazenamento retido para minimizar a quantidade de armazenamento não utilizado, mas cobrado.

Para obter mais informações sobre as opções de classe de armazenamento, confira políticas de recuperação do armazenamento.

Proteja e faça backup de seus dados

Orientação de melhor prática

Faça backup dos seus dados usando uma ferramenta adequada ao seu tipo de armazenamento, como Velero ou Backup do Azure. Verifique a integridade e a segurança desses backups.

Quando seus aplicativos armazenam e consomem dados persistentes em discos ou arquivos, você precisa fazer backups ou instantâneos regulares desses dados. Os Discos do Azure podem usar tecnologias internas de instantâneo. Seus aplicativos talvez precisem liberar gravações no disco antes de executar a operação de instantâneo. O Velero pode fazer o backup de volumes persistentes juntamente com recursos e configurações adicionais do cluster. Se você não puder remover o estado de seus aplicativos, faça o backup dos dados de volumes persistentes e teste regularmente as operações de restauração para verificar a integridade dos dados e os processos necessários.

Entenda as limitações das diferentes abordagens de backups de dados e se será preciso desativar os dados antes de tirar o instantâneo. Os backups de dados não necessariamente permitem que você restaure seu ambiente de aplicativo da implantação do cluster. Para saber mais sobre esses cenários, confira Práticas recomendadas para a continuidade dos negócios e recuperação de desastres no AKS.

Próximas etapas

Este artigo se concentra nas práticas recomendadas de armazenamento de no AKS. Para obter mais informações sobre conceitos básicos de armazenamento no Kubernetes, confira Conceitos de armazenamento para aplicativos no AKS.