Volumes

Nesta página, fornecemos uma visão geral dos volumes no Kubernetes e o uso deles com o Google Kubernetes Engine.

Visão geral

Arquivos em disco em um contêiner são o local mais simples para um aplicativo gravar dados, mas essa abordagem tem desvantagens. Os arquivos são perdidos quando o contêiner falha ou é interrompido por qualquer outro motivo. Além disso, os arquivos contidos em um contêiner ficam inacessíveis a outros contêineres em execução no mesmo pod. A abstração de volumes do Kubernetes trata desses dois problemas.

Conceitualmente, um volume é um diretório acessível a todos os contêineres de um pod. A fonte do volume declarada na especificação do pod determina como o diretório é criado, o meio de armazenamento usado e o conteúdo inicial do diretório. Um pod especifica quais volumes ele contém e o caminho no qual os contêineres montam o volume.

Os tipos de volumes temporários têm os mesmos tempos de vida que os respectivos pods de fechamento. Esses volumes são criados quando o pod é criado e eles permanecem após as reinicializações do contêiner. Quando o pod é encerrado ou é excluído, os respectivos volumes vão com ele.

Outros tipos de volumes são interfaces para armazenamento durável que existem independentemente de um pod. Ao contrário dos volumes temporários, os dados em um volume respaldado por armazenamento durável são preservados quando o pod é removido. O volume é simplesmente desconectado e os dados podem ser transferidos para outro pod. Você precisa usar recursos PersistentVolume para gerenciar o ciclo de vida de tipos de armazenamento duráveis, em vez de especificá-los diretamente.

Tipos de volumes

Volumes diferem em sua implementação de armazenamento e seu conteúdo inicial. Você pode escolher a fonte do volume que melhor se adapta ao seu caso de uso. Várias fontes de volumes comuns são descritas abaixo:

emptyDir
Um tipo de volume temporário que fornece um diretório vazio em que os contêineres no pod podem ler e gravar. Quando o pod é removido de um nó por qualquer motivo, os dados no emptyDir são excluídos para sempre. emptyDirs são úteis para espaço em branco e para compartilhar dados entre vários contêineres em um pod.
configMap
Usado para tornar os dados de configuração acessíveis aos aplicativos. Os arquivos em um volume do configMap são especificados por um recurso ConfigMap.
secret
Usado para criar dados confidenciais, como senhas, tokens OAuth e chaves SSH, disponíveis para aplicativos.
downwardAPI
Usado para disponibilizar os dados da API Downward para aplicativos. Esses dados incluem informações sobre o pod e o contêiner em que um aplicativo é executado. Por exemplo, um pod pode ser configurado para expor um DownwardAPIVolumeFile a aplicativos que incluam o namespace e o endereço IP do pod.
persistentVolumeClaim
Os operadores de clusters podem provisionar armazenamento durável para ser usado pelos aplicativos. Um pod usa um PersistentVolumeClaim para montar um volume que é respaldado por esse armazenamento durável.

Para uma lista completa dos tipos de volumes, consulte a documentação dos volumes do Kubernetes.

A seguir

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Kubernetes Engine