今天簡單演示如何在Kubernetes cluster利用local-path provider建構出storage class來提供應用程式進行資料的存放。
每個節點的/opt/local-path-provisioner
路徑用來存放資料,預設安裝在local-path-storage
namespace。
建議測試使用,實務上建議採用CSI連接到外部儲存。
*--------------------------------------------
* S1-1. Deploy
*--------------------------------------------
# wget https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.24/deploy/local-path-storage.yaml
# kubectl create -f local-path-storage.yaml
*--------------------------------------------
* S1-2. verify
*--------------------------------------------
# kubectl get all -n local-path-storage
*--------------------------------------------
* S2-1. create app
*--------------------------------------------
# wget https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pvc/pvc.yaml
# wget https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pod/pod.yaml
# kubectl create -f pvc.yaml
# kubectl create -f pod.yaml
# kubectl get pvc
# kubectl get pod
*--------------------------------------------
* S2-2. Write data
*--------------------------------------------
# kubectl exec volume-test -- sh -c "echo local-path-test > /data/test"
# kubectl delete -f pod.yaml
# kubectl create -f pod.yaml (recreate)
# kubectl exec volume-test -- sh -c "cat /data/test"
local-path-test (依然存在)
以上就是利用本地硬碟空間來儲存資料的方式,一般來說除非硬體上有特殊的不同,不然通常不會使用這種方式儲存資料,最差也會使用先前說過的NFS來進行外部資料儲存。