我正在使用VB在我的Mac上运行minikube。我能够使用声明式方法在minikube上启动一个数据库。但是当我删除部署时,数据会丢失。现在我的问题是——
- 所有这些数据都保存在哪里?
- 如何更改配置以便将数据保存在主机上(我的意思是 mac(?这样,删除或重新启动 pod/部署不会删除所有数据。
这是我的yaml文件 -
apiVersion: v1
kind: Service
metadata:
name: track-mysql
labels:
app: track
spec:
ports:
- port: 3306
selector:
app: track
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
labels:
type: local
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
hostPath:
path: /data/pv001
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-pvc
labels:
app: track
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: track-mysql
labels:
app: track
spec:
selector:
matchLabels:
app: track
strategy:
type: Recreate
template:
metadata:
labels:
app: track
spec:
containers:
- image: mysql:5.6
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql
key: password
- name: MYSQL_DATABASE
value: track
ports:
- containerPort: 3306
name: mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-pvc
我已经检查过,在我的Mac上,数据不在/data/pv001
在您删除部署的情况下,kubernetes 将删除所有生成的资源和所有卷。
您可以挂载本地文件夹,这样您就可以将数据保存到本地存储中。
由于删除部署时将删除永久性卷,因此,如果装载本地文件夹,尽管卷将被删除,但您的数据将存储在本地磁盘上。
我正在使用postgresql,运行后找到了我的数据
minikube ssh
在此路径中的文件夹中
/var/hostpath-provisioner/{my_namespace}/{my_claim_name}
哪里
my_claim_name
基本上是
kind: PersistentVolumeClaim
metadata:
name: my_claim_name
命名空间只是
kind: Namespace
metadata:
name: my_namespace
labels:
name: my_namespace
虽然我无法 cd 进入它,因为我没有 root 访问权限