2

我正在使用 VB 在我的 Mac 上运行 minikube。我能够使用声明性方法在 minikube 上启动数据库。但是当我删除部署时,数据就会丢失。现在我的问题是——

  1. 所有这些数据都保存在哪里?
  2. 如何更改配置以便将数据保存在主机上(我的意思是 mac)?这样删除或重新启动 pod/deployment 不会删除所有数据。

这是我的 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

4

2 回答 2

0

在您删除部署时,kubernetes 将删除所有生成的资源和所有卷。

您可以挂载本地文件夹 ,这样您就可以将数据保存到本地存储中。

因为当您删除部署时您的持久卷将被删除,所以如果您挂载本地文件夹,尽管卷将被删除,您的数据将存储在本地磁盘上。

于 2018-03-14T10:42:28.160 回答
0

我正在使用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 访问权限

于 2022-01-03T09:33:32.550 回答