Compartilhar via


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.

Dica

Se você quiser uma solução totalmente gerenciada para acesso em nível de bloco aos dados, considere usar o Armazenamento de Contêineres do Azure em vez de drivers CSI. O Armazenamento de Contêineres do Azure integra-se ao Kubernetes, permitindo o provisionamento dinâmico e automático de volumes persistentes. O Armazenamento de Contêineres do Azure dá suporte a Discos do Azure, Discos Efêmeros e ao Azure Elastic SAN (versão prévia) como backup de armazenamento, oferecendo flexibilidade e escalabilidade para aplicativos com estado em execução em clusters do Kubernetes.

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 aplicar a Política do Azure para AKS definição de política 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 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 --name myAKSCluster --resource-group myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller

Pode levar vários minutos para concluir essa ação. 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 \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --disable-disk-driver \
    --disable-file-driver \
    --disable-blob-driver \
    --disable-snapshot-controller \
    --generate-ssh-keys

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 \
    --name myAKSCluster \
    --resource-group myResourceGroup \
    --disable-disk-driver \
    --disable-file-driver \
    --disable-blob-driver \
    --disable-snapshot-controller 

Observação

Recomendamos 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.

Migrar classes personalizadas de armazenamento na árvore para a CSI

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. 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.

Não está planejado remover esses drivers após sua descontinuação, no entanto, 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.

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.

Próximas etapas