
이번에는 네트워크로 연결할 수 있는 공유 파일 시스템같은 역할인 nfs 볼륨에 대해 적어보려 한다.
다음 pv와 pvc를 실습하기 위한 사전 준비과정으로서, nfs 볼륨은 필수로 생성해야 한다.
nfs 볼륨을 사용하면 기존 NFS(네트워크 파일 시스템) 볼륨을 파드에 마운트할 수 있다.
apiVersion: v1
kind: Pod
metadata:
name: nfs-demo-pod
spec:
containers:
- name: app
image: alpine
command: ["sh", "-c", "sleep 3600"]
volumeMounts:
- name: nfs-vol
mountPath: /shared-data
volumes:
- name: nfs-vol
nfs:
server: <NFS_SERVER_IP>
path: /exported/path
mkdir -p ~/nfs_shared/pv-data
chmod -R 777 ~/nfs_shared
이 명령어는
mkdir -p ~/nfs_shared/pv-data
: 홈 디렉토리(~) 아래에 nfs_shared/pv-data 폴더를 생성한다.
(-p 옵션은 상위 폴더가 없을 경우 자동으로 함께 만든다는 뜻이다.)
chmod -R 777 ~/nfs_shared
:해당 폴더와 내부 모든 하위 파일·폴더의 권한을 읽기/쓰기/실행 가능(777) 으로 변경한다.
NFS 서버에서 클라이언트(쿠버네티스)가 접근할 수 있도록 모든 사용자에게 권한을 부여하는 과정이다.
이제 /Users/goorm/nfs_shared/pv-data 경로가
쿠버네티스가 마운트해서 쓸 수 있는 공유 디렉토리로 준비된 상태이다.
이렇게 권한이 모두 열려있는 것을 확인할 수 있다.
/Users/사용자이름/nfs_shared -alldirs -mapall=0 -network 192.168.0.0 -mask 255.255.255.0
이 명령어는
ex)
/Users/lee/nfs_shared -alldirs -mapall=0 -network 192.168.0.0 -mask 255.255.255.0
실제 경로와 ip 주소확인 명령어
- echo $HOME -> 경로가 나오는데 여기에서 /nfs-shared 를 붙인 것이 공유 폴더의 전체 경로이다.
- ipconfig getifaddr en0 -> 하면 ip 주소가 나온다.
sudo vi /etc/exports
위 명령어를 입력한다.
그리고
/Users/<사용자이름>/nfs_shared -alldirs -mapall=0 -network <사용자 ip> -mask 255.255.255.0
이를 추가하고 !wq하여 저장한다.
그리고나서 NFS 서버를 재시작해준다.
sudo nfsd enable
sudo nfsd restart
위 명령어를 실행하여 재시작할 수 있다.
그런 다음 다음 명령어를 활용해 설정을 확인해준다.
showmount -e
정상이라면 다음과 같이 출력된다.
Exports list on localhost:
/Users/<사용자이름>/nfs_shared <사용자 IP>
sudo nfsd enable
sudo nfsd restart
후,
sudo nfsd status
명령어를 실행한다.

위처럼 "NFS server is running"이라고 뜨면 성공이다.
다음 포스팅에서는, 이렇게 설정한 NFS 서버를 기반으로
PV(Persistent Volume) 과 PVC(Persistent Volume Claim) 를 생성하여
실제 파드에 NFS 스토리지를 연결하는 과정을 실습한다.
참고자료:
[쿠버네티스 공식 홈페이지 - Volumes]
https://kubernetes.io/ko/docs/concepts/storage/volumes/