I'm trying to use kubernetes with a spring boot application and use mysql. But i found this error on minikube dashboard:
0/1 nodes are available: 1 pod has unbound immediate PersistentVolumeClaims.Back-off restarting failed container
A secret file is created for boath user and admin and a configMap file also to map the spring boot image to the service of mysql.Mysql deployement file is:
apiVersion: v1kind: Servicemetadata: name: mysql # DNS name labels: app: mysql tier: databasespec: ports: - port: 3306 targetPort: 3306 selector: # mysql Pod Should contain same labels app: mysql tier: database clusterIP: None # We Use DNS, Thus ClusterIP is not relevant---# Define a 'Persistent Volume Claim'(PVC) for Mysql Storage, dynamically provisioned by clusterapiVersion: v1kind: PersistentVolumeClaimmetadata: name: mysql-pv-claim # name of PVC essential for identifying the storage data labels: app: mysql tier: databasespec: accessModes: - ReadWriteOnce #This specifies the mode of the claim that we are trying to create. resources: requests: storage: 1Gi #This will tell kubernetes about the amount of space we are trying to claim.---# Configure 'Deployment' of mysql serverapiVersion: apps/v1kind: Deploymentmetadata: name: mysql labels: app: mysql tier: databasespec: selector: # mysql Pod Should contain same labels matchLabels: app: mysql tier: database strategy: type: Recreate template: metadata: labels: # Must match 'Service' and 'Deployment' selectors app: mysql tier: database spec: containers: - image: mysql:latest # image from docker-hub args: - "--ignore-db-dir=lost+found" # Workaround for https://github.com/docker-library/mysql/issues/186 name: mysql env: - name: MYSQL_ROOT_PASSWORD # Setting Root Password of mysql From a 'Secret' valueFrom: secretKeyRef: name: db-admin # Name of the 'Secret' key: password # 'key' inside the Secret which contains required 'value' - name: MYSQL_USER # Setting USER username on mysql From a 'Secret' valueFrom: secretKeyRef: name: db-user key: username - name: MYSQL_PASSWORD # Setting USER Password on mysql From a 'Secret' valueFrom: secretKeyRef: name: db-user key: password - name: MYSQL_DATABASE # Setting Database Name from a 'ConfigMap' valueFrom: configMapKeyRef: name: db-config key: name ports: - containerPort: 3306 name: mysql volumeMounts: # Mounting volume obtained from Persistent Volume Claim - name: mysql-persistent-storage mountPath: /var/lib/mysql #This is the path in the container on which the mounting will take place. volumes: - name: mysql-persistent-storage # Obtaining 'volume' from PVC persistentVolumeClaim: claimName: mysql-pv-claim
I'm new with kubernetes and I can't find solution.