Quando se trata de necessidades de armazenamento no Kubernetes (K8s), os volumes emptyDir são uma das opções comumente usadas. O volume emptyDir é um volume de armazenamento temporário criado quando o pod é criado e compartilha o mesmo ciclo de vida com o pod. O volume emptyDir é adequado para cenários em que dados temporários precisam ser compartilhados entre vários contêineres no mesmo pod. A seguir estão alguns cenários de uso de volumes vaziosDir:
-
Arquivos compartilhados: vários contêineres precisam ler e gravar os mesmos arquivos no mesmo pod. O volume emptyDir pode servir como armazenamento temporário para dados compartilhados entre esses contêineres.
-
Armazenamento em cache de dados: alguns aplicativos exigem armazenamento em cache de dados para melhorar o desempenho. O volume emptyDir pode ser usado como um diretório de cache onde vários contêineres podem ler e gravar dados de cache.
-
Cálculos ad hoc: algumas tarefas exigem cálculos de dados intermediários entre vários contêineres no mesmo pod. Os volumes emptyDir fornecem uma solução de armazenamento rápida e temporária.
Aqui está um exemplo YAML anotado que mostra como usar volumes emptyDir no Kubernetes:
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: container1
image: nginx
volumeMounts:
- name: shared-data
mountPath: /data
- name: container2
image: busybox
command: ["sh", "-c", "while true; do sleep 3600; done"]
volumeMounts:
- name: shared-data
mountPath: /data
volumes:
- name: shared-data
emptyDir: {
}
Neste exemplo, existem dois contêineres container1
e container2
, e ambos precisam compartilhar dados. shared-data
é um volume emptyDir, que é montado no /data
caminho de ambos os contêineres. Dessa forma, os dados container1
podem ser /data
gravados e container2
lidos.
Observe que os dados do volume emptyDir são apagados quando o pod é excluído, portanto, não é adequado para armazenamento persistente. Se necessário, considere outros tipos de volumes de armazenamento, como PersistentVolumeClaim (PVC).