본문 바로가기

⭐ Kubernetes & EKS/볼륨 스토리지 (Volume Storage)

nfs 네트워크 볼륨 설치 및 k8s와 nfs의 볼륨연결

# nfs 네트워크 볼륨 설치

(nfs : 네트워크 파일 시스템)

- work2에서 실행

apt-get update

apt install nfs-common nfs-kernel-server portmap

mkdir /home/nfs

chmod 777 /home/nfs

- 어떤 디렉토리를 누구에게 제공할 것인가 등 권한을 부여하는 파일 : exports

gedit /etc/exports

- 해당 ip에 대해서 (권한을 할당 하겠다.) 라는 내용임

- /home/nfs 는 이전에 공유할 폴더를 생성한 경로임

/home/nfs       10.0.2.15(rw,sync,no_subtree_check) 10.0.2.5(rw,sync,no_subtree_check) 10.0.2.6(rw,sync,no_subtree_check)

- 수정을 하고 저장한다.

# 서비스 재시작

service nfs-server restart

# 마운트 가능한 서버를 확인

showmount -e 127.0.0.1

결과 : /home/nfs 10.0.2.5,10.0.2.6,10.0.2.15

# 마운트 수행 및 테스트

mount -t nfs 10.0.2.5:/home/nfs /mnt

echo 'test' > /home/nfs/test.txt

cat /mnt/test.txt

- /mnt/test.txt 에서도 동일한 내용을 확인할 수 있다.

# 삭제 테스트

rm /mnt/test.txt

ls /home/nfs/test.txt

- 파일을 찾을수 없다고 나온다.

- 결국 폴더가 마운트 되어 있어서 추가 및 삭제가 동일하게 이루어 진다고 보면된다.

# k8s와 nfs 네트워크 볼륨 연결 실습

- 쿠버네티스 공식사이트 > 검색 > nfs > nfsexample 사이트 링크 클릭하여 이동 > nfs-pv.yaml > 하단 nfs: 내용 복사 > emptyDir 예제와 조합 > 하단에 emptyDir 삭제 후 복사한 nfs 내용 붙여넣기

apiVersion: v1
kind: Pod
metadata:
  name: nfs-httpd
spec:
  containers:
  - image: httpd
    name: web
    volumeMounts:
    - mountPath: /usr/local/apache2/htdocs
      name: nfs-volume
      readOnly: true
  volumes:
  - name:  nfs-volume
    nfs:
      server: 10.0.2.6
      path: /home/nfs

# 파일생성

- 마스터 노드로 이동

vim nfs-httpd.yaml

- worker2로 이동

cd home/nfs

echo nfs > index.html

cat index.html

- 마스터로 이동

kubectl create -f nfs-httpd.yaml

kubectl get pod -w

- 시간이 오려걸릴경우 descibe 옵션으로 트러블슈팅 해야한다.

kubectl describe pod nfs-httpd

- 하단에 오류 내용 표기됨

- 애플리케이션 업데이트 수행

sudo apt-get update

apt update

apt install nfs-common nfs-kernel-server portmap

- worker2에도 위에 apt install 명령 수행

# pod 서비스를 삭제 후 다시 실행

kubectl delete -f nfs-httpd.yaml

kubectl create -f nfs-httpd.yaml

# 포트포워딩 실행하기

sudo kubectl port-forward nfs-httpd 12345:80

웹페이지 열고 > 127.0.0.1:12345 접속 > nfs 라고 나오면 정상적으로 실행된 것임.

# port 삭제하기

ps -eaf | grep port-forward

kill -9 프로세스 id

kill -9 26378

- 노드간 네트워크 파일시스템 nfs 가 가능하도록 구성을 해봤습니다.