(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Kubernetes】定義済のstorageclassがあるにもかかわらずnot foundとなるエラー

スポンサーリンク

事象

事前にPVを用意しているにもかかわらず

$ kubectl get pv
NAME       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                   STORAGECLASS   REASON   AGE
test-pv   1Gi        RWO            Retain           Available           slow                    Xm

そのPVに紐づけようとしたPVCがPendingになる。

$ kubectl get pvc
NAME              STATUS    VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-pvc   Pending                                      slow           XX

詳細を確認するとstorageclass.storage.k8s.io "slow" not foundというエラーになっている。

$ kubectl describe pvc test-pvc
...
Events:
  Type     Reason              Age               From                         Message
  ----     ------              ----              ----                         -------
  Warning  ProvisioningFailed  7s (x5 over 54s)  persistentvolume-controller  storageclass.storage.k8s.io "slow" not found
環境情報
  • kubectl v1.18

原因

PVC側でPVの容量以上を要求している。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
  name: test-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi
  storageClassName: slow

上の例は3Gi。これをtest-pvに合わせて1Giとしてdelete&applyを行うと正常にバインドされている。

$ kubectl get pvc
NAME              STATUS    VOLUME     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-pvc   Bound     test-pv   1Gi        RWO            slow           Xs
$ kubectl get pv 
NAME       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                   STORAGECLASS   REASON   AGE
test-pv   1Gi        RWO            Retain           Bound    test-pvc   slow                    Xm

以下、補足です。

補足

以下の記事は同じくストレージ周りのエラーでしたが

この事象はPVCとPVの紐づけに失敗しているエラーです。

PV自体は正常に起動しておりストレージクラスも定義しているので

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:..
  name: test-pv
...
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi
  hostPath:
    path: /data/pv
    type: ""
  persistentVolumeReclaimPolicy: Retain
  storageClassName: slow
  volumeMode: Filesystem
status:
  phase: Available

PVCとバインドするはずがエラーとなりました。

storageclass not foundというメッセージはありますが、実際はstarage class以外の箇所で不整合が起きていることがあるのその点をシェアしておきます。

以上、ご参考になれば幸いです。