일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- node.js
- MySQL
- 탐욕법
- dfs
- html
- 인접행렬
- java
- 프로그래머스
- javascript
- Linux
- nestjs
- 인접리스트
- 코딩테스트
- 알고리즘
- JWT
- puppeteer
- OOP
- Kubernetes
- GraphQL
- Interceptor
- css
- REST API
- LifeCycle
- Spring
- Deep Dive
- 자료구조
- TIL
- typescript
- winston
- bean
- Today
- Total
처음부터 차근차근
[Kubernetes] NFS provisioner를 이용해 PV 생성 본문
NFS subdir external provisioner란 무엇인가?
NFS subdir external provisioner는 PVC(Persistent Volumes Claim)을 통해 NFS 서버를 쿠버네티스 PV(Persistent Volum)로 동적 프로비저닝(dynamic provisioning) 하기 위한 automatic provisioner 입니다.
PV(Persistent Volum)는 ${namespace}-${pvcName}-${pvName}으로 프로비저닝 됩니다.

공식 문서에도 보면, Kubernetes에는 내장 nfs provisioner가 존재하지 않는다.
따라서 외부 provisioner를 사용하라고 나와있다.
Storage Classes
This document describes the concept of a StorageClass in Kubernetes. Familiarity with volumes and persistent volumes is suggested. A StorageClass provides a way for administrators to describe the classes of storage they offer. Different classes might map t
kubernetes.io
준비물
- NFS Server
- NFS Client - 모든 쿠버네티스 노드 및 마스터까지
- Allow TCP/UDP Port
1. NFS Server에 nfs-tools 설치 및 daemon 설치
NFS Server는 CentOS 7.9로 진행하였다.
sudo yum install -y nfs-utils
sudo systemctl enable --now rpcbind
sudo systemctl enable --now nfs-server
sudo systemctl restart rpcbind
sudo systemctl restart nfs-server
# 공유할 디렉토리 설정
sudo mkdir -p /your/path
sudo chmod -R 777 /your/path
sudo vi /etc/exports
#{mount-path} {client-ip}({options})
/your/path XXX.XXX.0.XXX(rw,subtree_check,no_root_squash)
# 설정 적용
sudo exportfs -ra
# 설정 확인
sudo exportfs -v
2. master에 nfs-tools 설치 및 mount 진행
sudo yum install -y nfs-utils
sudo systemctl enable --now rpcbind
sudo systemctl restart rpcbind
showmount -e Server_IP
# mount 임시 적용
mount -t nfs server_IP:/path/to/share /path/to/local_mount_point
# mount 영구 적용 시
echo 'server_IP:/path/to/share /path/to/local_mount_point nfs defaults 0 0' >> /etc/fstab
2-1. PV 및 PVC 생성 진행
다양한 블로그 참조 시, PV를 동적으로 만들 수 있지만 현재 사내에서는 정적으로 PV 및 PVC를 만들어놓은 상태이다.
따라서 만들어진 PV와 PVC를 통해 진행한다.
PV
apiVersion: v1
kind: PersistentVolume
metadata:
labels:
volume: nfs
name: nfs-pv
spec:
capacity:
storage: 1000Gi # nfs-server의 용량을 확인할 것
accessModes:
- ReadWriteMany
storageClassName: nfs-storage
persistentVolumeReclaimPolicy: Retain
nfs:
path: /exported/path
server: XXX.XXX.XXX.XXX # nfs-server의 주소는 확인 필요
readOnly: false
PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
labels:
volume: nfs
name: nfs-pvc
spec:
selector:
matchLabels:
volume: nfs
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1000Gi # nfs-server 용량 확인할 것
storageClassName: nfs-storage
3. 모든 worker Node에 nfs-tools 설치 진행
sudo yum install -y nfs-utils
sudo systemctl enable --now rpcbind
sudo systemctl restart rpcbind
4. helm을 통해 master에서 nfs-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=x.x.x.x \
--set nfs.path=/exported/path
kubectl get pv, pvc를 하면 완성되어 있는 것을 확인할 수 있으며, Pod을 띄워도 자동으로 잘 진행되는 것을 확인할 수 있다.
참조
Dynamic PV with NFS subdir extrnal provisioner | Notion
2022.03. 이장재 📧 cine0831@gmail.com 📂 https://github.com/jangjaelee 📒 http://www.awx.kr
awx.notion.site
K8S 기본 볼륨을 nfs로 사용해볼까
우선 NFS Client Provisioner 설치를 해야 합니다. 우리는 helm으로 설치 할 것입니다. 가장 심플하게 할 수 있는 방법 입니다. helm repo add nfs-subdir-external-provisioner \ https://kubernetes-sigs.github.io/nfs-subdir-extern
babo-it.tistory.com
NFS subdir external provisioner
1. 개요 - 쿠버네티스에는 내장 NFS 프로비저너가 없다. NFS를 위한 스토리지클래스를 생성하려면 외부 프로비저너를 사용해야 한다. ✓ NFS Ganesha server and external provisioner ✓ NFS subdir external provisione
1week.tistory.com
[Kubernetes] Helm Chart로 NFS Provisioner 구성하기
ENV 우선 구성할 NFS 서버 정보를 확인합니다. (NFS ver 3 기준으로 작성했습니다 ver4 는 추가 Option을 진행할 필요가 없습니다.) NFS 서버 정보 x.x.x.x:/test vers:3 refer to https://github.com/kubernetes-sigs/nfs-subdir
wyj.kr
'Devops > Kubernetes' 카테고리의 다른 글
[Kubernetes] PV, PVC의 개념 (0) | 2024.08.22 |
---|