apiVersion: v1 kind: Namespace metadata: labels: app.kubernetes.io/name: mysql app.kubernetes.io/version: 1.0.0 name: pandax-db --- apiVersion: v1 kind: Service metadata: labels: app.kubernetes.io/version: 1.0.0 name: mysql namespace: pandax-db spec: ports: - port: 3306 protocol: TCP targetPort: mysql selector: app: mysql app.kubernetes.io/version: 1.0.0 type: LoadBalancer --- apiVersion: v1 kind: PersistentVolume metadata: labels: app.kubernetes.io/version: 1.0.0 type: local name: mysql-pv-volume spec: accessModes: - ReadWriteOnce capacity: storage: 20Gi hostPath: path: /mnt/data storageClassName: manual --- apiVersion: v1 kind: PersistentVolumeClaim metadata: labels: app.kubernetes.io/version: 1.0.0 name: mysql-pv-claim namespace: pandax-db spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi storageClassName: manual --- apiVersion: apps/v1 kind: Deployment metadata: labels: app.kubernetes.io/version: 1.0.0 name: mysql namespace: pandax-db spec: selector: matchLabels: app: mysql app.kubernetes.io/version: 1.0.0 strategy: type: Recreate template: metadata: labels: app: mysql app.kubernetes.io/version: 1.0.0 spec: containers: - env: - name: MYSQL_ROOT_PASSWORD value: pandax image: mysql:8.0.23 name: mysql ports: - containerPort: 3306 name: mysql protocol: TCP volumeMounts: - mountPath: /var/lib/mysql name: mysql-persistent-storage volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim