Armazenamento

Você cria armazenamento permanente para cargas de trabalho em execução no GKE na AWS com objetos do Kubernetes.

Como usar o armazenamento permanente em cargas de trabalho do GKE na AWS

No GKE na AWS, 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. Para os clusters de usuários versão 1.17 e superior, é possível criar snapshots de armazenamento permanente com os recursos VolumeSnapshot e VolumeSnapshotClass. Os snapshots são armazenados na conta da AWS.

StorageClass

Os usuários dos clusters têm um StorageClass padrão do Kubernetes que provisiona dinamicamente o armazenamento com estado para cargas de trabalho em volumes no Elastic Block Storage (EBS) da AWS. 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.

VolumeSnapshotClass

Os usuários dos clusters têm uma VolumeSnapshotClass padrão do Kurbernetes que cria snapshots de armazenamento com estado nos volumes do AWS Elastic Block Storage (EBS).

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

Como usar instantâneos de volume

Nas versões 1.17 e posteriores do Kubernetes, use o recurso VolumeSnapshot para criar snapshots de volumes de armazenamento. Depois, é possível provisionar novos volumes permanentes a partir desses snapshots.

Armazenamento em blocos flexíveis (EBS, na sigla em inglês)

O GKE na AWS gerencia os volumes EBS da AWS com o aws-ebs-csi-driver.

A versão do driver CSI do EBS está vinculada a uma versão do Kubernetes para GKE na AWS. Ao fazer upgrade da versão do cluster do usuário, a nova versão do driver será aplicada automaticamente. Essa versão geralmente é o driver mais recente disponível no momento em que a versão do GKE na AWS é lançada.

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

  • standard-rwo (padrão): usado para provisionar volumes gp2 do EBS.
  • premium-rwo: usado para provisionar volumes io1 do EBS.

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

Volumes preexistentes do EBS

É possível provisionar volumes atuais do EBS nas cargas de trabalho do GKE na AWS. Consulte Como importar um volume EBS preexistente para ver exemplos de como usar volumes EBS do GKE na AWS.

Sistema de arquivos flexíveis (EFS, na sigla em inglês)

O GKE na AWS 1.6 e versões posteriores é compatível com a montagem de sistemas de arquivos e pontos de acesso do AWS EFS preexistentes. Para mais informações, consulte Como usar o EFS.

Outras opções de armazenamento

Outros sistemas de armazenamento de terceiros podem ser usados com o GKE na AWS 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.

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 na AWS é compatível com 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 da AWS

Os seguintes drivers de volume podem ser usados com o GKE na AWS.

FSx para Lustre (FSX)

O GKE na AWS não gerencia volumes FSx diretamente. É possível instalar manualmente o aws-fsx-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