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:
- Discos gerenciados criptografados com chaves gerenciadas pelo cliente usando o Azure Key Vaults armazenado em um locatário diferente do Microsoft Entra.
- Criptografe os discos do Armazenamento do Azure que hospedam os dados do sistema operacional e do aplicativo do AKS com chaves gerenciadas pelo cliente.
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:
--enable-disk-driver
permite habilitar o driver da CSI de Discos do Azure.--enable-file-driver
permite habilitar o driver da CSI para Arquivos do Azure.--enable-blob-driver
permite habilitar o driver da CSI do Armazenamento de Blobs do Azure.--enable-snapshot-controller
permite habilitar o controlador de instantâneo.
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:
--disable-disk-driver
permite desabilitar o driver da CSI para Discos do Azure.--disable-file-driver
permite desabilitar o driver da CSI para Arquivos do Azure.--disable-blob-driver
permite desabilitar o driver da CSI do Armazenamento de Blobs do Azure.--disable-snapshot-controller
permite desabilitar o controlador de instantâneo.
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
- Para usar o driver da CSI com os Discos do Azure, confira Usar os Discos do Azure com drivers da CSI.
- Para usar o driver da CSI com os Arquivos do Azure, confira Usar os Arquivos do Azure com drivers da CSI.
- Para usar o driver da CSI para Armazenamento de Blobs do Azure, confira Usar o Armazenamento de Blobs do Azure com drivers da CSI
- Para saber mais sobre melhores práticas de armazenamento, confira Melhores práticas para armazenamento e backups no Serviço de Kubernetes do Azure.
- Para obter mais informações sobre a migração da CSI, consulte Migração de volume em árvore do Kubernetes para CSI.
Azure Kubernetes Service