Melhores práticas para armazenamento e cópias de segurança no Azure Kubernetes Service (AKS)

À medida que cria e gere clusters no Azure Kubernetes Service (AKS), as suas aplicações precisam frequentemente de armazenamento. Certifique-se de que compreende as necessidades de desempenho do pod e os métodos de acesso para que possa selecionar o melhor armazenamento para a sua aplicação. O tamanho do nó do AKS pode afetar as suas escolhas de armazenamento. Planeie formas de fazer uma cópia de segurança e testar o processo de restauro do armazenamento anexado.

Este artigo de melhores práticas centra-se nas considerações de armazenamento dos operadores de cluster. Neste artigo, irá aprender:

  • Que tipos de armazenamento estão disponíveis.
  • Como dimensionar corretamente os nós do AKS para o desempenho do armazenamento.
  • Diferenças entre o aprovisionamento dinâmico e estático de volumes.
  • Formas de fazer uma cópia de segurança e proteger os volumes de dados.

Escolher o tipo de armazenamento adequado

Orientação sobre melhores práticas

Compreenda as necessidades da sua aplicação para escolher o armazenamento certo. Utilize o elevado desempenho, o armazenamento suportado por SSD para cargas de trabalho de produção. Planeie o armazenamento baseado na rede quando precisar de várias ligações simultâneas.

Muitas vezes, as aplicações requerem diferentes tipos e velocidades de armazenamento. Determine o tipo de armazenamento mais adequado ao fazer as seguintes perguntas.

  • As aplicações precisam de armazenamento que se ligue a pods individuais?
  • As suas aplicações precisam de armazenamento partilhado em vários pods?
  • O armazenamento para acesso só de leitura aos dados?
  • O armazenamento será utilizado para escrever grandes quantidades de dados estruturados?

A tabela seguinte descreve os tipos de armazenamento disponíveis e as respetivas capacidades:

Caso de utilização Plug-in de volume Ler/escrever uma vez Muitos só de leitura Ler/escrever muitos Suporte de contentor do Windows Server
Configuração partilhada Ficheiros do Azure Yes Yes Yes Yes
Dados de aplicações estruturadas Discos do Azure Yes No No Yes
Dados não estruturados, operações do sistema de ficheiros BlobFuse Yes Yes Yes No

O AKS fornece dois tipos principais de armazenamento seguro para volumes apoiados pelo Azure Disks ou Ficheiros do Azure. Ambos utilizam a encriptação predefinida do Serviço de Armazenamento do Azure (SSE) que encripta dados inativos. Os discos não podem ser encriptados com o Azure Disk Encryption ao nível do nó do AKS. Com Ficheiros do Azure partilhas, não existe um limite para quantas podem ser montadas num nó.

Os Ficheiros do Azure e os Discos do Azure estão disponíveis nos escalões de desempenho Standard e Premium:

  • Discos Premium
    • Apoiado por discos de estado sólido (SSDs) de elevado desempenho.
    • Recomendado para todas as cargas de trabalho de produção.
  • Discos standard
    • Apoiado por discos giratórios regulares (HDDs).
    • Bom para dados de arquivo ou acedidos com pouca frequência.

Embora a camada de armazenamento predefinida para o controlador CSI do Disco do Azure seja SSD Premium, a sua StorageClass personalizada pode utilizar sSD Premium, SSD Standard ou HDD Standard.

Compreenda as necessidades de desempenho da aplicação e os padrões de acesso para escolher a camada de armazenamento adequada. Para obter mais informações sobre Managed Disks tamanhos e escalões de desempenho, veja Descrição geral do Azure Managed Disks.

Criar e utilizar classes de armazenamento para definir as necessidades da aplicação

Defina o tipo de armazenamento que pretende utilizar as classes de armazenamento do Kubernetes. Em seguida, a classe de armazenamento é referenciada na especificação de pod ou implementação. As definições da classe de armazenamento funcionam em conjunto para criar o armazenamento adequado e ligá-lo aos pods.

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

Dimensionar os nós para as necessidades de armazenamento

Orientação sobre melhores práticas

Cada tamanho de nó suporta um número máximo de discos. Diferentes tamanhos de nós também fornecem diferentes quantidades de armazenamento local e largura de banda de rede. Planeie adequadamente as exigências da sua aplicação para implementar o tamanho certo dos nós.

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 o IOPS de disco máximo local e anexado (operações de entrada/saída por segundo).

Se as aplicações exigirem o Azure Disks como solução de armazenamento, planeie um tamanho de VM de nó adequado. As capacidades de armazenamento e as quantidades de CPU e memória desempenham um papel importante ao decidir o 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 seu potencial desempenho de armazenamento é diferente:

Tipo e tamanho do nó vCPU Memória (GiB) Discos de dados máximos IOPS de disco não colocado em cache máxima Débito máximo não abordado (MBps)
Standard_B2ms 2 8 4 1,920 22,5
Standard_DS2_v2 2 7 8 6,400 96

Neste exemplo, o Standard_DS2_v2 oferece o dobro dos discos anexados e três a quatro vezes a quantidade de IOPS e débito do disco. Se comparou apenas os principais recursos de computação e os custos comparados, poderá ter escolhido o tamanho da VM Standard_B2ms com fraco desempenho de armazenamento e limitações.

Trabalhe com a equipa de desenvolvimento de aplicações para compreender a capacidade de armazenamento e as necessidades de desempenho. Escolha o tamanho de VM adequado para que os nós do AKS cumpram ou excedam as necessidades de desempenho. Aplicações de linha de base regulares para ajustar o tamanho da VM conforme necessário.

Nota

Por predefinição, o tamanho do disco e o desempenho dos discos geridos são atribuídos de acordo com o SKU da VM selecionado e a contagem de vCPUs. O dimensionamento predefinido do disco do SO só é utilizado em novos clusters ou conjuntos de nós quando os discos do SO Ephemeral não são suportados e um não está predefinido tamanho de disco para o SO. Para obter mais informações, veja Dimensionamento do disco do SO predefinido.

Para obter mais informações sobre os tamanhos de VM disponíveis, veja Sizes for Linux virtual machines in Azure (Tamanhos das máquinas virtuais do Linux no Azure).

Aprovisionar volumes dinamicamente

Orientação de melhores práticas

Para reduzir a sobrecarga de gestão e ativar o dimensionamento, evite criar e atribuir estaticamente volumes persistentes. Utilizar o aprovisionamento dinâmico. Nas classes de armazenamento, defina a política de recuperação adequada para minimizar os custos de armazenamento desnecessários assim que os pods forem eliminados.

Para anexar armazenamento a pods, utilize volumes persistentes. Os volumes persistentes podem ser criados manual ou dinamicamente. A criação manual de volumes persistentes adiciona a sobrecarga de gestão e limita a sua capacidade de dimensionamento. Em vez disso, aprovisione um volume persistente dinamicamente para simplificar a gestão do armazenamento e permitir que as suas aplicações cresçam e dimensionem conforme necessário.

Afirmações de volume persistentes num cluster do Azure Kubernetes Services (AKS)

Uma afirmação de volume persistente (PVC) permite-lhe criar dinamicamente o armazenamento conforme necessário. Os discos do Azure subjacentes são criados à medida que os pods os pedem. Na definição do pod, peça a criação e anexação de um volume a um caminho de montagem designado.

Para obter os conceitos sobre como criar e utilizar volumes dinamicamente, veja Afirmações de Volumes Persistentes.

Para ver estes volumes em ação, veja como criar e utilizar dinamicamente um volume persistente com discos do Azure ou Ficheiros do Azure.

Como parte das definições da classe de armazenamento, defina a reclaimPolicy adequada. Esta funcionalidade reclaimPolicy controla o comportamento do recurso de armazenamento do Azure subjacente quando o pod é eliminado. O recurso de armazenamento subjacente pode ser eliminado ou retido para utilização futura do pod. Defina a reclaimPolicy para manter ou eliminar.

Compreenda as necessidades da aplicação e implemente verificações regulares de armazenamento retido para minimizar a quantidade de armazenamento não utilizado e faturado.

Para obter mais informações sobre as opções da classe de armazenamento, veja Políticas de recuperação de armazenamento.

Proteger e criar cópias de segurança dos seus dados

Orientação de melhores práticas

Faça uma cópia de segurança dos seus dados com uma ferramenta adequada para o seu tipo de armazenamento, como Velero ou Azure Backup. Verifique a integridade e a segurança dessas cópias de segurança.

Quando as aplicações armazenam e consomem dados persistentes em discos ou ficheiros, é necessário fazer cópias de segurança ou instantâneos regulares desses dados. Os discos do Azure podem utilizar tecnologias de instantâneos incorporadas. As suas aplicações poderão ter de remover as escritas para o disco antes de executar a operação de instantâneo. O Velero pode criar cópias de segurança de volumes persistentes juntamente com recursos e configurações de cluster adicionais. Se não conseguir remover o estado das suas aplicações, faça uma cópia de segurança dos dados de volumes persistentes e teste regularmente as operações de restauro para verificar a integridade dos dados e os processos necessários.

Compreenda as limitações das diferentes abordagens às cópias de segurança de dados e se precisar de silenciar os seus dados antes do instantâneo. As cópias de segurança de dados não permitem necessariamente restaurar o ambiente de aplicação da implementação do cluster. Para obter mais informações sobre esses cenários, veja Melhores práticas para a continuidade do negócio e recuperação após desastre no AKS.

Passos seguintes

Este artigo focou-se nas melhores práticas de armazenamento no AKS. Para obter mais informações sobre as noções básicas de armazenamento no Kubernetes, veja Conceitos de armazenamento para aplicações no AKS.