1. 주요 목적
Kubernetes에서 **PersistentVolume(PV)**와 **PersistentVolumeClaim(PVC)**을 사용하여 데이터를 지속적으로 저장하고 관리하며, 이를 Nginx 서버와 연동하기 위한 Pod를 설정
2. 활용 목적
2.1. 데이터 영구 저장 : PV를 정의하여 클러스터 노드의 경로(/web)에 최대 10Gi의 데이터를 저장 가능
2.2. 스토리지 요청 및 할당 : PVC를 통해 3Gi의 스토리지를 요청하여 PV와 연결.
2.3. Nginx 웹 서버와 데이터 연동 : Pod를 생성하고, Nginx 서버에서 /usr/share/nginx/html 디렉토리를 PV에 마운트하여 영구 데이터 저장
2.4. 유연한 스토리지 관리 : PV와 PVC를 사용하여 데이터 영속성을 보장하면서 Kubernetes 환경에서 유연한 스토리지 리소스 활용
3. 세부 방법
3.1. 디렉토리 생성 : mkdir /web
3.2. html 파일 생성 : vi /web/index.html
<html> <body> <h1>Persistant_volume_test</h1> </body> </html> |
3.3. pv.yml 파일 생성 : vi pv.yml
apiVersion: v1 kind: PersistentVolume metadata: name: pv-volume labels: vol: pv spec: storageClassName: web capacity: storage: 10Gi accessModes: - ReadWriteOnce hostPath: path: /web |
3.4. pv.yml 파일 실행 : kubectl apply -f pv.yml
3.5. pvc.yml 파일 생성 : vi pvc.yml
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pv-claim spec: storageClassName: web accessModes: - ReadWriteOnce resources: requests: storage: 3Gi |
3.6. pvc.yml 파일 실행 : kubectl apply -f pvc.yml
3.7. pvcpod.yml 파일 생성 : vi pvcpod.yml
apiVersion: v1 kind: Pod metadata: name: pvc-pod labels: pvc: nginx spec: nodeName: master volumes: - name: behwang-pv persistenVolumeClaim: claimName: pv-claim containers: - name: n1 image: nginx imagePullPolicy: Never ports: - containerPort: 80 volumeMounts: - mountPath: /usr/share/nginx/html name: behwang-pv volumes: - name: behwang-pv persistentVolumeClaim: claimName: pv-claim |
3.8. pvcpod.yml 파일 실행 : kubectl apply -f pvcpod.yml
3.9. 정상 작동 확인
'Kubernetes' 카테고리의 다른 글
Kubernetes : MySQL 컨테이너의 데이터 → 호스트 디렉토리에 저장 (0) | 2024.12.24 |
---|---|
Kubernetes : 호스트 머신 디렉토리 → Pod 내 컨테이너 공유 (0) | 2024.12.24 |
Kubernetes : 컨테이너 간 데이터 공유 (볼륨 활용) (0) | 2024.12.24 |
Kubernetes : 로드밸런싱 (0) | 2024.12.23 |
Kubernetes : 트래픽 라우팅 (Ingress Controller 설정) (1) | 2024.12.23 |