🔖

Kubernetes(Docker for Mac)のローカル環境のデフォルトStorageClassについて

2022/01/29に公開

忘れないようにメモメモ。
Docker for MacでKubernetesを有効にすると、デフォルトのStorageClassとして、hostpathが割り当てられている。

$ kubectl get storageclass
NAME                 PROVISIONER          RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
hostpath (default)   docker.io/hostpath   Delete          Immediate           false                  18s

以下のStatefulSetのときのように、storageClassNameを明示しないとデフォルトのStorageClassが割り当てられる。

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: test
spec:
---省略---
  volumeClaimTemplates:
    - metadata:
        name: data
      spec:
	# storageClassName: "my-storage-class" -> ここを記載しないと、デフォルトのStorageClassが割り当てられる
        accessModes: ["ReadWriteOnce"]
        resources:
          requests:
            storage: 5Gi

デフォルトのStorageClassとして、何が割り当てられていたか。

そう、先ほども申した通り、hostpathが割り当てられている。
確認してみよう。

上記ファイルの内容をアプライすると、PersistentVolumeClaimが作られる。

$ kubectl get pvc 
NAME           STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
data-mysql-0   Bound    pvc-44216ba4-a510-4147-9763-a9130c08fe06   5Gi        RWO            hostpath       2m32s
data-mysql-1   Bound    pvc-0936520c-1917-45cc-8423-40b1324ef80b   5Gi        RWO            hostpath       82s
data-mysql-2   Bound    pvc-2ce4ad69-7808-4f45-877d-a51d4a2d102f   5Gi        RWO            hostpath       52s

そして、hostpathと紐づいたPersistentVolumeが動的にプロビジョニングされている。

$ kubectl get pv 
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                  STORAGECLASS   REASON   AGE
pvc-0936520c-1917-45cc-8423-40b1324ef80b   5Gi        RWO            Delete           Bound    default/data-mysql-1   hostpath                88s
pvc-2ce4ad69-7808-4f45-877d-a51d4a2d102f   5Gi        RWO            Delete           Bound    default/data-mysql-2   hostpath                58s
pvc-44216ba4-a510-4147-9763-a9130c08fe06   5Gi        RWO            Delete           Bound    default/data-mysql-0   hostpath                2m38s

Discussion