Práticas recomendadas para armazenamento e backups no Serviço Kubernetes do Azure (AKS)
À medida que você cria e gerencia clusters no Serviço Kubernetes do Azure (AKS), seus aplicativos geralmente precisam de armazenamento. Certifique-se de entender as necessidades de desempenho do pod e os métodos de acesso para que você possa selecionar o melhor armazenamento para seu aplicativo. O tamanho do nó AKS pode afetar as suas escolhas de armazenamento. Planeje maneiras de fazer backup e testar o processo de restauração para armazenamento anexado.
Este artigo de práticas recomendadas se concentra em considerações de armazenamento para operadores de cluster. Neste artigo, vai aprender a:
- Que tipos de armazenamento estão disponíveis.
- Como dimensionar corretamente os nós AKS para o desempenho do armazenamento.
- Diferenças entre provisionamento dinâmico e estático de volumes.
- Maneiras de fazer backup e proteger seus volumes de dados.
Escolha o tipo de armazenamento apropriado
Orientações sobre boas práticas
Entenda as necessidades do seu aplicativo para escolher o armazenamento certo. Use armazenamento de alto desempenho apoiado por SSD para cargas de trabalho de produção. Planeje o 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 apropriado fazendo as seguintes perguntas.
- Seus aplicativos precisam de armazenamento que se conecta a pods individuais?
- Seus aplicativos precisam de armazenamento compartilhado em vários pods?
- O armazenamento é para acesso somente leitura aos dados?
- O armazenamento será usado para gravar grandes quantidades de dados estruturados?
A tabela a seguir descreve os tipos de armazenamento disponíveis e seus recursos:
Caso de utilização | Plugin de volume | Ler/escrever uma vez | Somente leitura muitos | Ler/escrever muitos | Suporte a contêineres do Windows Server |
---|---|---|---|---|---|
Configuração compartilhada | Ficheiros do Azure | Sim | Sim | Sim | Sim |
Dados estruturados do aplicativo | Discos do Azure | Sim | No | No | Sim |
Dados não estruturados, operações do sistema de arquivos | BlobFuse | Sim | Sim | Sim | No |
O AKS fornece dois tipos principais de armazenamento seguro para volumes apoiados por Discos do Azure ou Arquivos do Azure. Ambos usam a Criptografia de Serviço de Armazenamento do Azure (SSE) padrão que criptografa dados em repouso. Os discos não podem ser criptografados usando o Azure Disk Encryption no nível do nó AKS. Com os compartilhamentos do Azure Files, não há limite de quantos podem ser montados em um nó.
Os Arquivos do Azure e os Discos do Azure estão disponíveis nas camadas de desempenho Standard e Premium:
- Discos Premium
- Apoiado por discos de estado sólido (SSDs) de alto desempenho.
- Recomendado para todas as cargas de trabalho de produção.
- Discos padrão
- Apoiado por discos giratórios regulares (HDDs).
- Bom para arquivamento ou dados acessados com pouca frequência.
Embora a camada de armazenamento padrão para o driver CSI do Azure Disk seja SSD Premium, seu StorageClass personalizado pode usar SSD Premium, SSD Standard ou HDD Padrão.
Compreenda as necessidades de desempenho do aplicativo e os padrões de acesso para escolher o nível de armazenamento apropriado. Para obter mais informações sobre tamanhos de Managed Disks e camadas de desempenho, consulte Visão geral de Managed Disks do Azure.
Criar e usar classes de armazenamento para definir as necessidades do aplicativo
Defina o tipo de armazenamento desejado usando as classes de armazenamento do Kubernetes. A classe de armazenamento é então referenciada no pod ou na especificação de implantação. As definições de classe de armazenamento trabalham juntas para criar o armazenamento apropriado e conectá-lo a pods.
Para obter mais informações, consulte Classes de armazenamento no AKS.
Dimensionar os nós de acordo com as necessidades de armazenamento
Orientações sobre boas 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. Planeje adequadamente para suas demandas de aplicativos para implantar o tamanho certo de nós.
Os nós 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 de armazenamento também varia entre tamanhos de VM para o máximo de IOPS de disco local e conectado (operações de entrada/saída por segundo).
Se seus aplicativos exigirem Discos do Azure como solução de armazenamento, crie estratégias para um tamanho de VM de nó apropriado. Os recursos de armazenamento e as quantidades de CPU e memória desempenham um papel importante ao decidir sobre o tamanho de uma VM.
Por exemplo, embora os tamanhos de Standard_B2ms e Standard_DS2_v2 VM incluam uma quantidade semelhante de recursos de CPU e memória, seu desempenho potencial de armazenamento é diferente:
Tipo e tamanho do nó | vCPU | Memória (GiB) | Discos de dados máximos | Máximo de IOPS de disco sem cache | Taxa de transferência máxima não armazenada em cache (MBps) |
---|---|---|---|---|---|
Standard_B2ms | 2 | 8 | 4 | 1920 | 22,5 |
Standard_DS2_v2 | 2 | 7 | 8 | 6,400 | 96 |
Neste exemplo, o Standard_DS2_v2 oferece o dobro de discos conectados e três a quatro vezes a quantidade de IOPS e taxa de transferência de disco. Se você comparou apenas os recursos de computação principais e os custos, talvez tenha escolhido o tamanho Standard_B2ms da VM 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 que os nós AKS atendam ou excedam suas necessidades de desempenho. Regularmente aplicativos de linha de base para ajustar o tamanho da VM conforme necessário.
Nota
Por padrão, o tamanho e o desempenho do disco para discos gerenciados são atribuídos de acordo com a contagem de SKU e vCPU da VM selecionada. 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, consulte Dimensionamento de disco padrão do sistema operacional.
Para obter mais informações sobre tamanhos de VM disponíveis, consulte Tamanhos para máquinas virtuais Linux no Azure.
Provisionar volumes dinamicamente
Orientações sobre boas práticas
Para reduzir a sobrecarga de gerenciamento e habilitar o dimensionamento, evite criar e atribuir volumes persistentes estaticamente. Use o provisionamento dinâmico. Em suas 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 armazenamento a pods, use volumes persistentes. Os volumes persistentes podem ser criados manual ou dinamicamente. A criação manual de volumes persistentes adiciona sobrecarga de gerenciamento e limita sua capacidade de escala. Em vez disso, provisione o volume persistente dinamicamente para simplificar o gerenciamento de armazenamento e permitir que seus aplicativos cresçam e sejam dimensionados conforme necessário.
Uma declaração de volume persistente (PVC) permite criar armazenamento dinamicamente conforme necessário. Os discos subjacentes do Azure são criados à medida que os pods os solicitam. Na definição do pod, solicite que um volume seja criado e anexado a um caminho de montagem designado.
Para obter os conceitos sobre como criar e usar volumes dinamicamente, consulte Declarações de volumes persistentes.
Para ver esses volumes em ação, veja como criar e usar dinamicamente um volume persistente com Discos do Azure ou Arquivos do Azure.
Como parte de suas definições de classe de armazenamento, defina a reclaimPolicy apropriada. Esta reclaimPolicy controla o comportamento do recurso de armazenamento subjacente do Azure quando o pod é excluído. O recurso de armazenamento subjacente pode ser excluído ou retido para uso futuro do pod. Defina a reclaimPolicy para manter ou excluir.
Compreenda as necessidades do seu aplicativo e implemente verificações regulares para armazenamento retido para minimizar a quantidade de armazenamento não utilizado e faturado.
Para obter mais informações sobre opções de classe de armazenamento, consulte Políticas de recuperação de armazenamento.
Proteja e faça backup dos seus dados
Orientações sobre boas práticas
Faça backup de seus dados usando uma ferramenta apropriada para seu tipo de armazenamento, como Velero ou Backup do Azure. 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. Seus aplicativos podem precisar liberar gravações em disco antes de executar a operação de snapshot. O Velero pode fazer backup de volumes persistentes juntamente com recursos e configurações adicionais de cluster. Se não for possível remover o estado de seus aplicativos, faça 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 para backups de dados e se você precisa desativar seus dados antes do snapshot. Os backups de dados não permitem necessariamente restaurar o ambiente do aplicativo de implantação de cluster. Para obter mais informações sobre esses cenários, consulte Práticas recomendadas para continuidade de negócios e recuperação de desastres no AKS.
Próximos passos
Este artigo concentrou-se nas práticas recomendadas de armazenamento no AKS. Para obter mais informações sobre noções básicas de armazenamento no Kubernetes, consulte Conceitos de armazenamento para aplicativos no AKS.
Azure Kubernetes Service