Drivers da Interface de Armazenamento de Contêiner (CSI) no Serviço de Kubernetes do Azure (AKS)

A CSI (Interface de Armazenamento de Contêiner) é um padrão para expor sistemas de blocos e de armazenamento de arquivos arbitrários a cargas de trabalho em contêineres no Kubernetes. Com a adoção e o uso de CSI, o AKS (Serviço de Kubernetes do Azure) pode criar, implantar e iterar plug-ins para expor sistemas de armazenamento novos ou existentes no Kubernetes sem precisar mexer no código principal do Kubernetes e aguardar seus ciclos de lançamento.

O suporte ao driver de armazenamento da CSI no AKS permite que você use nativamente:

  • Os Discos do Azure podem ser usados para criar um recurso DataDisk do Kubernetes. Os discos podem usar o Armazenamento Premium do Azure, apoiados por SSDs de alto desempenho, ou o Armazenamento Standard do Azure, apoiado por HDDs regulares ou SSDs Standard. Para a maioria das cargas de trabalho de desenvolvimento e produção, use o Armazenamento Premium. Os Discos do Azure são montados como ReadWriteOnce e só estão disponíveis para um nó um AKS. Para volumes de armazenamento que podem ser acessados simultaneamente por vários nós, use Arquivos do Azure.
  • Os Arquivos do Azure podem ser usados para montar um compartilhamento SMB 3.0/3.1 com o suporte de uma conta de Armazenamento do Azure nos pods. Com os Arquivos do Azure, você pode compartilhar dados em vários nós e pods. Os Arquivos do Azure podem usar o Armazenamento Standard do Azure, com o suporte de HDs ou o Armazenamento Premium do Azure, com o suporte de SSDs de alto desempenho.
  • O Armazenamento de Blobs do Azure pode ser usado para montar o Armazenamento de Blobs (ou armazenamento de objetos) como um sistema de arquivos em um contêiner ou pod. O uso do Armazenamento de Blobs permite que o cluster dê suporte a aplicativos que trabalham com grandes conjuntos de dados não estruturados, como dados de arquivo de log, imagens ou documentos, HPC e outros. Além disso, se você ingerir dados no Azure Data Lake Storage, poderá montá-los e usá-los diretamente no AKS sem configurar outro sistema de arquivos provisório.

Importante

A partir do Kubernetes versão 1.26, os tipos de volume persistente na árvore kubernetes.io/azure-disk e kubernetes.io/azure-file foram preteridos e não terão mais suporte. A remoção desses drivers após a substituição não está planejada, porém, você deve migrar para os drivers CSI correspondentes disk.csi.azure.com e file.csi.azure.com. Para examinar as opções de migração para as classes de armazenamento e atualizar o cluster para usar discos do Azure e drivers CSI dos Arquivos do Azure, consulte Migrar de drivers na árvore para CSI.

O termo drivers na árvore se refere aos drivers de armazenamento que fazem parte do código principal do Kubernetes ao contrário dos novos drivers da CSI, que são plug-ins.

Observação

É recomendável excluir o objeto PersistentVolumeClaim correspondente em vez do objeto PersistentVolume ao excluir um volume CSI. O provisionador externo no driver CSI reagirá à exclusão do PersistentVolumeClaim e, com base em sua política de recuperação, emitirá a chamada DeleteVolume nos comandos do driver de volume CSI para excluir o volume. O objeto PersistentVolume será, então, excluído.

Pré-requisitos

  • Você precisará da CLI do Azure versão 2.42 ou posterior instalada e configurada. Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.
  • Se o driver CSI de armazenamento de software livre estiver instalado em seu cluster, desinstale-o antes de habilitar o driver CSI de armazenamento do Azure.
  • Para implementar o Azure Policy para a definição de política do AKS, os clusters do Kubernetes devem usar a StorageClass do driver da Interface de Armazenamento de Contêiner (CSI). O complemento do Azure Policy precisa ser habilitado nos clusters novos e existentes. Para habilitar um cluster existente, leia o artigo Saiba mais sobre o Azure Policy para Kubernetes.

Cenários com suporte para criptografia de disco

Os drivers de armazenamento CSI dão suporte aos seguintes cenários:

Habilitar drivers de armazenamento da CSI em um cluster existente

Para habilitar os drivers de armazenamento da CSI em um novo cluster, inclua um dos seguintes parâmetros, dependendo do sistema de armazenamento:

az aks update -n myAKSCluster -g myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller

Essa ação pode demorar vários minutos para ser concluída. Após a conclusão, você deverá ver na saída o status Habilitando o driver no cluster. O seguinte exemplo se assemelha à seção que indica os resultados ao habilitar o driver CSI do Armazenamento de Blobs:

"storageProfile": {
    "blobCsiDriver": {
      "enabled": true
    },

Desabilitar drivers de armazenamento da CSI em um cluster novo ou existente

Para desabilitar os drivers de armazenamento da CSI em um novo cluster, inclua um dos seguintes parâmetros, dependendo do sistema de armazenamento:

az aks create -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller 

Para desabilitar os drivers de armazenamento da CSI em um cluster existente, use um dos parâmetros já listados, dependendo do sistema de armazenamento:

az aks update -n myAKSCluster -g myResourceGroup --disable-disk-driver --disable-file-driver --disable-blob-driver --disable-snapshot-controller 

Migrar classes personalizadas de armazenamento na árvore para a CSI

Se você tiver criado classes de armazenamento de driver na árvore, elas continuarão a funcionar, pois a migração para a CSI será ativada após a atualização do cluster para a versão 1.21.x. Se você quiser usar os recursos da CSI, precisará executar a migração.

Para examinar as opções de migração para as classes de armazenamento e atualizar o cluster para usar discos do Azure e drivers CSI dos Arquivos do Azure, consulte Migrar de drivers na árvore para CSI.

Próximas etapas