Partilhar via


Opções de armazenamento para um cluster Kubernetes

Este artigo compara os recursos de armazenamento do Amazon Elastic Kubernetes Service (Amazon EKS) e do Azure Kubernetes Service (AKS) e descreve as opções para armazenar dados de carga de trabalho no AKS.

Nota

Este artigo faz parte de uma série de artigos que ajudam os profissionais familiarizados com o Amazon EKS a entender o AKS.

Opções de armazenamento do Amazon EKS

No Amazon EKS, após o Kubernetes versão 1.11, o cluster tem um StorageClass padrão chamado gp2 para declarações de volume persistentes. Os administradores podem adicionar drivers para definir mais classes de armazenamento, como:

  • Driver CSI do Amazon EBS como complemento do Amazon EKS
  • Complemento autogerenciado CSI do Amazon EBS
  • Driver CSI do Amazon EFS
  • Driver CSI do Amazon FSx for Lustre
  • Amazon FSx para driver CSI ONTAP da NetApp

Ao adicionar drivers e classes de armazenamento, você pode usar serviços de armazenamento, como:

  • Amazon Elastic Block Store (Amazon EBS), uma solução de armazenamento em nível de bloco usada com instâncias do Amazon Elastic Compute Cloud (EC2) para armazenar dados persistentes. Este serviço é semelhante ao Armazenamento em Disco do Azure, que tem várias SKUs como SSD Padrão, SSD Premium ou Ultra Disk, dependendo do desempenho necessário.

  • Amazon Elastic File System (Amazon EFS) , que fornece acesso ao sistema de arquivos de rede a sistemas de arquivos externos que podem ser compartilhados entre instâncias. A solução equivalente do Azure é o Azure Files e o Azure Files Premium com acesso ao Server Message Block (SMB) 3.0 e NFS.

  • Lustre, um sistema de arquivos de código aberto comumente usado em computação de alto desempenho (HPC). No Azure, você pode usar Ultra Disks ou o Cache HPC do Azure para cargas de trabalho onde a velocidade é importante, como aprendizado de máquina e HPC.

  • NetApp ONTAP, armazenamento compartilhado ONTAP totalmente gerenciado na Amazon Web Services (AWS). O Azure NetApp Files é um serviço de armazenamento de arquivos do Azure semelhante criado na tecnologia NetApp.

Opções de armazenamento AKS

Cada cluster AKS inclui as seguintes classes de armazenamento pré-criadas por padrão:

  • A classe de armazenamento padrão, managed-csi, usa SSD padrão de armazenamento em disco. A SSD padrão é uma opção de armazenamento económica otimizada para cargas de trabalho que necessitam de um desempenho consistente em IOPS (operações de entrada-saída por segundo) mais baixas.
  • A managed-csi-premium classe usa discos gerenciados SSD Premium de armazenamento em disco.
  • A azurefile-csi classe usa Arquivos do Azure para fornecer acesso compartilhado simultâneo ao mesmo volume de armazenamento, usando SMB ou NFS.
  • A azurefile-csi-premium classe usa o Azure Files Premium para compartilhamentos de arquivos com cargas de trabalho intensivas de IOPS. O Azure Files Premium fornece baixa latência e alta taxa de transferência apoiada pelo armazenamento SSD.

Você pode estender essas opções adicionando outras classes de armazenamento e integrando-se a outras soluções de armazenamento disponíveis, como:

  • Armazenamento de Discos Ultra
  • Azure NetApp Files
  • HPC Cache
  • Servidor NFS
  • Soluções de armazenamento de terceiros

Armazenamento de Discos do Azure

Por padrão, um cluster AKS vem com classes de armazenamento pré-criadas managed-csi que managed-csi-premium usam o armazenamento em disco. Semelhante ao Amazon EBS, essas classes criam um disco gerenciado ou dispositivo de bloco conectado ao nó para acesso ao pod.

As classes de armazenamento em disco permitem o provisionamento de volumes estáticos e dinâmicos . A política de recuperação garante que o disco seja excluído com o volume persistente. Você pode expandir o disco editando a declaração de volume persistente.

Essas classes de armazenamento usam discos gerenciados do Azure com LRS (armazenamento com redundância local). LRS significa que os dados têm três cópias síncronas em um único local físico em uma região primária do Azure. O LRS é a opção de replicação menos dispendiosa, mas não oferece proteção contra uma falha no datacenter. Para reduzir esse risco, faça backups regulares ou instantâneos dos dados do Armazenamento em Disco usando soluções como o Velero ou o Backup do Azure, que podem usar tecnologias internas de instantâneo.

Ambas as classes de armazenamento são apoiadas por discos gerenciados e ambas usam unidades de disco de estado sólido (SSD). É importante entender as diferenças entre discos Standard e Premium:

  • O preço dos discos padrão é calculado com base no tamanho e nas transações de armazenamento.
  • Os discos premium cobram apenas pelo tamanho, o que pode torná-los mais baratos para cargas de trabalho que exigem um grande número de transações.
  • Os SSDs Premium fornecem uma taxa de transferência máxima e IOPS mais altas, como mostrado nesta comparação.
  • O armazenamento premium é recomendado para a maioria das cargas de trabalho de produção e desenvolvimento.

Se você usar discos gerenciados do Azure como sua classe de armazenamento principal, considere a SKU de máquina virtual (VM) escolhida para seu cluster Kubernetes. As VMs do Azure limitam o número de discos que você pode anexar a elas, e o limite varia com o tamanho da VM. Além disso, como os discos do Azure são montados como ReadWriteOnce, eles estão disponíveis apenas para um único pod.

Armazenamento de Discos Ultra

O Ultra Disk Storage é uma camada de disco gerenciado do Azure que oferece alta taxa de transferência, IOPS alta e armazenamento em disco consistente de baixa latência para VMs do Azure. O Ultra Disk Storage destina-se a cargas de trabalho pesadas em dados e transações. Como outros SKUs de armazenamento em disco e o Amazon EBS, o Ultra Disk Storage monta um pod de cada vez e não fornece acesso simultâneo.

Use o sinalizador --enable-ultra-ssd para ativar o Ultra Disk Storage no seu cluster AKS.

Se você escolher Ultra Disk Storage, esteja ciente de suas limitações e certifique-se de selecionar um tamanho de VM compatível. O Ultra Disk Storage está disponível com replicação LRS (Local Redundant Storage, armazenamento com redundância local).

Ficheiros do Azure

O Armazenamento em Disco não pode fornecer acesso simultâneo a um volume, mas você pode usar os Arquivos do Azure para se conectar usando o protocolo SMB e, em seguida, montar um volume compartilhado apoiado pelo Armazenamento do Azure. Esse processo fornece um armazenamento conectado à rede semelhante ao Amazon EFS. Tal como acontece com o armazenamento em disco, existem duas opções:

  • O armazenamento padrão dos Arquivos do Azure é apoiado por unidades de disco rígido (HDDs) regulares.
  • O armazenamento Premium do Azure Files faz backup do compartilhamento de arquivos com unidades SSD de alto desempenho. O tamanho mínimo de compartilhamento de arquivos para Premium é de 100 GB.

O Azure Files tem as seguintes opções de replicação de conta de armazenamento para proteger seus dados em caso de falha:

Para otimizar os custos dos Arquivos do Azure, adquira reservas de capacidade dos Arquivos do Azure.

Azure NetApp Files

Como o AWS NetApp ONTAP, o Azure NetApp Files é um serviço de armazenamento de arquivos limitado, de alto desempenho e de classe empresarial. Os Arquivos NetApp do Azure são totalmente gerenciados no Azure usando soluções NetApp. Como os Arquivos do Azure, os Arquivos NetApp do Azure permitem que vários pods montem um volume. Você pode usar o Astra Trident, um orquestrador de armazenamento dinâmico de código aberto para Kubernetes, para configurar seu cluster AKS para usar os Arquivos NetApp do Azure.

Esteja ciente dos limites de recursos para arquivos NetApp do Azure. O tamanho mínimo de um pool de capacidade para Arquivos NetApp do Azure é 4 TiB. Os Arquivos NetApp do Azure cobram por tamanho provisionado em vez de capacidade usada.

Azure HPC Cache

O Cache HPC do Azure acelera o acesso aos seus dados para tarefas HPC, com toda a escalabilidade das soluções na nuvem. Se você escolher essa solução de armazenamento, certifique-se de implantar seu cluster AKS em uma região que ofereça suporte ao cache HPC do Azure.

Servidor NFS

A melhor opção para acesso NFS compartilhado é usar Arquivos do Azure ou Arquivos NetApp do Azure. Você também pode criar um Servidor NFS em uma VM do Azure que exporta volumes.

Lembre-se de que essa opção oferece suporte apenas ao provisionamento estático. Você deve provisionar os compartilhamentos NFS manualmente no servidor e não pode fazê-lo do AKS automaticamente.

Esta solução baseia-se na infraestrutura como serviço (IaaS) e não na plataforma como serviço (PaaS). Você é responsável por gerenciar o servidor NFS, incluindo atualizações do sistema operacional, alta disponibilidade, backups, recuperação de desastres e escalabilidade.

Soluções de terceiros

Como o Amazon EKS, o AKS é uma implementação do Kubernetes e você pode integrar soluções de armazenamento Kubernetes de terceiros. Aqui estão alguns exemplos de soluções de armazenamento de terceiros para Kubernetes:

  • A Rook transforma sistemas de armazenamento distribuídos em serviços de armazenamento autogerenciáveis automatizando as tarefas do administrador de armazenamento. A Rook fornece seus serviços por meio de um operador Kubernetes para cada provedor de armazenamento.
  • O GlusterFS é um sistema de arquivos de rede escalável gratuito e de código aberto que usa hardware comum pronto para uso para criar soluções de armazenamento grandes e distribuídas para tarefas com uso intensivo de dados e largura de banda.
  • O Ceph fornece um serviço de armazenamento unificado confiável e escalável com interfaces de objetos, blocos e arquivos a partir de um único cluster construído a partir de componentes de hardware de mercadoria.
  • O armazenamento de objetos multicloud MinIO permite que as empresas criem infraestrutura de dados compatível com o AWS S3 em qualquer nuvem, fornecendo uma interface consistente e portátil para seus dados e aplicativos.
  • O Portworx é uma solução completa de armazenamento e gerenciamento de dados para projetos Kubernetes e iniciativas baseadas em contêineres. O Portworx oferece armazenamento granular de contêiner, recuperação de desastres, segurança de dados e migrações multicloud.
  • O Quobyte fornece armazenamento de arquivos e objetos de alto desempenho que você pode implantar em qualquer servidor ou nuvem para dimensionar o desempenho, gerenciar grandes quantidades de dados e simplificar a administração.
  • O Ondat oferece uma camada de armazenamento consistente em qualquer plataforma. Você pode executar um banco de dados ou qualquer carga de trabalho persistente em um ambiente Kubernetes sem precisar gerenciar a camada de armazenamento.

Considerações sobre armazenamento do Kubernetes

Considere os seguintes fatores ao escolher uma solução de armazenamento para Amazon EKS ou AKS.

Modos de acesso à classe de armazenamento

No Kubernetes versão 1.21 e mais recente, as classes de armazenamento AKS e Amazon EKS usam drivers CSI (Container Storage Interface) somente e por padrão.

Diferentes serviços suportam classes de armazenamento que têm diferentes modos de acesso.

Serviço ReadWriteOnce ReadOnlyMuitos ReadWriteMuitos
Discos do Azure X
Ficheiros do Azure X X X
Azure NetApp Files X X X
Servidor NFS X X X
Azure HPC Cache X X X

Provisionamento dinâmico vs estático

Provisione volumes dinamicamente para reduzir a sobrecarga de gerenciamento da criação estática de volumes persistentes. Defina uma política de recuperação correta para evitar ter discos não utilizados ao excluir pods.

Backup

Escolha uma ferramenta para fazer backup de dados persistentes. A ferramenta deve corresponder ao seu tipo de armazenamento, como instantâneos, Backup do Azure, Velero ou Kasten.

Otimização de custos

Para otimizar os custos de Armazenamento do Azure, use as Reservas do Azure. Certifique-se de verificar quais serviços oferecem suporte às Reservas do Azure. Consulte também Gerenciamento de custos para um cluster Kubernetes.

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Principais autores:

Outros contribuidores:

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos