서론

 

이전 포스팅을 통해 VirtualBox에서 쿠버네티스 클러스터를 구축하는 방법을 살펴봤습니다. 이번 포스팅에서는 클러스터내 Pod 끼리 디스크를 공유해야하는 경우 사용되는 Persistent Volume 유형 중 NFS를 구성하는 방법에 대해서 살펴보겠습니다.

 

 

쿠버네티스 Persistent Volume 지원 항목

  • GCEPersistentDisk
  • AWSElasticBlockStore
  • AzureFile
  • AzureDisk
  • CSI
  • FC (파이버 채널)
  • FlexVolume
  • Flocker
  • NFS
  • iSCSI
  • RBD (Ceph Block Device)
  • CephFS
  • Cinder (OpenStack 블록 스토리지)
  • Glusterfs
  • VsphereVolume
  • Quobyte Volumes
  • HostPath (단일 노드 테스트 전용 – 로컬 스토리지는 어떤 방식으로도 지원되지 않으며 다중-노드 클러스터에서 작동하지 않음)
  • Portworx Volumes
  • ScaleIO Volumes
  • StorageOS

 


1. NFS 서버 설치

 

NFS 구축을 위해서는 서버를 먼저 설치해야합니다. 보통 별도 서버를 띄운다음에 구축하는 것이 보편적이지만 편의상 Work1 노드에 NFS 서버를 구축하겠습니다.

 

1.  Work1 노드에서 root 계정으로 접속합니다.

 

 

 

 

2.  update를 수행합니다.

 

 

 

 

3.  NFS 서버를 위한 패키지 프로그램을 설치합니다.

 

 

 

 

4.  공유 폴더를 새로 만듭니다. (mkdir /home/share/nfs -p)

 

 

 

 

5. 폴더 권한을 부여합니다. (chmod 777 /home/share/nfs)

 

 

 

 

6. exports 파일을 엽니다. (vi /etc/exports)

 

 

 

 

7. 공유폴더의 허용 host 및 권한을 설정합니다.

( /home/share/nfs       192.168.72.101(rw,sync,no_subtree_check) 192.168.72.102(rw,sync,no_subtree_check) 192.168.72.103(rw,sync,no_subtree_check) )

 

 

 

 

8. nfs-server를 재기동합니다.(service nfs-server restart)

 

 

 

 

9. nfs-server 상태를 확인합니다.(systemctl status nfs-server.service)

 

 

 

 

10. mount 목록을 확인하여 정상 반영되었는지 체크합니다. (showmount -e 127.0.0.1)

 

 

 

 

11.  공유 폴더를 /mnt로 마운트 시킵니다. (mount -t nfs 192.168.72.102:/home/share/nfs /mnt)

 

 

 

 

12. 정상적으로 마운트되었는지 확인하기 위해 공유 폴더에 테스트 파일을 만듭니다.

(echo test >> /home/share/nfs/test.txt)

 

 

 

 

13.  마운트 위치에있는 파일을 읽어 정상 동작 여부를 확인합니다. (cat /mnt/test.txt)

 

 

 

 

14. 임시 파일을 삭제합니다. (rm /mnt/test.txt)

 

 

 

 

15. Master 노드의 root 계정으로 접속합니다.

 

 

 

 

16. update를 수행합니다. (apt update)

 

 

 

17. NFS 관련 패키지 프로그램을 설치합니다.(apt install nfs-common nfs-kernel-server portmap)

 

 

 

 

18. Work2 노드에서 root 계정으로 접속합니다.

 

 

 

 

19. update를 수행합니다.

 

 

 

 

20. NFS 관련 패키지 프로그램을 설치합니다.(apt install nfs-common nfs-kernel-server portmap)

 

 

 

 


 

2. Persistent Volume 테스트

 

쿠버네티스 공식 홈페이지에 있는 예제를 활용하여 NFS를 활용한 공유디스크 설정 테스트를 진행합니다.

 

 

1. PersistentVolume 테스트를 위한 yaml 파일을 생성합니다.

 

 

 

2.  아래 내용을 복사 & 붙여넣기 합니다.

 

apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv
spec:
  capacity:
    storage: 10Mi
  volumeMode: Filesystem
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  nfs:
    path: /home/share/nfs
    server: 192.168.72.102

 

3. PersistentVolume을 생성합니다. (kubectl create -f pv.yaml)

 

 

 

 

4. PersistentVolume 상태를 확인합니다.

 

 

 

 

위와같이 Status가 Available이면 정상입니다.

 

5. 초기화를 위해 PersistentVolume을 삭제합니다. (kubectl delete -f pv.yaml)

 

 

 


마치며

 

Stateful 애플리케이션을 사용하기 위해서는 Volume 설정이 필요합니다. NFS는 Persistent Volume을 지원하는 한 종류로서 공유 디스크 할당이 가능합니다.

 

다음 포스팅에서는 LoadBalancer를 위한 MetalLB 설치과정을 다루겠습니다.

서론

 

쿠버네티스를 처음 공부할 때 난해한 부분이 클러스터 설치라고 생각합니다. 물론 GCP, AWS와 같은 클라우드에서 제공하는 쿠버네티스 클러스터를 활용하거나 Katakoda와 같은 웹사이트를 통해 접할 수도 있지만, 직접 VM으로 클러스터를 구축하는 경험도 중요하다고 생각합니다.

 

향후 몇개의 포스팅을 통해 VirtualBox를 통해 3개(1 Master, 2 Worker)의 K8S 클러스터를 구축방법을 다루어보고자 합니다. 쿠버네티스는 Kubeadm을 활용하여 설치할 계획이며, 학습 목적이므로 Ansible이나 기타 자동화 툴 도입이나 상세 설정 없이 설치하는 과정을 설명합니다.

 

 

 

PC 환경은 램 16GB 이상을 권장드리며, 공유기가 있다는 전제하에 네트워크 구성은 Bridge Adaptor를 통해 구성하오니 내용 참고 바랍니다.

(※ 공유기가 없는 환경이라면 NAT 네트워크를 구성하여 진행 가능합니다.)

 

앞으로 다룰 내용

 

1. VirtualBox Ubuntu 설치

2. Docker 설치

3. 쿠버네티스 클러스터 구성

4. NFS 구성

5. metallb 설치

6. ingress-nginx 설치

 

 

이번 포스팅은 첫 번째로 VirtualBox를 사용하여 이미지 설치를 위한 기초 설정을 다루겠습니다.

 

 


 

1. VirtualBox 설치

 

 

 

VirtualBox 공식 홈페이지에 접속하여 프로그램을 다운로드 후 설치를 진행합니다.

설치시 특별한 설정 없이 다음버튼을 눌러 진행하면 되므로 설치 과정은 생략하겠습니다.

 


2. Ubuntu 이미지 다운로드

 

1. Ubuntu 공식 홈페이지에 접속하여 Desktop 다운로드 버튼을 누릅니다.

 

 

2. 이미지를 다운로드 받습니다. 만약 이미지 다운로드가 되지 않는다면, Download Now 링크를 클릭합니다.

 

 

3. VirtualBox 설정

 

1. VirtualBox를 실행시킵니다.

 

 

2. 상단의 머신 > 새로 만들기 버튼을 선택합니다.

 

 

3. 이미지의 이름을 지정합니다. 

 

 

4. VM 이미지 설치 위치를 저장하기 위해 머신폴더 > 기타를 선택합니다.

 

 

 

5. 설치 위치를 선택한 다음 폴더 선택 버튼을 누릅니다.

 

 

 

6. 종류와 버전을 선택한 다음 다음 버튼을 누릅니다.

 

 

7. 컴퓨터 사양을 고려하여 메모리를 할당(2GB 이상) 후 다음버튼을 누릅니다.

 

 

 

8. 가상디스크를 만들기 위해 만들기 버튼을 클릭합니다.

 

 

 

9. 기본 설정을 유지한채 다음 버튼을 클릭합니다.

 

 

 

10. 동적 할당을 선택 후 다음 버튼을 클릭합니다.

 

 

11.  PC 사양을 고려하여 이미지 할당 크기를 지정한 다음 저장 위치를 지정합니다. 완료 후 만들기 버튼을 클릭합니다.

 

 

 

12. Network 및 기타 설정을 위해 생성된 머신 선택 > 마우스 오른쪽 클릭 > 설정 버튼을 누릅니다.

 

13. CPU 설정을 위해 시스템 > 프로세서 탭에서 CPU 개수를 2개로 설정합니다.

 

 

 

14. Ubuntu 이미지를 설정하기 위해서 저장소 > 비어 있음 > 디스크 버튼 > Choose a disk file... 버튼을 클릭합니다.

 

 

 

15. 다운로드 받은 Ubuntu 이미지를 선택한 다음 열기 버튼을 누릅니다.

 

 

16. Ubuntu 이미지로 설정된 것을 확인합니다.

 

 

17. 네트워크 > 어댑터1에서 이름을 어댑터 브리지로 선택합니다.

 

 

18. Host 네트워크 설정을 위해 어댑터 2 > 네트워크 어댑터 사용하기 클릭 > 호스트 전용 어댑터를 선택합니다.

 

 

확인 버튼을 눌러 종료합니다.

 


마치며

 

Ubuntu 설치를 위한 기본적인 설정은 마무리 되었습니다.

다음 포스팅에서는 Ubuntu 설치 및 기본적인 환경 구성을 진행하겠습니다.

+ Recent posts