VPC環境で利用できます。
実行中のコンテナにファイルを新たに追加する場合、それらファイルはプロセスが終了するか、Kubernetes Liveness Probeのステータスチェックに失敗してコンテナが再起動する際にすべて削除されます。このとき、NASボリュームを使用して新たに追加されたファイルが、プロセスの終了またはコンテナの再起動の後にも維持されるように設定します。
Kubernetes NASボリュームコンテナをリリース時、PersistentVolumeClaim(PVC)を作成して追加できます。
NAVERクラウドプラットフォームの Ncloud Kubernetes Serviceは、ボリュームドライバとして Container Storage Interface(CSI)を提供します。このドライバは Kubernetesと連携して NASボリュームの作成、削除、リサイズなどの操作をサポートします。
サポートするバージョンと容量
サポートするバージョンおよび容量情報を説明します。
サポートするバージョン
NAVERクラウドプラットフォームで提供する NAS CSIバージョンと互換 Kubernetesバージョンは、次の通りです。
| Ncloud NAS CSI Driver\Kubernetes Version | 1.18 | 1.19 | 1.20 | 1.21 | 1.22 | 1.23+ |
|---|---|---|---|---|---|---|
| v1.0.x | サポート | サポート | サポート | サポート | サポート | サポート |
| v2.0.x | サポートしない | サポートしない | サポートしない | サポートしない | サポート | サポート |
| v2.1.x | サポートしない | サポートしない | サポートしない | サポートしない | サポート | サポート |
Kubernetesバージョンでサポートするストレージサービスは、次の通りです。
| Service\Kubernetes Version | 1.18+ |
|---|---|
| ボリューム作成 | サポート |
| ボリューム削除 | サポート |
| ボリューム拡張(リサイズ) | サポート |
| サーバにボリューム割り当て | サポート |
| サーバにボリューム解除 | サポート |
| スナップショット作成 | サポートしない |
| スナップショット削除 | サポートしない |
割り当て可能な容量
Kubernetes NASボリュームは CSIを通じて100GB単位で容量を割り当てられます。ボリュームの容量を別途定義しない場合、デフォルト値の500GBで NASボリュームを作成します。割り当て可能な最小容量と最大容量は、次の通りです。
- 最小: 500GB
- 最大: 10,000GB
NAS CSIドライバーインストール(既存の未インストールクラスタ用)
NAS CSIドライバは、Kubernetesをインストールする際にデフォルトでリリースします。この節は既存の未インストールクラスタで NAS CSIをインストールする方法について説明します。NAS CSIが既にインストールされている場合は、以下のタスクを実行しません。
NAS CSI Driverリリース
以下のファイルは最新の安定バージョンを指します。インストール中に問題が発生する場合、kubectl apply -fコマンドを再実行して漏れリソースが再反映できるようにします。
- 韓国リージョン
# kubernetes version >= 1.22
$ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/nas-csi/pub/kr/v2.1.1/nas-csi.yaml
# kubernetes version < 1.22
$ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/nas-csi/pub/kr/v1.0.2/nas-csi.yaml
- シンガポールリージョン
# kubernetes version >= 1.22
$ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/nas-csi/pub/sgn/v2.1.0/nas-csi.yaml
# kubernetes version < 1.22
$ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/nas-csi/pub/sgn/v1.0.2/nas-csi.yaml
- 日本リージョン
# kubernetes version >= 1.22
$ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/nas-csi/pub/jpn/v2.1.0/nas-csi.yaml
NAS CSIドライバの詳細
StorageClass
StorageClassは、各ストレージのポリシーとタイプを設定したオブジェクトです。NAVERクラウドプラットフォームは NASボリュームを使用する StorageClassを提供します。
NASボリュームの StorageClassオブジェクトを確認するには、nks-nas-csiという名前を持つオブジェクトを確認します。以下のように表示されます。
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: nks-nas-csi
mountOptions:
- hard
- nolock
- nfsvers=3
provisioner: nas.csi.ncloud.com
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
allowVolumeExpansion: true
volumeBindingMode: ボリュームバインディングと動的プロビジョニングが動作する時点を設定します。デフォルト値は Immediateです。
| モード | 説明 |
|---|---|
Immediate |
PVCが作成される時点に動作 |
WaitForFirstConsumer |
Podが作成される時点に動作 |
reclaimPolicy: 使用が終わった PVCを削除する際に、使用中であった PersistentVolumeを再確保または削除するようにポリシーを設定します。デフォルト値は Deleteです。
| ポリシー | 説明 |
|---|---|
Retain |
PVCを削除する際に使用中であった PVは再使用できるステータスに変更され、NASボリューム内部のデータを維持 |
Delete |
PVCを削除する際に使用中であった PVを一緒に削除し、NASボリュームを返却 |
allowVolumeExpansion: 値を trueに設定して PersistentVolumeClaimを拡張できます。
Retainポリシーを通じて再確保した NASボリュームは、NAVERクラウドプラットフォームコンソールや APIを通じて返却できます。
Default Storage Class変更
作成した StorageClassオブジェクトのデフォルト Storage Classの内容を変更するには、Changing the default StorageClassをご参照ください。
CSI Controller
CSI Controllerとは、ボリュームの作成、削除、割り当て、割り当て解除、スナップショットなどの各種制御と管理を担当するインターフェースです。
NAS CSI Controllerを確認するには、以下のコマンドを通じて名前空間 kube-system内の関連 Podを確認します。
$ kubectl --kubeconfig $KUBE_CONFIG get pods -n kube-system -l app=nks-nas-csi-controller
CSI Node
CSIノードは、Kubernetesのワーカーノードごとに1つずつ動作するノードであり、ボリュームのフォーマット、マウント、アンマウントなどの動作を担当します。
NAS CSI Nodeを確認するには、以下のコマンドを通じて名前空間 kube-system内の関連 Podを確認します。
$ kubectl --kubeconfig $KUBE_CONFIG get pods -n kube-system -l app=nks-nas-csi-node
NAS-CSIドライバーを使用する
NAS-CSIドライバー使用に関するユースケースは、NASボリューム CSI のユースケースをご参照ください。