🙌
NFSサーバをStorageClassとして利用する手順
概要
KuberntersClusterからNFSを使いたい。
また、PVを定義しNFSサーバを指定することもできるが、StorageClassを利用することで動的にプロビジョニングができるようになるので、これを使いたい。
NFS用のProvisioner
があるので、こちらを使うとさっくりと導入することができる。
手順
インストール
nfs.server
はNFSサーバのIPアドレス、nfs.path
はNFSサーバのexportfsに設定している共有ディレクトリを指定する
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=10.0.1.16 \
--set nfs.path=/home/nfsshare
テスト用マニフェスト
test_pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: test-claim
annotations:
nfs.io/storage-path: "test-path" # not required, depending on whether this annotation was shown in the storage class description
spec:
storageClassName: nfs-client
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Mi
Apply
kubectl apply -f test_pvc.yaml
確認
kubectl describe pvc test-claim
出力結果
Name: test-claim
Namespace: default
StorageClass: nfs-client
Status: Bound
Volume: pvc-f593a11d-0b82-4a0a-a26c-2051c85fa7a9
Labels: <none>
Annotations: nfs.io/storage-path: test-path
pv.kubernetes.io/bind-completed: yes
pv.kubernetes.io/bound-by-controller: yes
volume.beta.kubernetes.io/storage-provisioner: cluster.local/nfs-subdir-external-provisioner
volume.kubernetes.io/storage-provisioner: cluster.local/nfs-subdir-external-provisioner
Finalizers: [kubernetes.io/pvc-protection]
Capacity: 1Mi
Access Modes: RWX
VolumeMode: Filesystem
Used By: <none>
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal ExternalProvisioning 14s persistentvolume-controller Waiting for a volume to be created either by the external provisioner 'cluster.local/nfs-subdir-external-provisioner' or manually by the system administrator. If volume creation is delayed, please verify that the provisioner is running and correctly registered.
Normal Provisioning 14s cluster.local/nfs-subdir-external-provisioner_nfs-subdir-external-provisioner-5ffd5c9f69-h2l97_9693cd1a-8cac-4097-bb07-49606c3a33e2 External provisioner is provisioning volume for claim "default/test-claim"
Normal ProvisioningSucceeded 14s cluster.local/nfs-subdir-external-provisioner_nfs-subdir-external-provisioner-5ffd5c9f69-h2l97_9693cd1a-8cac-4097-bb07-49606c3a33e2 Successfully provisioned volume pvc-f593a11d-0b82-4a0a-a26c-2051c85fa7a9
参考
Discussion