<p>my pvc.yaml</p>

<pre><code>kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: database-disk
  labels:
    stage: production
    name: database
    app: mysql
spec:
  accessModes:
    - ReadWriteOnce
  volumeMode: Filesystem
  resources:
    requests:
      storage: 2Gi
</code></pre>

<p>when i ran <code>kubectl apply -f pvc.yaml</code> i got the following error 
<code>Normal  FailedBinding  12h (x83 over 13h)  persistentvolume-controller  no persistent volumes available for this claim and no storage class is set</code></p>

<p>same pvc worked fine on "GKE" (Google Kubernetes Engine) but failing in my local cluster using <a href="https://github.com/ubuntu/microk8s" rel="noreferrer">microk8s</a></p>

invariant
<p>Did you create any PV in your cluster? </p>

<p>PV and Storage classes on local clusters should be done manually by cluster admin.</p>

<p>Check out <a href="https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/" rel="noreferrer">Kubernetes documentation</a> for the details:</p>

<blockquote>
  <ol>
  <li><p>A cluster administrator creates a PersistentVolume that is backed by physical storage. The administrator does not associate the volume
  with any Pod.</p></li>
  <li><p>A cluster user creates a PersistentVolumeClaim, which gets automatically bound to a suitable PersistentVolume.</p></li>
  <li><p>The user creates a Pod that uses the PersistentVolumeClaim as storage.</p></li>
  </ol>
</blockquote>
