💾 Storage
O disco de um container é temporário: quando o pod é recriado, tudo o que estava nele se perde. Para guardar dados que precisam sobreviver (banco de dados, uploads, arquivos), o Kubernetes usa discos persistentes.
| Termo | O que é | Analogia |
|---|---|---|
| StorageClass | O tipo de disco disponível (por exemplo, SSD) | O catálogo de discos |
| PVC (PersistentVolumeClaim) | O pedido de um disco, com tamanho | O pedido de compra |
| PV (PersistentVolume) | O disco em si, criado automaticamente a partir do pedido | O disco entregue |
Na prática, você só cria o PVC. O cluster cria o disco sozinho.
O PVC é criado com o kubectl. O disco criado pode ser consultado também no Painel Nuvion (passo 6).
🚀 Antes de começar
- Ter o acesso ao cluster configurado (veja Acesso ao Cluster).
🚀 1. Ver os tipos de disco disponíveis
kubectl get storageclass
Anote o nome da classe marcada com (default). Ela é usada quando você não
escolhe uma.
🚀 2. Pedir um disco (criar o PVC)
Crie o arquivo pvc-dados.yaml:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-dados
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
kubectl apply -f pvc-dados.yaml
Se a lista do passo 1 não tiver nenhuma classe (default), adicione a linha
storageClassName: NOME-DA-CLASSE dentro de spec.
O ReadWriteOnce significa que o disco pode ser usado por um node por vez.
🚀 3. Verificar o pedido
kubectl get pvc pvc-dados
O STATUS deve ser Bound (disco entregue). Em alguns clusters o status
fica Pending até que um pod use o disco, e isso é normal. Siga para o passo 4.
🚀 4. Usar o disco em um pod
Crie o arquivo pod-storage.yaml. Cada vez que o pod inicia, ele anota a data
e a hora no arquivo /dados/historico.txt:
apiVersion: v1
kind: Pod
metadata:
name: pod-storage
spec:
containers:
- name: app
image: busybox
command: ["sh", "-c", "date >> /dados/historico.txt; sleep 3600"]
volumeMounts:
- name: dados
mountPath: /dados
volumes:
- name: dados
persistentVolumeClaim:
claimName: pvc-dados
kubectl apply -f pod-storage.yaml
kubectl get pvc pvc-dados
kubectl exec pod-storage -- cat /dados/historico.txt
O PVC passa a Bound e o arquivo mostra uma linha com a data.
🚀 5. Provar que os dados sobrevivem
Exclua o pod e crie de novo:
kubectl delete pod pod-storage
kubectl apply -f pod-storage.yaml
kubectl exec pod-storage -- cat /dados/historico.txt
Agora o arquivo mostra duas linhas: a de antes e a nova. O pod foi recriado, mas o disco manteve os dados.
🚀 6. Ver o disco criado
- 🖥️ Painel Nuvion
- ⌨️ kubectl (CLI)
Acesse Computar > Volumes e procure um volume novo de 1 GiB, criado automaticamente pelo cluster.

kubectl get pv
A coluna CLAIM mostra default/pvc-dados.
✅ Como saber se deu certo
O arquivo /dados/historico.txt acumula uma linha nova a cada vez que o pod é recriado.
Ao excluir o PVC, o disco e todos os dados são apagados (na configuração padrão). Excluir apenas o pod não apaga nada.
❗ Problemas comuns
| Sintoma | Causa | Solução |
|---|---|---|
PVC Pending e o pod também | Nenhuma StorageClass padrão | Adicione storageClassName no PVC (passo 2) |
Pod parado em ContainerCreating | O disco ainda está sendo preparado | Aguarde e veja a seção Events em kubectl describe pod pod-storage |
Erro Multi-Attach | Disco ReadWriteOnce em uso por pod em outro node | Use apenas um pod com esse disco, ou garanta que fiquem no mesmo node |
| Pedido de tamanho maior que o permitido | Limite de volume ou quota | Peça um tamanho menor ou fale com o suporte |
🧹 Limpeza
kubectl delete pod pod-storage
kubectl delete pvc pvc-dados
O segundo comando apaga o disco e os dados.
➡️ Próximo passo: Networking
🧠 Dúvidas?
Fale com nosso time de suporte técnico da SaveinCloud!