注意事項
この記事は、Notion AIに対して
- 問題と解決策の概要
- 例示用のコード
を渡して生成した実験的な記事になります。
はじめに
この記事では、KubernetesでのNFSクライアントの設定方法について説明します。
NFSサーバのセットアップ
まず、NFSサーバをセットアップする必要があります。以下の手順を実行してください。
- NFSサーバにしたいマシン上で、
nfs-kernel-server
パッケージをインストールします。 - NFS用のディレクトリを作成します。例えば、
/mnt/share/nfs
とします。 NFSサーバの設定を行います。例えば、IPアドレス
192.168.0.0/24
からの読み書きを許可する場合、以下の設定を行います。echo "/mnt/share/nfs 192.168.0.0/24(rw,async,crossmnt,no_root_squash,no_subtree_check)" | sudo tee -a /etc/exports
NFSサーバを起動します。例えば、以下のコマンドを実行します。
sudo systemctl enable --now nfs-server
NFSクライアントのセットアップ
各ノードにNFSに接続するためのパッケージをインストールする必要があります。以下の手順を実行してください。
sudo apt install nfs-common
nfs-subdir-external-provisionerのデプロイ
nfs-subdir-external-provisionerを使用して、NFSクライアントをデプロイすることができます。
おうちクラスタでは、Argo CDを使っているのでApplicationを定義します。
apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: nfs-subdir-external-provisioner finalizers: - resources-finalizer.argocd.argoproj.io spec: project: default source: chart: nfs-subdir-external-provisioner repoURL: <https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/> targetRevision: 4.0.18 helm: releaseName: nfs-subdir-external-provisioner parameters: - name: nfs.server value: control-plane.local # NFSサーバのドメイン/IPアドレス - name: nfs.path value: /mnt/share/nfs # NFSサーバのディレクトリパス destination: server: "<https://kubernetes.default.svc>" namespace: default syncPolicy: syncOptions: - CreateNamespace=true automated: prune: true selfHeal: true
これで、nfs-client
という名前のStorage Classが定義されます。
かなり簡単ですね。
WordPressでのNFSクライアントの設定
最後に、WordPressでNFSクライアントを使用する方法を説明します。
今回は例として、BitnamiのWordPressのHelm Chartで使用するStorage Classを設定します。
例えば、以下のようにvalues.yamlを設定します。
global: storageClass: nfs-client # nfs-subdir-external-provisionerで作成されたStorage Class
NFSサーバにWordPressのデータが展開されるようになります。
おわりに
この記事では、KubernetesでのNFSクライアントの設定方法について説明しました。
NFSクライアントを使用することで、複数のPodで同じデータを共有することができるようになります。
参考
こちらのブログを参考に作業をしていました。