본문 바로가기

카테고리 없음

Kubernetes 정리 193: Storage Class

이번 강의에서는 스토리지 클래스에 대해 알아보겠습니다. 이전 강의에서는 PV를 생성하고, PVC를 생성하여 해당 스토리지를 요청한 다음 Pod definition 파일의 PVC를 volume으로 사용하는 방법에 대해 얘기했습니다.

이 경우, Google Cloud persistent disk에서 PVC를 만듭니다. 

여기서 문제는 이 PV가 생성되기 전에 Google Cloud에 디스크를 생성해야 한다는 것입니다. 애플리케이션에 스토리지가 필요할 때마다 먼저 Google Cloud에서 디스크를 수동으로 프로비저닝한 다음 생성한 디스크와 동일한 이름을 사용하여 persistent volume definition 파일을 수동으로 생성해야 합니다.

 

1. Dynamic Provisioning

애플리케이션이 필요로 할 때 volume이 자동으로 프로비저닝된다면 좋았을 것입니다. 여기서 스토리지 클래스가 필요합니다. 스토리지 클래스를 사용하면 Google Cloud에서 스토리지를 자동으로 프로비저닝하고 claims이 있을 때 파드에 연결할 수 있는 프로비저너(예: Google Storage)를 정의할 수 있습니다. 이를 volume의 동적 프로비저닝이라고 합니다.

API 버전이 storage.k8s.io/v1으로 설정된 스토리지 클래스 오브젝트를 생성하면 됩니다. 이름을 지정하고 프로비저너를 Kubernetes.io/gce-pd저장을 위해 PVC를 사용하는 파드가 있고 PVC가 PV에 바인딩된 원래 상태로 돌아가서 이제 스토리지 클래스가 있으므로 더 이상 PV 정의가 필요하지 않습니다. 스토리지는 스토리지 클래스가 생성될 때 자동으로 생성됩니다. PVC가 우리가 정의한 스토리지 클래스를 사용하려면 PVC 정의에 스토리지 클래스 이름을 지정합니다. 이것이 PVC가 사용할 스토리지 클래스를 아는 방법입니다. 다음에 PVC가 생성되면 이와 연결된 스토리지 클래스는 정의된 프로비저너를 사용하여 GCP에서 필요한 크기의 새 디스크를 프로비저닝한 다음 persistent volume을 생성하고 PVC를 해당 volume에 바인딩합니다. 따라서 여전히 PV를 생성한다는 점을 기억하세요. 더 이상 수동으로 PV를 생성할 필요가 없다는 것입니다. 스토리지 클래스에 의해 자동으로 생성됩니다.

2. Storage Class

GCE 제공자를 사용하여 GCP에서 volume을 생성했습니다. AWS EBS, Azure File, Azure Disk, CephFS, Portworx, ScaleIO 등과 같은 다른 프로비저너도 많이 있습니다. 이러한 프로비저너 각각을 사용하여 프로비저닝할 디스크 유형, replication 유형 등과 같은 추가 파라미터를 전달할 수 있습니다. 이러한 파라미터는 사용 중인 제공자에 따라 매우 다릅니다. Google Persistent Disk의 경우 표준 또는 SSD일 수 있는 유형을 지정할 수 있습니다. none 혹은 regional PD인 replication 모드를 지정할 수 있습니다. 보시다시피 각각 다른 유형의 디스크를 사용하는 다양한 스토리지 클래스를 생성할 수 있습니다. 예를 들어 표준 디스크가 포함된 실버 스토리지 클래스, SSD 드라이브가 포함된 골드 클래스, SSD 드라이브 및 replication가 포함된 플래티넘 클래스입니다.