IT/Kubernetes

[Kubernetes] GKE 클러스터에 GCE-PersistentDisk 생성하고 Pod에 Mount 하기.

고슴도치 엔지니어 2022. 7. 13. 19:42

Kubernetes 클러스터에서 다수의 Micro Service가 사용할 Disk(Volume)이 필요 한 상황이 생겼다.

 

GCP에서 제공하는 관리형 NAS 서비스인 Cloud Filestore를 사용 하려 했으나 300GB 정도의 용량만 필요 한 상황에서

Filestore는 HDD 기본 시작용량이 1TB, SSD는 2.5TB에 비용도 꽤나 비싸서 사용을 보류 하였고,

200GB 표준 영구 디스크 기준으로 한달에 $8.00 만 청구된다고 하는 GCE-PD 서비스를 사용 해 보기로 했다.

 

 

Cloud SDK가 설치되어 있는 클라이언트에서 아래 명령어를 실행 시킨다.

 

$ gcloud compute disks create --size=300GB --type=pd-standard --zone={ZONE} {DISK_NAME}

gcloud 명령어로 디스크 생성

300GB 용량으로 asia-northeast1-a 지역에 cluster-shared-disk 라는 Persistent Disk를 생성하였다.

Type을 지정하지 않으면 기본적으로 pd-standard 타입으로 생성되는 것을 확인 하였다. pd-standard(표준 영구 디스크) 타입은 HDD 타입의 스토리지이며 많은 Disk I/O가 필요하지 않은 애플리케이션에 적합하면서 저렴하므로 선택하였다.

 

GCE-PD에서 제공하는 디스크 타입은 아래와 같다.

GCP 공식 문서에서 설명하는 영구 디스크 타입

 

 

구글 공식문서에서는 아래의 과정도 거쳐야 인스턴스에 PD가 붙는것으로 나오지만, 맨 처음 명령어 한줄만 입력해도 GKE에서 정상적으로 인식 되었다.

$ gcloud compute instances attach-disk INSTANCE_NAME \
  --disk DISK_NAME
  
$ gcloud compute disks describe DISK_NAME

GKE 인스턴스에 정상적으로 인식 된 디스크의 모습.

 

이후 GKE 클러스터에서 배포 할 애플리케이션의 매니페스트 파일에 Volume 부분을 수정 해 준다.

Deployment yaml 파일에 Voluime 부분을 추가.

 

이후 kubectl exec 명령어로 배포된 컨테이너에 접속해서 리눅스 명령어를 통해 Mount 된 볼륨을 확인 할 수 있다.

배포된 컨테이너 안에서 볼륨 확인.