#kubernetes #kubernetes-deployment
#kubernetes #kubernetes-развертывание
Вопрос:
Я создал постоянный том Kubernetes и утверждаю, что использовал их в файле развертывания.
Развертывание работает нормально. Но ошибка, с которой я сталкиваюсь, заключается в том, что данные все еще хранятся внутри контейнеров.
я хочу, чтобы данные хранились в pv, который я создал на локальном.
Ниже мой PVC.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: admin-pvc
labels:
app: data
spec:
accessModes:
- ReadWriteMany
storageClassName: local-storage
resources:
requests:
storage: 2Gi
selector:
matchLabels:
type: local
Ниже мой pv
apiVersion: v1
kind: PersistentVolume
metadata:
name: task-pv-volume
labels:
type: local
spec:
storageClassName: local-storage
capacity:
storage: 2Gi
accessModes:
- ReadWriteMany
hostPath:
path: "/mnt/data"
все еще мои данные хранятся внутри pod.
которые я хочу использовать внутри pv.
Комментарии:
1. не могли бы вы, пожалуйста, поделиться своим файлом развертывания?
Ответ №1:
Я думаю, вы неправильно поняли концепцию pv и pvc. PV — это просто хранилище в масштабе кластера, а pvc — это хранилище, которое pod может использовать для хранения данных и получения их по мере необходимости. Когда вы добавляете PVC в pod, то все данные, которые генерирует ваш pod, сохраняются в PVC, что означает, что независимо от того, уничтожен или воссоздан ваш pod get, в новом pod будут все данные.
Ответ №2:
Ваше развертывание должно ссылаться на этот PVC:
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
name: something
name: something
spec:
replicas: 1
selector:
matchLabels:
name: something
strategy:
type: Recreate
template:
spec:
containers:
- image: something/something
volumeMounts:
- name: your-volume-mount
mountPath: /some/path/in/your/container
restartPolicy: Always
dnsPolicy: ClusterFirst
volumes:
- name: your-volume-mount
persistentVolumeClaim:
claimName: admin-pvc # here it is!