Visão geral de armazenamento

Crie um armazenamento permanente para cargas de trabalho em execução no GKE no Azure com objetos do Kubernetes.

Armazenamento do plano de controle

Quando você cria um cluster, o GKE no Azure provisiona discos SSD LRS Premium para o plano de controle e os volumes do etcd.

Usar o armazenamento permanente nas cargas de trabalho do GKE no Azure

No GKE no Azure, você usa os recursos PersistentVolume (PV), PersistentVolumeClaim (PVC) e StorageClass do Kubernetes para fornecer armazenamento permanente de arquivos e em blocos às cargas de trabalho. Crie snapshots do armazenamento permanente com os recursos VolumeSnapshot e VolumeSnapshotClass. Os snapshots são armazenados na conta do Azure.

StorageClass

Os clusters têm uma StorageClass padrão do Kubernetes que provisiona dinamicamente o armazenamento com estado para cargas de trabalho em volumes do armazenamento em disco do Azure (AzureDisk). Também é possível usar um StorageClass diferente para provisionar outros tipos de volumes. Essas opções são descritas na seção a seguir.

Contas de armazenamento do Azure

O GKE no Azure cria automaticamente uma conta de armazenamento do Azure quando um cluster é criado. Se você quiser usar uma conta de armazenamento específica, crie uma classe de armazenamento personalizada.

Configurar o armazenamento de cluster

Se você quiser provisionar volumes de armazenamento com um StorageClass não padrão, crie um novo StorageClass em um cluster que use parâmetros diferentes ou um driver de armazenamento diferente. Em seguida, defina o StorageClass como o padrão do cluster ou configure as cargas de trabalho para usar o StorageClass. Por exemplo, use um StatefulSet para definir um nome de StorageClass específico.

Armazenamento em Disco do Azure (AzureDisk)

O GKE no Azure gerencia os volumes do Disco do Azure com o azuredisk-csi-driver.

A versão do driver CSI está vinculada a uma versão do GKE no Kubernetes do Azure. Quando você faz upgrade da versão do cluster, o GKE no Azure atualiza a versão do driver automaticamente. Essa versão geralmente é o driver mais recente disponível no momento em que a versão do GKE no Azure é lançada. O tipo de volume kubernetes.io/azure-disk legado do Kubernetes não é compatível.

O driver pré-instalado com o GKE no Azure fornece as seguintes StorageClasses por padrão:

  • standard-rwo (padrão): usado para provisionar discos SSD Azure padrão com LRS
  • premium-rwo: usado para provisionar discos SSD premium do Azure com LRS

Os volumes do disco do Azure são compatíveis com o modo de acesso ReadWriteOnce do Kubernetes.

Snapshots de volume

É possível usar o recurso VolumeSnapshot para criar snapshots de volumes de armazenamento. Depois, é possível provisionar novos volumes permanentes a partir desses snapshots.

Clonagem de volume

É possível usar a clonagem de volumes CSI para clonar volumes existentes do disco do Azure. Para mais informações, consulte o exemplo de clonagem de volume.

Redimensionamento de volume

Redimensione os volumes do Azure Disk desanexados com o redimensionamento do volume. Para mais informações, consulte o exemplo de redimensionamento de volume. Não é possível redimensionar enquanto o volume está conectado e ativado.

Discos compartilhados do Azure

Para cargas de trabalho projetadas para coordenar gravações em um disco de blocos bruto compartilhado, o GKE no Azure é compatível com discos compartilhados do Azure. Para mais informações, consulte Disco compartilhado (leitura/gravação de vários nós) na documentação do CSI do disco do Azure.

Armazenamento de Arquivos do Azure (AzureFile)

O GKE no Azure gerencia os volumes de Arquivos do Azure com azurefile-csi-driver

O driver CSI está vinculado a uma versão do Kubernetes para o GKE no Azure. Ao fazer upgrade da versão do cluster, a nova versão do driver é aplicada automaticamente. Essa versão geralmente é o driver mais recente disponível no momento em que a versão do GKE no Azure é lançada. O tipo de volume kubernetes.io/azure-file legado do Kubernetes não é compatível.

O driver pré-instalado com o GKE no Azure fornece as seguintes StorageClasses por padrão:

  • standard-rwx: usado para provisionar compartilhamentos de arquivos do Azure de SSD padrão com o LRS
  • premium-rwx: usado para provisionar compartilhamentos de arquivos do Azure de SSDs premium com o LRS

Os volumes de arquivos do Azure usam o modo de acesso ReadWriteMany do Kubernetes.

Snapshots de volume

É possível usar o recurso VolumeSnapshot para criar snapshots de volumes de Arquivos do Azure. Para saber mais, consulte a documentação do Recurso de snapshot de Arquivos do Azure. Para restaurar um snapshot, use o portal do Azure. Para mais informações, consulte Visão geral dos snapshots de compartilhamento dos arquivos do Azure.

Redimensionamento de volume

É possível redimensionar os volumes do arquivo do Azure com o redimensionamento do volume. Para mais informações, consulte o exemplo de redimensionamento de volume.

Outros drivers de armazenamento

Outros sistemas de armazenamento de terceiros podem ser usados com o GKE no Azure por meio de drivers de interface de armazenamento de contêiner (CSI) de terceiros (recomendado) ou de plug-ins de volume do Kubernetes.

Drivers de CSI

A Interface de Armazenamento de Contêiner (CSI) é uma API padrão aberta que permite ao Kubernetes anexar sistemas de armazenamento arbitrários a cargas de trabalho conteinerizadas. Uma lista não abrangente de drivers CSI pode ser encontrada na documentação do desenvolvedor de CSI do Kubernetes (em inglês). O GKE no Azure é compatível com o CSI v1.x.

Para usar um driver CSI no seu cluster, você precisa instalar o driver CSI fornecido pelo fornecedor de armazenamento. Em seguida, configure as cargas de trabalho para usar o StorageClass do driver ou defini-lo como o StorageClass padrão.

Drivers de armazenamento específicos do Azure

Os seguintes drivers de volume podem ser usados com o GKE no Azure:

O GKE no Azure não gerencia o armazenamento de blobs do Azure diretamente. É possível instalar manualmente o driver CSI blob-csi-driver, mas o suporte não está disponível no Google.

Plug-ins de volume do Kubernetes na árvore

O Kubernetes é fornecido com plug-ins de volume em árvore (integrados). Os drivers compatíveis na árvore incluem o seguinte:

  • configMap
  • emptyDir
  • hostPath
  • nfs
  • projected
  • secrets

A seguir