Visão geral
Introdução
Algumas aplicações exigem armazenamento adicional, mas se os dados ainda estão disponíveis após uma reinicialização não é importante. Por exemplo, embora os serviços de cache sejam limitados pelo tamanho da memória, os serviços de cache podem mover dados usados com pouca frequência para um armazenamento mais lento que a memória. Como resultado, o desempenho geral não é afetado significativamente. Outras aplicações exigem dados de somente leitura injetados como arquivos, como dados de configuração ou segredos.
Os volumes efêmeros (EVs) no Kubernetes são projetados para o cenário acima. Os EVs são criados e excluídos juntamente com os pods após o ciclo de vida do pod.
- emptyDir: vazio na inicialização do pod, com armazenamento vindo localmente do diretório base do kubelet (geralmente o disco raiz) ou da memória. emptyDir é alocado a partir do EV do nó. Se dados de outras fontes (como arquivos de log ou dados de camadas de imagem) ocuparem o armazenamento temporário, a capacidade de armazenamento pode ser insuficiente.
- ConfigMap: os dados do tipo ConfigMap do Kubernetes são montados em pods como volumes de dados.
- Secret: os dados do Kubernetes do tipo Secret são montados em pods como volumes de dados.
Tipos de emptyDir
- Uso de um caminho temporário: tipo emptyDir de Kubernetes nativo. Seu ciclo de vida é o mesmo que o de um pod. A memória pode ser especificada como o meio de armazenamento. Quando o pod é excluído, o volume de emptyDir é excluído e seus dados são perdidos.
- Uso de um EV local: os discos de dados locais em um nó formam um pool de armazenamento (VolumeGroup) por meio do LVM. Os LVs são criados como o meio de armazenamento de emptyDir e montados em contêineres. Os LVs oferecem um desempenho melhor do que o meio de armazenamento padrão do emptyDir.
Restrições
- Os EVs locais são suportados apenas quando a versão do cluster é v1.21.2-r0 ou posterior e a versão do complemento everest é 2.1.23 ou posterior.
- Não exclua manualmente o pool de armazenamento correspondente nem desanexe discos de dados do nó. Caso contrário, exceções como perda de dados podem ocorrer.
- Certifique-se de que o diretório /var/lib/kubelet/pods/ não esteja montado no pod no nó. Caso contrário, o pod, montado com tais volumes, pode falhar em ser excluído.