Visão geral de armazenamento

Há várias opções de armazenamento para aplicativos em execução no Google Kubernetes Engine (GKE). Elas variam de acordo com a flexibilidade e a facilidade de uso. O Google Cloud oferece várias soluções de armazenamento especializadas para diferentes necessidades. Além disso, o Kubernetes fornece abstrações de armazenamento que podem ser usadas para oferecer armazenamento ao cluster.

Opções gerenciadas

As opções de armazenamento mais simples são os produtos de armazenamento gerenciados do Google Cloud.

Se você precisar de um banco de dados, use o Google Cloud SQL, o Cloud Datastore ou o Cloud Spanner. Use o Google Cloud Storage para armazenamento de objetos. Armazene as imagens privadas de contêiner do Docker no Container Registry.

Use o Filestore se o aplicativo exigir um armazenamento conectado à rede (NAS, na sigla em inglês) que seja gerenciado. Para ter um armazenamento de arquivos compatível com POSIX, use um servidor de arquivos no Compute Engine. Se o aplicativo exigir armazenamento em blocos, use discos permanentes. É possível provisionar os discos permanentes manualmente ou deixar que o Kubernetes provisione os discos dinamicamente para você. Consulte “PersistentVolumes” abaixo.

Consulte o guia Como escolher uma opção de armazenamento para uma lista completa e uma comparação das soluções de armazenamento disponíveis no Google Cloud.

Abstrações de armazenamento do Kubernetes

As abstrações de armazenamento do Kubernetes fornecem armazenamento baseado em sistema de arquivos e em blocos para seus pods. Elas não são usadas com bancos de dados gerenciados ou com o Cloud Storage.

Volumes
Os volumes são uma unidade de armazenamento acessível aos contêineres em um pod. Alguns tipos de volume têm o suporte do armazenamento temporário. Os tipos de armazenamento temporários (por exemplo, emptyDir [em inglês], configMap e secrets) não permanecem depois que o pod é encerrado. Eles são úteis para armazenar informações de configuração e como espaço temporário para aplicativos. É possível gerenciar os recursos de armazenamento temporário local assim como você gerencia seus recursos de CPU e memória. Outros tipos de volume têm o suporte do armazenamento durável.
PersistentVolumes
Os volumes permanentes são recursos de cluster que os pods podem usar para ter armazenamento durável. Os PersistentVolumesClaims podem ser usados para provisionar dinamicamente volumes permanentes com o suporte de discos permanentes do Compute Engine para uso no cluster. Também é possível usar PersistentVolumeClaims para provisionar outros tipos de armazenamento de suporte como o NFS.