LinuCエヴァンジェリスト・Open Source Summit Japanボランティアリーダーの鯨井貴博@opensourcetechです。
はじめに
今回は、クラウド(Azure/GCP/AWS)上のkubernetesにおいて永続ボリューム(ストレージ)として何が使えるのか、調べてみました。
kubernetesにおけるストレージ利用
kubernetesでPodなどの永続的な(消えない)データ保続先を定義する場合、以下があります。
①Pod → PVC(Persistent Volume Claim、ボリューム使用要求) → PV(Persistent Volume、ボリューム領域)
②Pod → PVC → Storage Class → CSI(Container Storage Interface) Driver → 各ストレージ
しかし、クラウド環境においては①は利用しない方向に進んでいます。
※deprecatedやnot availableになっている。
https://kubernetes.io/docs/concepts/storage/persistent-volumes/
ではどうするかというと、②の方法を使います。
Azureの場合、Azure Blob・Azure Disk・Azure File、
GCPの場合、GCE Persistent Disk・Google Cloud Filestore・Google Cloud Storage FUSE・Google Cloud Storage、
AWSの場合、AWS Elastic Block Storage・AWS Elastic File System・AWS FSx for Lustreです。
https://kubernetes-csi.github.io/docs/drivers.html
Driverのリストにはその他に、AliCloud・Dell系ストレージ・IBM Cloud・NetAPP・Nutanix・Pure Storageなど多くのものが利用できるようになっています。
個人的には、ストレージを統合管理できるSODAが面白そうだなと思っているところ。
なお、各CSI Driverを使った時にSnapshot(スナップショット)・Expansion(領域拡張など)・Cloning(クローン)など利用できる or 利用できないという部分には注意が必要です。