はじめに
- Google Container Engine で永続ボリュームである PsersistentVolume 及び、永続ボリュームのプロビジョニングを行う PersistentVolumeClaims 及び、状態を持った Pod のプロビジョニングを行う StatefulSet の volumeClaimTemplates オプションでそれぞれ SSD を使用してみる。
StorageClass の定義
- SSD 用の StorageClass を定義する
kind: StorageClass
apiVersion: storage.k8s.io/v1beta1
metadata:
name: ssd
annotations:
storageclass.beta.kubernetes.io/is-default-class: "false"
labels:
kubernetes.io/cluster-service: "true"
provisioner: kubernetes.io/gce-pd
parameters:
type: pd-ssd
PsersistentVolume で SSD を使う
-
storageClassName
に先ほど定義したssd
を指定すると SSD を使えるようになる
apiVersion: v1
kind: PersistentVolume
metadata:
name: mypv
spec:
capacity:
storage: 5Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Recycle
storageClassName: ssd
PersistentVolumeClaims で SSD を使う
- こちらも同様に
storageClassName
に先ほど定義したssd
を指定すると SSD を使えるようになる
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: mypvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 8Gi
storageClassName: ssd
selector:
matchLabels:
release: "stable"
StatefulSet で SSD を使う
- StatefulSet の volumeClaimTemplates 定義で SSD を使う場合はアノテーションで StorageClass を指定する
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
name: mystatefulset
spec:
...略...
volumeClaimTemplates:
- metadata:
name: data
annotations:
volume.beta.kubernetes.io/storage-class: "ssd"
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 100Gi
SSD を使えているか確認する
- 下記のコマンドを実行し結果が
0
なら SSD を使えており、1
なら HDD を使っている - 以下はマウントしたディスクが
/dev/sda
の場合
cat /sys/block/sda/queue/rotational