NFS Client Provisioner の設定

Prev Next

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をインストールする方法は、次の通りです。

  1. NAVERクラウドプラットフォームの NASサービスで NFSプロトコルでボリュームを作成します。

  2. NASボリュームが作成されたら、マウント情報の IPアドレスと Path情報を確認します。

  3. 以下のリンクを参照し、使用中の OSに適した方法で Helmをインストールします。

  4. 以下のコマンドを実行して公式 Helm chart repositoryを CLIに追加します。

    $ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
    
  5. 以下のコマンドを実行して 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をインストールして作成されたボリュームを確認するユースケースです。

  1. 以下のコマンドを実行して Jenkinsをクラスタにインストールします。
    $ helm --kubeconfig=$KUBE_CONFIG install ci stable/jenkins
    
  2. インストールを完了した後、以下のコマンドを実行して PersistentVolumeClaimPersistentVolumeを確認します。
    $ kubectl --kubeconfig=$KUBE_CONFIG get pvc
    
    $ kubectl --kubeconfig=$KUBE_CONFIG get pv