nfs-client-provisioner 利用NFS動態提供Kubernetes后端存儲卷
一、選一個節點安裝nfsserver 服務
yum install nfs-common nfs-utils -y
配置/etc/exports
二、拉去數據nfs-client-provisioner
git clone https://github.com.cnpmjs.org/kubernetes-incubator/external-storage.git --depth 1
三、進入目錄
/root/external-storage/nfs-client/deploy
四、創建名稱空間
kubectl create ns storageclass (默認的名稱空間為'default')
因為如果是默認的話可能會被別人一不小心刪除掉,再者比較正式
修改deploy 下文件的名稱空間如果沒有則添加
metadata:
namespace : storageclass
五、防止程序拉去失敗鏡像我們手動拉去所需鏡像
打開deployment.yaml 文件 image參數 所需鏡像
docker pull quay.io/external_storage/nfs-client-provisioner:latest (注意:此操作是在nfsserver 上執行 因為)
六、修改deployment.yaml 文件
env:
- name: PROVISIONER_NAME
value: lvan #自己的名字
- name: NFS_SERVER
value: 192.168.10.174 # nfsserver 的IP
- name: NFS_PATH
value: /volumes #掛載給容器內部的路徑
volumes:
- name: nfs-client-root
nfs:
server: 192.168.10.174 #nfsserver 的IP
path: /volumes # 共享的路徑
七、修改class.yaml 文件
reclaimPolicy: Retain 為了防止不小心刪除了pvc 會導致PV一起被刪除掉
未修改為
八、各文件解釋
class.yaml 動態生成pv 標識 kind: StorageClass
test-claim.yaml 創建pvc 標識 kind: PersistentVolumeClaim
accessModes: 訪問模式
- ReadWriteMany
resources:
requests:
storage: 1Mi 創建的pvc大小
deployment.yaml 掛載配置 標識kind: Deployment
rbac.yaml 是否開啟了rbac 配置
九、執行順序
kubectl apply -f class.yam
kubectl apply -f test-claim.yaml
kubectl apply -f deployment.yam (如果他先啟動有可能會報錯啟動不了)
基本操作命令
查詢pvc
kubectl get pvc/pv
刪除
kubectl delete pvc/pv