LoginSignup
0
0

More than 1 year has passed since last update.

ReadWriteOnceとReadWriteMany

Last updated at Posted at 2021-11-05

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」もあまり変わりません。
リュウとケンの関係と言って差し支えないでしょう。

PersistentDisk.yaml
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
Filestore.yaml
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スタートですので、ご注意を。

現場からは以上です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0