Kubernetes保存mysql数据库';将数据存储在卷中

Kubernetes保存mysql数据库';将数据存储在卷中,mysql,spring-boot,kubernetes,minikube,persistent-volumes,Mysql,Spring Boot,Kubernetes,Minikube,Persistent Volumes,我是kubernetes的新手(使用minikube),我想部署一个使用mysql存储数据的springboot应用程序 我在一个装有2个容器(一个用于我的应用程序,一个用于mysql)的pod中运行我的应用程序,它工作正常,正如预期的那样,一旦我重新启动pod,我的数据就会丢失(例如,使用scale--replicas=0;scale--replicas=1) 我使用的是PersistentVolumeClaim,但数据仍然没有存储,我肯定遗漏了一些重要的内容 这是我的配置文件: apiVer

我是kubernetes的新手(使用minikube),我想部署一个使用mysql存储数据的springboot应用程序

我在一个装有2个容器(一个用于我的应用程序,一个用于mysql)的pod中运行我的应用程序,它工作正常,正如预期的那样,一旦我重新启动pod,我的数据就会丢失(例如,使用scale--replicas=0;scale--replicas=1)

我使用的是PersistentVolumeClaim,但数据仍然没有存储,我肯定遗漏了一些重要的内容

这是我的配置文件:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: esse-deployment-1
  labels:
    app: esse-1
spec:
  replicas: 1
  selector:
    matchLabels:
      app: esse-1
  template:
    metadata:
      labels:
        app: esse-1
    spec:
      containers:
      - image: mysql:5.7
        name: esse-datasource
        ports:
        - containerPort: 3306
        env: 
        - name: MYSQL_ROOT_PASSWORD
          value: root 
        volumeMounts:
        - name: mysql-persistent-storage-esse-1
          mountPath: /home/esse-1/data/mysql
      - image: esse-application
        name: esse-app
        imagePullPolicy: Never
        ports:
        - containerPort: 8080
        env:
        - name: ESSE_DATABASE_USERNAME
          value: root
        - name: ESSE_DATABASE_PASSWORD
          value: root
        - name: ESSE_APPLICATION_CONTEXT
          value: /esse-1
      volumes:
        - name: mysql-persistent-storage-esse-1
          persistentVolumeClaim:
            claimName: mysql-persistent-volume-claim-esse-1

---

apiVersion: v1
kind: Service
metadata:
  name: esse-service-1
  labels:
    app: esse-1
spec:
  selector:
    app: esse-1
  ports:
    - protocol: TCP
      port: 8080
      targetPort: 8080
  type: NodePort

---

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql-persistent-volume-claim-esse-1
  labels:
    app: esse-1
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

您需要将持久卷装载到mysql实际将数据库数据写入的目录中(调整容器的
mountPath
)。在本例中,这是
/var/lib/mysql

谢谢!我认为通过指定自定义目录,mysql容器将使用它来存储数据:p