#accessModes攻略
GCP環境で、K・8・Sに追加でDISKを設定することがあったとします。
そのときにaccessModesというものを設定する必要があります。
設定できる値は以下です。
ReadWriteOnce…単一Node読み書き可
ReadOnlyMany…複数Node読み可
ReadWriteMany…複数Node読み書き可
判定が見た目通りではないので、注意が必要です。
設定はPod単位かと思いきや、Node単位なのです。
そのため、「ReadWriteOnce」といっても同一Nodeからであれば、複数のPodからアクセス可能です。
※Kubernetes v1.22 から単一Podからのアクセスを許可するReadWriteOncePodが追加されました。
参考:
https://kubernetes.io/docs/concepts/storage/persistent-volumes/
#2択
尖った性能の永続ディスク(Persistent Disk)からは「ReadWriteOnce」のみしか設定できません。
Many系を設定したい場合は、オールラウンダーな「Filestore」を使います。
Many系は複数のノードからの接続も可能にする万能設定です。
ノードをマルチゾーン設定した場合にも正しく動かす場合に要求されます。
設定自体は「Persistent Disk」も「Filestore」もあまり変わりません。
リュウとケンの関係と言って差し支えないでしょう。
apiVersion: v1
kind: PersistentVolume
metadata:
name: sample-pv
spec:
capacity:
storage: 100Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: log
gcePersistentDisk:
pdName: pd001
fsType: ext4
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sample-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: log
resources:
requests:
storage: 100Gi
apiVersion: v1
kind: PersistentVolume
metadata:
name: sample-pv
spec:
capacity:
storage: 1T
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
storageClassName: log
# GCPコンソールで設定された値を記載
nfs:
server: "xxx.xxx.xxx.xxx"
path: "/xxx"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sample-pvc
spec:
accessModes:
- ReadWriteMany
storageClassName: log
resources:
requests:
storage: 1T
ただし、コストがPersistent Diskと比べてかかります。
標準とプレミアムの2種類のモードがあり、安価な標準タイプでも1TBスタートですので、ご注意を。
現場からは以上です。