Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Afinal qual a vantagem/diferença entre Volumes e Volumes Persistentes?

Olá! Na aula foi apresentado inicialmente o Volume (assim como é no Docker, o volume tipo Bind) Com a introdução do novo assunto statefulset que faz uso de volume persistentes (pv, pvc sc) ficou um pouco confuso a diferença e de quando escolher usá-lo ou não.

No exemplo abaixo de teste, se o volume-dentro-do-container tiver arquivos importantes que não podem ser perdidos e ocorrer uma falha no container/pod e o mesmo for levantado com a mesmas configurações, **os dados voltam a ser mapeados dentro do container nginx **

Então, parece que eu conseguiria persistir qualquer coisa sem usar pv ou pvc ou sc. Que situação não estou percebendo?

piVersion: v1
kind: Pod
metadata:
  name: pod-volume
spec:
  containers:
    - name: nginx-container
      image: nginx:latest
      volumeMounts:
        - mountPath: /**volume-dentro-do-container**
          name: primeiro-volume
  volumes:                     
    - name: primeiro-volume    
      hostPath:
        path: /home/primeiro-volume
        type: DirectoryOrCreate

Arquivo persistido dentro do minikube, mesmo após a exclusão do pod arquivo persistido dentro do minikube, mesmo após a exclusão do pod

Arquivo dentro do container nginx, após recriar o pod Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá, Joel!

Volumes

No Kubernetes, um Volume é uma abstração que permite que dados sejam compartilhados entre os containers de um Pod. Os Volumes são criados no momento em que o Pod é iniciado e são destruídos quando o Pod é deletado. Isso significa que, se o Pod for recriado, os dados no Volume serão perdidos, a menos que o Volume seja baseado em um armazenamento externo, como um diretório no host (usando hostPath).

No seu exemplo, você está usando hostPath, que mapeia um diretório do host para o container. Isso faz com que os dados persistam mesmo após a exclusão do Pod, porque o diretório no host ainda existe.

Volumes Persistentes

Volumes Persistentes (PV) e Persistent Volume Claims (PVC) são usados para persistir dados além do ciclo de vida dos Pods. Um PV é um recurso no cluster que representa um pedaço de armazenamento que foi provisionado. Um PVC é uma solicitação de armazenamento por parte de um usuário. Quando um PVC é criado, ele se liga a um PV disponível que satisfaça a solicitação.

A principal vantagem dos Volumes Persistentes é que eles têm um ciclo de vida independente dos Pods. Isso é crucial para aplicações stateful, onde a persistência de dados é necessária mesmo após falhas ou reinicializações dos Pods.

Quando usar cada um?

  • Volumes: Use quando os dados não precisam ser persistidos além do ciclo de vida do Pod ou quando você está lidando com dados temporários.

  • Volumes Persistentes: Use quando você precisa garantir que os dados sejam preservados independentemente do ciclo de vida dos Pods, especialmente em aplicações stateful.

Bons estudos!