VPC環境で利用できます。
NFS Client Provisionerは、PersistentVolumeClaimを用いて既に構成されている NFSサーバに、Persistent Volumeを自動で作成する Provisionerです。
Helm CLIを用いて NFS Client Provisionerをインストールし、NAVERクラウドプラットフォームの NASサービスに作成したボリュームと連携します。使用する前に以下をご参照ください。
- このガイドは Helm v3を基準に作成されました。
- Helmを使用するには、Kubectlのインストールと kubeconfigの設定を済ませておく必要があります。
- NFS Client Provisionerを用いて NASにマウントされたワーカーノードを停止する場合、停止失敗状態になります。これは OSのバグであり、マウントされた NASに対して I/Oが存在する場合に発生します。このような問題を防ぐには、ワーカーノードから Podを退避を参照して Podを退避してからノードを停止することをお勧めします。
- Kubernetes Service(VPC)は NASボリューム CSIを通じて NFSベースのストレージソリューションを使用できます。NFS Client Provisionerのインストールは必須項目ではありませんが、ユーザーの便宜のために NFS Client Provisionerのガイドを提供しています。
NFS Client Provisionerのインストール
Helmを用いて NFS Client Provisionerをインストールする方法は、次の通りです。
-
NAVERクラウドプラットフォームの NASサービスで NFSプロトコルでボリュームを作成します。
-
NASボリュームが作成されたら、マウント情報の IPアドレスと Path情報を確認します。
-
以下のリンクを参照し、使用中の OSに適した方法で Helmをインストールします。
-
以下のコマンドを実行して公式 Helm chart repositoryを CLIに追加します。
$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/ -
以下のコマンドを実行して NFS Client Provisionerをインストールします。
$ helm install --kubeconfig=$KUBE_CONFIG nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \ --set nfs.server=__NAS_IP__ \ --set nfs.path=__NAS_PATH__- ユースケース
- NAS_IP : 169.254.0.13
- NAS_PATH : /n000693_provisioner
- ユースケース
NFS Client Provisioner の設定
StorageClassを確認する
NFS Client Provisionerのインストールが完了した後に StorageClassを確認するには、以下のコマンドを実行してください。
kubectl --kubeconfig=$KUBE_CONFIG get storageclass
実行結果は次の通りです。
$ kubectl --kubeconfig=$KUBE_CONFIG get storageclass
NAME PROVISIONER AGE
nfs-client cluster.local/nfs-subdir-external-provisioner 5m49s
nks-block-storage (default) blk.csi.ncloud.com 3h39m
StorageClassを変更する
クラスタに基本的にブロックストレージ CSIがインストールされているので、StorageClassの照会時に nks-block-storageに defaultが表示されます。
PersistentVolumeClaimでボリュームを作成する時、その PersistentVolumeが作成される StorageClassを nfs-client-provisionerに変更するには、default設定を nfs-clientに変更します。
変更する方法に関する詳細は、以下のリンクをご参照ください。
ボリューム作成のユースケース
以下は、Jenkinsをインストールして作成されたボリュームを確認するユースケースです。
- 以下のコマンドを実行して Jenkinsをクラスタにインストールします。
$ helm --kubeconfig=$KUBE_CONFIG install ci stable/jenkins - インストールを完了した後、以下のコマンドを実行して
PersistentVolumeClaimとPersistentVolumeを確認します。$ kubectl --kubeconfig=$KUBE_CONFIG get pvc $ kubectl --kubeconfig=$KUBE_CONFIG get pv