|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
Volumes e Armazenamento
Ao implantar um aplicativo que precisa reter dados, você precisará criar armazenamento persistente. O armazenamento persistente permite que você armazene dados do aplicativo externamente ao pod que está executando seu aplicativo. Essa prática de armazenamento permite que você mantenha os dados do aplicativo, mesmo que o pod do aplicativo falhe.
Um volume persistente (PV) é uma unidade de armazenamento no cluster Kubernetes, enquanto uma solicitação de volume persistente (PVC) é um pedido de armazenamento. Para detalhes sobre como os PVs e PVCs funcionam, consulte a documentação oficial do Kubernetes sobre armazenamento.
K3s, como uma distribuição Kubernetes compatível, utiliza o Container Storage Interface (CSI) e Cloud Provider Interface (CPI) para gerenciar armazenamento persistente.
Esta página descreve como configurar armazenamento persistente com um provedor de armazenamento local ou com Longhorn.
Configurando o Provedor de Armazenamento Local
K3s vem com o Local Path Provisioner da Rancher, o que possibilita a criação de solicitações de volume persistente de forma simples usando armazenamento local no respectivo nó. Abaixo cobrimos um exemplo simples. Para mais informações, consulte a documentação oficial aqui.
Crie uma solicitação de volume persistente com hostPath e um pod para utilizá-lo:
pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: local-path-pvc
namespace: default
spec:
accessModes:
- ReadWriteOnce
storageClassName: local-path
resources:
requests:
storage: 2Gi
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: volume-test
namespace: default
spec:
containers:
- name: volume-test
image: nginx:stable-alpine
imagePullPolicy: IfNotPresent
volumeMounts:
- name: volv
mountPath: /data
ports:
- containerPort: 80
volumes:
- name: volv
persistentVolumeClaim:
claimName: local-path-pvc
Aplique o yaml:
kubectl create -f pvc.yaml
kubectl create -f pod.yaml
Confirme que o PV e o PVC foram criados:
kubectl get pv
kubectl get pvc
O status deve ser Bound para cada um.
Configurando o Longhorn
|
O Longhorn não suporta ARM32. |
O K3s suporta Longhorn, um sistema de armazenamento em blocos distribuído de código aberto para Kubernetes.
Abaixo cobrimos um exemplo simples. Para obter mais informações, consulte a documentação oficial.
Aplique o longhorn.yaml para instalar o Longhorn:
kubectl apply -f https://raw.githubusercontent.com/longhorn/longhorn/v1.8.1/deploy/longhorn.yaml
O Longhorn será instalado no namespace longhorn-system.
Crie uma solicitação de volume persistente e um pod para utilizá-lo:
pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: longhorn-volv-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 2Gi
pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: volume-test
namespace: default
spec:
containers:
- name: volume-test
image: nginx:stable-alpine
imagePullPolicy: IfNotPresent
volumeMounts:
- name: volv
mountPath: /data
ports:
- containerPort: 80
volumes:
- name: volv
persistentVolumeClaim:
claimName: longhorn-volv-pvc
Aplique o yaml para criar o PVC e o pod:
kubectl create -f pvc.yaml
kubectl create -f pod.yaml
Confirme que o PV e o PVC foram criados:
kubectl get pv
kubectl get pvc
O status deve ser Bound para cada um.