【问题标题】:Minikube MySQL filesMinikube MySQL 文件
【发布时间】:2018-03-14 10:01:17
【问题描述】:

我正在使用 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

【问题讨论】:

    标签: kubernetes minikube persistent-volumes persistent-volume-claims


    【解决方案1】:

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

    您可以mount local folder,这样您就可以将数据保存到本地存储中。

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

    【讨论】:

    • 谢谢。好的,这样我可以挂载一个主机文件夹,但是当我 ssh 到 minikube 时,我在 /data/pv001 上看不到 MySQL 文件。你有什么想法吗?
    • 您是在 Mac 上还是在 kubernetes 内寻找文件。里面应该在 mountPath: /var/lib/mysql 中,在主机中应该在 ~/mount-dir 中,你可以挂载到 minikube
    • 我正在研究 minikube。所以我要做的是minikube ssh,然后尝试寻找/data/pv001,因为那是卷上提到的主机路径。 minikube 是 Kubernetes 集群的宿主。到目前为止还没有 mound dir,到目前为止我还没有将任何 mac 文件夹挂载到 minikube 中。
    【解决方案2】:

    我用的是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 访问权限

    【讨论】:

      猜你喜欢
      • 2021-12-04
      • 2022-07-20
      • 1970-01-01
      • 2017-12-27
      • 2021-05-21
      • 2021-10-19
      • 2019-05-18
      • 2019-12-13
      • 2021-08-05
      相关资源
      最近更新 更多