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
Last modified: 2022-11-02

Author

Comments

Write a Reply or Comment