Drivers CSI (Container Storage Interface) no Serviço Kubernetes do Azure (AKS)

A Interface de Armazenamento de Contentores (CSI) é uma norma para expor sistemas de blocos e armazenamento de ficheiros arbitrários a cargas de trabalho em contentores no Kubernetes. Ao adotar e usar o CSI, o Serviço Kubernetes do Azure (AKS) pode escrever, implantar e iterar plug-ins para expor sistemas de armazenamento novos ou melhorar os existentes no Kubernetes sem precisar tocar no código principal do Kubernetes e aguardar seus ciclos de lançamento.

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

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

Importante

A partir da versão 1.26 do Kubernetes, os tipos de volume persistente na árvore kubernetes.io/azure-disk e kubernetes.io/azure-file foram preteridos e não serão mais suportados. A remoção desses drivers após sua descontinuação não é planejada, no entanto, você deve migrar para os drivers CSI correspondentes disk.csi.azure.com e file.csi.azure.com. Para revisar as opções de migração para suas classes de armazenamento e atualizar seu cluster para usar os Discos do Azure e os drivers CSI dos Arquivos do Azure, consulte Migrar de drivers na árvore para drivers CSI.

Os drivers na árvore referem-se aos drivers de armazenamento que fazem parte do código principal do Kubernetes em oposição aos drivers CSI, que são plug-ins.

Nota

É 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 contra os comandos do driver de volume CSI para excluir o volume. O objeto PersistentVolume é excluído.

Pré-requisitos

  • Você precisa da CLI do Azure versão 2.42 ou posterior instalada e configurada. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).
  • Se o driver de armazenamento CSI de código aberto estiver instalado em seu cluster, desinstale-o antes de habilitar o driver CSI de armazenamento do Azure.
  • Para impor a definiçãode política do Azure para AKS, os clusters Kubernetes devem usar o driver StorageClass da Interface de Armazenamento de Contêiner (CSI), o complemento de Política do Azure precisa ser habilitado em clusters novos e existentes. Para um cluster existente, revise a Política do Azure do Learn para Kubernetes para habilitá-lo.

Cenários suportados pela encriptação de disco

Os drivers de armazenamento CSI suportam os seguintes cenários:

  • Discos gerenciados criptografados com chaves gerenciadas pelo cliente usando os Cofres de Chaves do Azure armazenados em um locatário diferente do Microsoft Entra.
  • Criptografe seus discos de Armazenamento do Azure hospedando o sistema operacional AKS e dados de aplicativos com chaves gerenciadas pelo cliente.

Habilitar drivers de armazenamento CSI em um cluster existente

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

  • --enable-disk-driverpermite que você habilite o driver CSI do Azure Disks.
  • --enable-file-driverpermite que você habilite o driver CSI dos Arquivos do Azure.
  • --enable-blob-driverpermite habilitar o driver CSI de armazenamento de Blob do Azure.
  • --enable-snapshot-controllerPermite ativar o controlador de instantâneo.
az aks update -n myAKSCluster -g myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller

Pode levar vários minutos para concluir esta ação. Quando estiver concluído, você verá na saída o status de ativação do driver no cluster. O exemplo a seguir é semelhante à seção que indica os resultados ao habilitar o driver CSI de armazenamento de Blob:

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

Desabilitar drivers de armazenamento CSI em um cluster novo ou existente

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

  • --disable-disk-driver permite desabilitar o driver CSI do Azure Disks.
  • --disable-file-driverpermite que você desabilite o driver CSI dos Arquivos do Azure.
  • --disable-blob-driverpermite desabilitar o driver CSI de armazenamento de Blob do Azure.
  • --disable-snapshot-controller Permite desativar o controlador de instantâneo.
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 CSI em um cluster existente, use um dos parâmetros listados anteriormente, 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 de armazenamento em árvore personalizadas para CSI

Se você criou classes de armazenamento de driver na árvore, essas classes de armazenamento continuarão a funcionar desde que a migração CSI é ativada após a atualização do cluster para 1.21.x. Se você quiser usar os recursos CSI, precisará executar a migração.

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

Próximos passos