Kubernetes 클러스터에서 NetApp NFS 스토리지를 사용하기 위한 구성을 설명해드리겠습니다.
- 먼저 NFS 프로비저너를 설치해야 합니다:
helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
helm install nfs-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner \
--set nfs.server=<NetApp_NFS_IP> \
--set nfs.path=/your/exported/path
- StorageClass 생성:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: netapp-nfs
annotations:
storageclass.kubernetes.io/is-default-class: "true"
provisioner: k8s-sigs.io/nfs-subdir-external-provisioner
parameters:
archiveOnDelete: "false"
pathPattern: "${.PVC.namespace}/${.PVC.name}" # 이는 NFS 내의 경로 패턴을 정의합니다
- PVC(PersistentVolumeClaim) 생성:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: app-data
namespace: your-namespace
spec:
accessModes:
- ReadWriteMany # NFS는 여러 파드에서 동시 접근 가능
storageClassName: netapp-nfs
resources:
requests:
storage: 10Gi
- Deployment에서 PVC 사용:
apiVersion: apps/v1
kind: Deployment
metadata:
name: your-app
namespace: your-namespace
spec:
replicas: 3
selector:
matchLabels:
app: your-app
template:
metadata:
labels:
app: your-app
spec:
containers:
- name: app
image: your-image:tag
volumeMounts:
- name: app-storage
mountPath: /app/data # 컨테이너 내부의 마운트 경로
subPath: data # PV 내의 하위 경로 (선택사항)
volumes:
- name: app-storage
persistentVolumeClaim:
claimName: app-data
특정 경로 설정을 위한 팁:
subPath
: PV 내의 특정 하위 디렉토리를 마운트할 때 사용mountPath
: 컨테이너 내부의 마운트 위치 지정- StorageClass의
pathPattern
을 사용하여 NFS 서버 내의 디렉토리 구조 정의 가능
주의사항:
- NetApp NFS 서버의 export 설정이 올바르게 되어 있어야 합니다
- 모든 Kubernetes 노드에 NFS 클라이언트가 설치되어 있어야 합니다
- 네트워크 방화벽이 NFS 포트(일반적으로 2049)를 허용해야 합니다
이런 설정을 통해 파드들은 NetApp 스토리지에 영구적으로 데이터를 저장하고 접근할 수 있게 됩니다.
댓글 없음:
댓글 쓰기