본문으로 건너뛰기
SKS (Smileserv Kubernetes System) Blockstorage 배포 메뉴얼 ver. 2025.01.21

Blockstorage 배포

블록스토리지 생성


쿠버네티스 포드는 과부하, 업데이트 재배포 등으로 포드가 삭제, 재생성 될 경우 새로 만들어지며 기존 데이터가 사라지게 됩니다.

데이터의 영구 저장이 필요한 경우 PersistentVolumeClaim 을 사용하여 포드에 연결, 데이터를 저장하는데 사용 할 수 있습니다.

*주의

본과정을 그대로 진행시 블록스토리지가 생성되어 요금이 청구 되므로 확인 후 테스트 진행 부탁 드립니다.

정보
  • storageClass 에 정의된 기본 파일시스템은 xfs 입니다. 다른 파일시스템으로 변경이 필요한 경우 기술지원 요청을 통해 변경 가능합니다.
  1. PVC 생성에 필요한 yaml 파일을 작성 합니다.

pvc_01_f.png

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: manual-volume
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
storageClassName: block

  1. kubectl apply 로 pvc 를 생성 합니다.
kubectl apply -f test_pvc.yaml

pvc_02_f.png


  1. 생성된 정보를 확인 합니다.
kubectl get pv
kubectl get pvc

pvc_03_f.png


  1. 볼륨이 생성 되면 자동으로 체크, iwinv 계정에 블록 스토리지 서비스가 생성되며 요금이 발생합니다.

block_f.png

회원 아이디에 등록된 이메일로 안내 메일이 발송 됩니다.

billing_block_f.png


블록스토리지 포드에 연결 배포하기

본 메뉴얼에 안내 되어있는 정보를 이용하여 생성된 PVC 를 포드에 연결, 배포하는 방법 입니다.

  1. deployment 생성을 위한 yaml 파일을 작성합니다.

deployment_01_f.png

apiVersion: apps/v1
kind: Deployment
metadata:
name: manual-deployment
spec:
replicas: 1
selector:
matchLabels:
app: manual-nginx
template:
metadata:
labels:
app: manual-nginx
spec:
containers:
- name: manual-container
image: nginx
ports:
- containerPort: 80
volumeMounts:
- mountPath: "/usr/share/nginx/html"
name: manual-disk
volumes:
- name: manual-disk
persistentVolumeClaim:
claimName: manual-volume

claimName 은 생성한 pvc 의 이름과 같아야 합니다.


  1. 작성한 yaml 파일로 Deployment 를 생성 합니다.

deployment_02_f.png


  1. 생성된 Deployment 상태를 조회 할 수 있습니다.
kubectl get deployment

deployment_03_f.png


  1. Deployment 에서 자동으로 생성한 pod 상태를 확인 할 수 있습니다.
kubectl get pod

pvc_att_04_f.png


  1. kubectl exec 명령어로 포드 내부에 접속 할 수 있습니다.
kubectl exec -it 포드명 -- /bin/bash

pvc_att_05_f.png


  1. 포드에 블록스토리지가 정상 마운트 되어있는 것을 확인 할 수 있습니다.

pvc_att_06_f.png


  1. 테스트를 위해 간단한 index 파일을 생성, 포드 내부로 복사 합니다.
kubectl cp [file] [Pod_name]:/[복사경로]

pvc_att_07.png


  1. 연결된 로드밸런서 ip 로 접속 하여 업로드한 인덱스 페이지를 확인 할 수 있습니다.

deployment_08_f.png

블록스토리지 용량 추가

사용중인 블록 스토리지 용량을 늘릴 수 있습니다.

  • 용량 증가만 가능하며 축소는 불가능합니다.

  • 포드에 연결 되어 있어야 용량 업그레이드가 정상적으로 완료 가능 합니다.

경고

*주의) 본과정을 그대로 진행시 블록스토리지 용량이 변경되어 추가된 요금이 청구 되므로 확인 후 테스트 진행 부탁 드립니다.

  1. 현재 사용중인 스토리지 확인
kubectl get pvc

pvc


  1. 블록스토리지를 생성할 때 사용한 yaml 파일을 열어 용량을 수정 합니다.
vi test_pvc.yaml

get_pvc


  1. 수정한 yaml 파일을 적용 합니다.
정보

*스토리지 용량은 추가 만 가능하며 감소는 불가능 합니다.

kubectl apply -f test_pvc.yaml

pvc_apply


  1. 잠시 후 스토리지 상태를 조회 하면 용량이 변경 된 것을 확인 할 수 있습니다.
kubectl get pvc

get_pvc


스토리지를 생성 했을 때와 같이 서비스 변경 안내 메일이 발송 됩니다.

mail



블록디스크가 정상적으로 확장 되지 않는 경우 pvc 정보 를 조회 하여 관련 정보를 확인 할 수 있습니다.

kubectl describe pvc  MY_PVC_NAME

describe_pvc

  • 일부 오래된 파일시스템 과 같이 디스크 리마운트가 필요한 경우 포드 재시작이 필요 할 수 있습니다.

  • 포드에 연결되지 않은 경우 포드에 연결이 필요 합니다.