티스토리 뷰

클러스터 내 Pod 끼리 디스크를 공유야 하는 경우 사용되는 Persistent Volume 유형 중 NFS를 구성하는 방법에 대해서 살펴보자.

1. NFS 서버 설치

NFS 구축을 위해서는 먼저 서버를 설치해야 한다. 보통 별도 서버에 구축하는 것이 보편적이지만 편의상 클러스터 내 노드에 설치해 본다. 참고로 별도 서버에 구축하는 경우도 아래의 방법과 같다.

먼저 클러스터 노드와 각 노드의 아이피가 아래와 같다고 가정하고 진행한다. 별도의 서버에 진행하는 경우 해당 서버의 IP와 설치하는 클러스터 노드의 각 IP 를 참고해서 해당 아이피를 적용해 아래의 순서대로 진행하면 된다.

  • master1 : 192.168.72.101
  • worker1 : 192.168.72.102
  • worker2 : 192.168.72.103
  1. 서버를 설치할 노드에서 root 계정으로 접속한다. (여기서는 master1 노드에 설치하기로 한다.)
user@master1: ~$ sudo -i
  1. NFS 서버를 위한 프로그램을 설치한다.
root@master1: ~# apt update && apt install nfs-common nfs-kernel-server portmap -y
  1. 공유 폴더를 생성하고 폴더 권한을 부여한다
root@master1: ~# mkdir /home/share/nfs -p

root@master1: ~# chmod 777 /home/share/nfs/
  1. exports 파일을 열고 공유 폴더의 허용 host 및 권한을 설정한다.
root@master1: ~# vi /etc/exports


# 이하 파일 내용...
...  
... 
# 파일의 제일 하단에 아래 내용을 추가한다.
/home/share/nfs 192.168.72.101(rw,sync,no_subtree_check,no_root_squash) 192.168.72.102(rw,sync,no_subtree_check,no_root_squash) 192.168.72.103(rw,sync,no_subtree_check,no_root_squash)

...
# 저장
:wq
  1. nfs-server 를 재가동하고 nfs-server 상태를 확인한다.
root@master1: ~# service nfs-server restart

root@master1: ~# systemctl status nfs-server.service
● nfs-server.service - NFS server and services
     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
    Drop-In: /run/systemd/generator/nfs-server.service.d
             └─order-with-mounts.conf
     Active: active (exited) since Thu 2022-06-02 02:08:20 KST; 10h ago
    Process: 660 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
    Process: 664 ExecStart=/usr/sbin/rpc.nfsd (code=exited, status=0/SUCCESS)
   Main PID: 664 (code=exited, status=0/SUCCESS)
        CPU: 28ms
  1. mount 목록을 확인하여 정상 반영되었는지 체크한다.
root@master1: ~# showmount -e localhost
Export list for localhost:
/home/share/nfs 192.168.72.101,192.168.72.102,192.168.72.103
  1. 공유 폴더를 /mnt 로 마운트 시키고 정상적으로 마운트 되었는지 테스트한다.
root@master1: ~# mount -t nfs 192.168.72.102:/home/share/nfs /mnt

root@master1: ~# echo test >> /home/share/nfs/test.txt

root@master1: ~# cat /mnt/test.txt
test

root@master1: ~# rm /mnt/test.txt
  1. worker1, worker2 각 노드의 root 계정으로 접속한다.
user@worker1: ~$ sudo -i
  1. worker1, worker2 각 노드에 NFS 관련 패키지 프로그램을 설치한다.
root@worker1: ~# apt update && apt install -y nfs-common nfs-kernel-server portmap
  1. worker1, worker2 각 노드에서 mount 목록을 확인하여 정상 반영되었는지 확인한다.
root@worker1: ~# showmount -e 192.168.72.101
Export list for 192.168.72.101:
/home/share/nfs 192.168.72.101,192.168.72.102,192.168.72.103
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크