본문 바로가기
IT/kuberntes

PV 고민 해결 - local-path-provisioner 설정

by 가능성1g 2024. 5. 23.
반응형

k3s 는 기본으로 로컬 디스크를 pv 로 쓰게 되어 있지만, k8s 는 그렇지 않다.

기본적으로 디스크를 쓰게 만들기 위해서는 local-path 를 StorageClass 에 등록해줘야 한다.

 

1. 설치

kubectl apply -f https://raw.githubusercontent.com/rancher/local-path-provisioner/v0.0.26/deploy/local-path-storage.yaml

 

2. 확인

kubectl -n local-path-storage get pod
## 오류발생시 로그확인
kubectl -n local-path-storage logs -f -l app=local-path-provisioner

 

실제 물리디스크에 생성되는 위치는 /opt/local-path-provisioner  입니다. 워커노드에 각각 생성이 됩니다.

 

3. 테스트

kubectl create -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pvc/pvc.yaml
kubectl create -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pod/pod.yaml

 

4. 테스트-확인

kubectl get pvc
kubectl get pod
# 테스트용 쓰기
kubectl exec volume-test -- sh -c "echo local-path-test > /data/test"
# 삭제후 되살리기
kubectl delete -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pod/pod.yaml
kubectl create -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pod/pod.yaml
# 데이터 남아있는지 확인
kubectl exec volume-test -- sh -c "cat /data/test"

 

5. 테스트 흔적 삭제

kubectl delete -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pod/pod.yaml
kubectl delete -f https://raw.githubusercontent.com/rancher/local-path-provisioner/master/examples/pvc/pvc.yaml

 

** 참고사항

accessMode 는 ReadWriteOnce 만 가능한것으로 보임!

 

** 관련 링크

rancher/local-path-provisioner: Dynamically provisioning persistent local storage with Kubernetes (github.com)

 

GitHub - rancher/local-path-provisioner: Dynamically provisioning persistent local storage with Kubernetes

Dynamically provisioning persistent local storage with Kubernetes - rancher/local-path-provisioner

github.com

 

반응형