Vista geral do armazenamento

Crie armazenamento persistente para cargas de trabalho executadas no GKE no Azure com objetos Kubernetes.

Armazenamento do plano de controlo

Quando cria um cluster, o GKE no Azure aprovisiona discos SSD Premium LRS para o plano de controlo e volumes etcd.

Use o armazenamento persistente nas suas cargas de trabalho do GKE no Azure

No GKE no Azure, usa os recursos do Kubernetes PersistentVolume (PV), PersistentVolumeClaim (PVC) e StorageClass para fornecer armazenamento persistente de ficheiros e blocos às cargas de trabalho. Pode criar instantâneos do armazenamento persistente com os recursos VolumeSnapshot e VolumeSnapshotClass. As capturas de ecrã são armazenadas na sua conta do Azure.

StorageClass

Os clusters têm uma StorageClass do Kubernetes predefinida que aprovisiona dinamicamente armazenamento com estado para cargas de trabalho em volumes do Azure Disk Storage (AzureDisk). Também pode usar uma StorageClass diferente para aprovisionar outros tipos de volumes. Estas opções estão descritas na secção seguinte.

Contas de armazenamento do Azure

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

Configure o armazenamento de clusters

Se quiser aprovisionar volumes de armazenamento com uma StorageClass não predefinida, pode criar uma nova StorageClass num cluster que use parâmetros diferentes ou um controlador de armazenamento diferente. Em seguida, pode definir a StorageClass como predefinição do cluster ou configurar as cargas de trabalho para usar a StorageClass. Por exemplo, pode usar um StatefulSet para definir um nome de StorageClass específico.

Armazenamento em disco do Azure (AzureDisk)

O GKE no Azure gere volumes de disco do Azure com o azuredisk-csi-driver.

A versão do controlador CSI está associada a uma versão do Kubernetes do GKE no Azure. Quando atualiza a versão do cluster, o GKE no Azure atualiza automaticamente a versão do controlador. Normalmente, esta versão é o controlador mais recente disponível no momento do lançamento da versão do GKE no Azure. O tipo de volume do Kubernetes kubernetes.io/azure-disk antigo não é suportado.

O controlador pré-instalado com o GKE no Azure fornece as seguintes StorageClasses por predefinição:

  • standard-rwo (predefinição): usado para o aprovisionamento de discos Azure SSD padrão com LRS
  • premium-rwo: usado para o aprovisionamento de discos do Azure SSD premium com LRS

Os volumes de disco do Azure suportam o modo de acesso ReadWriteOnce do Kubernetes.

Instantâneos de volume

Pode usar o recurso VolumeSnapshot para criar capturas de ecrã de volumes de armazenamento. Em seguida, pode aprovisionar novos volumes persistentes a partir destas capturas de ecrã.

Clonagem de volumes

Pode usar a clonagem de volumes de CSI para clonar volumes de discos do Azure existentes. Para mais informações, consulte o exemplo de clonagem de volume.

Redimensionamento do volume

Pode redimensionar volumes de discos do Azure não anexados com o redimensionamento de volumes. Para mais informações, consulte o exemplo de redimensionamento do volume. A alteração do tamanho enquanto o volume está associado e montado não é suportada.

Discos partilhados do Azure

Para cargas de trabalho concebidas para coordenar escritas num disco de blocos não processados partilhado, o GKE no Azure suporta discos partilhados do Azure. Para mais informações, consulte o artigo Disco partilhado(leitura/escrita em vários nós) na documentação do CSI de disco do Azure.

Armazenamento de ficheiros do Azure (AzureFile)

O GKE no Azure gere volumes de Azure Files com o azurefile-csi-driver

O controlador CSI está associado a uma versão do Kubernetes do GKE no Azure. Quando atualiza a versão do cluster, a nova versão do controlador é aplicada automaticamente. Normalmente, esta versão é o controlador mais recente disponível no momento do lançamento da versão do GKE no Azure. O tipo de volume do Kubernetes kubernetes.io/azure-file antigo não é suportado.

O controlador pré-instalado com o GKE no Azure fornece as seguintes StorageClasses por predefinição:

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

Instantâneos de volume

Pode usar o recurso VolumeSnapshot para criar capturas de ecrã de volumes de ficheiros do Azure. Para mais informações, consulte a documentação da funcionalidade de instantâneo de ficheiros do Azure. Para restaurar uma captura instantânea, usa o portal do Azure. Para mais informações, consulte o Resumo das partilhas de instantâneos para o Azure Files.

Redimensionamento do volume

Pode redimensionar volumes de ficheiros do Azure com o redimensionamento de volumes. Para mais informações, consulte o exemplo de redimensionamento do volume.

Drivers de armazenamento adicionais

Podem ser usados outros sistemas de armazenamento de terceiros com o GKE no Azure através de controladores da interface de armazenamento de contentores (CSI) de terceiros (recomendado) ou plug-ins de volume do Kubernetes na árvore.

Controladores CSI

A interface de armazenamento de contentores (CSI) é uma API de norma aberta que permite ao Kubernetes anexar sistemas de armazenamento arbitrários a cargas de trabalho em contentores. Pode encontrar uma lista não exaustiva de controladores CSI na documentação do programador do CSI do Kubernetes. O GKE no Azure suporta o CSI v1.x.

Para usar um controlador de CSI no seu cluster, tem de instalar o controlador de CSI fornecido pelo seu fornecedor de armazenamento. Em seguida, pode configurar as cargas de trabalho para usar a StorageClass do controlador ou defini-la como a StorageClass predefinida.

Controladores de armazenamento específicos do Azure

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

O GKE no Azure não gere o armazenamento de blobs do Azure diretamente. Pode instalar manualmente o controlador CSI blob-csi-driver, mas o apoio técnico não está disponível na Google.

Plug-ins de volume no Kubernetes

O Kubernetes é fornecido com plug-ins de volume na árvore (integrados). Os controladores no kernel suportados incluem o seguinte:

  • configMap
  • emptyDir
  • hostPath
  • nfs
  • projetado
  • segredos

O que se segue?