StorageClass 구성

Cassandra 데이터베이스의 경우 하이브리드 런타임은 동적으로 생성된 영구 볼륨을 사용하여 데이터를 저장합니다. Cassandra를 올바르게 구성하려면 솔리드 스테이트 드라이브(SSD)에서 지원하는 StorageClass 정의를 구성해야 합니다.

이 주제에서는 SSD를 사용하는 새 StorageClass를 만들고 이것을 기본 클래스로 설정하는 방법을 설명합니다. Cassandra가 시작되면 이 기본 StorageClass를 사용합니다.

기본 StorageClass 변경

다음 단계에서는 StorageClass를 만들고 이것을 기본 클래스로 설정하는 방법을 설명합니다. 자세한 내용은 Kubernetes 문서의 기본 스토리지 클래스 변경을 참조하세요.

  1. 현재 기본 StorageClass의 이름을 가져옵니다.
    kubectl get sc

    예를 들면 다음과 같습니다.

    kubectl get sc
      NAME                  PROVISIONER            RECLAIMPOLICY
      VOLUMEBINDINGMODE     ALLOWVOLUMEEXPANSION   AGE
      premium-rwo           pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer  true                   40m
      standard (default)    kubernetes.io/gce-pd   Delete
      Immediate             true                   40m
      standard-two          pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer  true                   40m
    
  2. standard라는 StorageClass를 설명합니다. 유형은 pd-standard입니다.
    kubectl describe sc standard

    예를 들면 다음과 같습니다.

    kubectl describe sc standard
      Name:                  standard
      IsDefaultClass:        Yes
      Annotations:           storageclass.beta.kubernetes.io/is-default-class=true
      Provisioner:           kubernetes.io/gce-pd
      Parameters:            type=pd-standard
      AllowVolumeExpansion:  <unset>
      MountOptions:          <none>
      ReclaimPolicy:         Delete
      VolumeBindingMode:     Immediate
      Events:                <none>
  3. storageclass.yaml라는 새 파일을 만듭니다.
  4. 이 코드를 파일에 추가합니다. 새 클래스 이름은 apigee-sc이며, 원하는 이름을 사용할 수 있습니다. 또한 스토리지 유형은 pd-ssd입니다.
    ---
    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: "apigee-sc"
    provisioner: pd.csi.storage.gke.io
    parameters:
      type: pd-ssd
      replication-type: none
    volumeBindingMode: WaitForFirstConsumer
    allowVolumeExpansion: true
    
  5. 새 StorageClass를 Kubernetes 클러스터에 적용합니다.
    kubectl apply -f storageclass.yaml
  6. 다음 두 명령어를 실행하여 기본 StorageClass를 변경합니다.
    kubectl patch storageclass standard \
      -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
    kubectl patch storageclass apigee-sc \
      -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
  7. 다음 명령어를 실행하여 새 기본 StorageClass를 apigee-sc라고 하는지 확인합니다.
    kubectl get sc

    예를 들면 다음과 같습니다.

    kubectl get sc
      NAME                 PROVISIONER            RECLAIMPOLICY
      VOLUMEBINDINGMODE    ALLOWVOLUMEEXPANSION   AGE
      apigee-sc (default)  pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer true                   67s
      premium-rwo          pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer true                   49m
      standard             kubernetes.io/gce-pd   Delete
      Immediate            true                   49m
      standard-rwo         pd.csi.storage.gke.io  Delete
      WaitForFirstConsumer true                   49m