Visão geral de armazenamento

Crie 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 Premium LRS para plano de controle e volumes etcd.

Use 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 em blocos e arquivos permanentes para cargas de trabalho. Crie snapshots de armazenamento permanente com os recursos VolumeSnapshot e VolumeSnapshotClass. Os snapshots são armazenados na conta do Azure.

StorageClass

Os clusters têm um 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 os 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 Azure Disk. 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 bloco bruto compartilhado, o GKE no Azure oferece suporte aos discos compartilhados do Azure (em inglês). Para mais informações, consulte Disco compartilhado(Leitura de vários nós) na documentação do CSI de disco do Azure.

Armazenamento de Arquivos do Azure (AzureFile)

O GKE no Azure gerencia os volumes de Arquivos do Azure com o método azurefile-csi-driver

O driver CSI está vinculado a uma versão do GKE no Kubernetes do Azure. Ao fazer upgrade da versão do cluster do usuário, a nova versão do driver será aplicada automaticamente. Essa versão normalmente é 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 os seguintes StorageClasses por padrão:

  • standard-rwx: usado para provisionar compartilhamentos de arquivos do Azure SSD padrão com o LRS
  • premium-rwx: usado para provisionar SSDs premium compartilhamentos de arquivos do Azure 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, na sigla em inglês) de terceiros (recomendado) ou plug-ins de volume do Kubernetes em árvore.

Drivers de CSI

A Container Storage Interface (CSI) é uma API padrão aberta que permite ao Kubernetes anexar sistemas de armazenamento arbitrários a cargas de trabalho em contêineres. 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 oferece suporte à 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 Blob 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