vm 에서 Kubernetes 를 테스트 하게 되면 Persistent Volume 사용시 nfs 등을 사용 할수 있습니다.
별도의 nfs-server 를 이용하여 kubernetes 에 nfs-client-provisioner 를 구성 합니다.k8s-master , k8s-node 에 nfs-common 패키지를 설치 합니다.
$ sudo apt install -y nfs-common
nfs 서버 설정
$ sudo apt install -y nfs-kernel-server
$ sudo mkdir -p /k8s/volume01
$ sudo chown -R nobody:nogroup /k8s
$ sudo chmod -R 777 /k8s/
$ sudo vi /etc/exports
$ sudo systemctl restart nfs-server
/k8s/volume01 *(rw,sync,no_root_squash)
k8s-master 에 helm 설치
kubespray 로 helm 을 설치 하였다면 스킵 합니다.
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
showmount 명령어로 nfs-server 에 공유 볼륨을 확인 합니다.
$ showmount -e 10.10.10.10
Export list for 10.10.10.10:
/k8s/volume01 *
nfs-subdir-external-provisioner 배포
$ helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
$ helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=10.10.10.10 \
--set nfs.path=/k8s/volume01 \
--set storageClass.defaultClass=true
StorageClass 를 확인 합니다.
$ kubectl get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
nfs-client (default) cluster.local/nfs-subdir-external-provisioner Delete Immediate true 8s
Comments