NFS on Kubernetes
NFS 在 Kubernetes 上的應用筆記
這篇文章將探討如何在 Kubernetes 環境中使用 NFS (Network File System)。文章將提供一個基本的指南。
環境設定
項目 | 內容 |
---|---|
NFS Server | 10.250.75.111 |
NFS Path | /mnt/nfs_shares |
部署 NFS Storage Class
以下步驟將建立 Custom Provisioner,並串接 NFS Server。
- 建立 Provisioner 的 Service Account
請參考 here
建立名為 nfs-client-provisioner
的 Service Account
kubectl apply -f account.yaml
- 建立 Provisioner Deployment
請參考 here
kubernetes-sigs/nfs-subdir-external-provisioner: https://github.com/kubernetes-sigs/nfs-subdir-external-provisioner
為了避免出錯,
strategy.type
設定為Recreate
,而replicas
設為1
使用 kubernetes-sigs/nfs-subdir-external-provisioner
作為 provisioner,請注意以下環境變數設定:
- name: PROVISIONER_NAME # storage class 名稱
value: k8s-sigs.io/nfs-subdir-external-provisioner
- name: NFS_SERVER # nfs server 位置
value: 10.250.75.111
- name: NFS_PATH # nfs directory 路徑
value: /mnt/nfs_shares
使用 kubectl
部署 nfs-client-provisioner
:
kubectl apply -f provisioner.yaml
- 部署 Storage Class
請參考 here
使用 kubectl
部署 cns-nfs-client
:
注意
PROVISIONER_NAME
需與provisioner
名稱相同
kubectl apply -f storage-class.yaml
- 部署 PVC
請參考 here
使用 kubectl
部署 cns-nfs-pvc
:
kubectl apply -f pvc.yaml
你可以看到 PV 馬上被建立:
- 部署 Pod 進行測試
請參考 here
使用 kubectl
部署 nfs-testing
:
kubectl apply -f pod.yaml
你可以看到 pod 成功 Running
: