目錄
- 一、背景
- 二、安裝local-path-provisioner
- 1、地址
- 2、更改 local-path-provisioner 使用的預設儲存路徑
- 3、建立檔案並提權
- 4、建立 NameSpace
- 5、應用 local-path-storage
- 6、驗證相關資源狀態
- 三、設定 local-path 為default SC
- 四、使用 StorageClass 動態製備 PV
- 1、建立PVC
- 2、建立 Pod
- 3、檢視 PV
- 五、解除安裝 local-path
一、背景
更改 PV 的回收策略
-
示例的前提是動態配置PV
-
在 Kubeadm 安裝的 Kubernetes 叢集環境中,動態供應 PersistentVolumes 需要先安裝 Container Storage Interface (CSI) 驅動程式。
二、安裝local-path-provisioner
1、地址
GitHub地址
git clone git@github.com:rancher/local-path-provisioner.git
2、更改 local-path-provisioner 使用的預設儲存路徑
sed -i 's|/opt/local-path-provisioner|/mnt/data/local-path-provisioner|' /root/local-path-provisioner/deploy/local-path-storage.yaml
3、建立檔案並提權
mkdir -p /mnt/data/local-path-provisioner
chmod 777 /mnt/data/local-path-provisioner
4、建立 NameSpace
kubectl create ns local-path-storage
5、應用 local-path-storage
kubectl apply -f local-path-storage.yaml
6、驗證相關資源狀態
kubectl get pods -n local-path-storage
kubectl get sc
三、設定 local-path 為default SC
kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.beta.kubernetes.io/is-default-class":"true"}}}'
四、使用 StorageClass 動態製備 PV
1、建立PVC
更改 PV 的回收策略 示例中是三個,這裡也建立三個,對應修改資源清單裡的
metadata.name
cat << EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: dynamic-pvc1
spec:
storageClassName: local-path
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
EOF
2、建立 Pod
對應修改
metadata.name
和spec.volumes.persistentVolumeClaim.claimName
同樣的也是建立三個 Pod
cat << EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
name: task-pv-pod1
spec:
volumes:
- name: task-pv-storage
persistentVolumeClaim:
claimName: dynamic-pvc1
containers:
- name: task-pv-container
image: nginx:latest
ports:
- containerPort: 80
name: "http-server"
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: task-pv-storage
EOF
3、檢視 PV
可以看到 pv 已經被正常動態建立起來了
kubectl get pv
五、解除安裝 local-path
kubectl delete -f local-path-storage.yaml