기본 StorageClass 설정

이 페이지에서는 Anthos GKE On-Prem(GKE On-Prem) 클러스터의 기본 StorageClass를 설정하는 방법을 보여줍니다. 스토리지도 참조하세요.

개요

GKE On-Prem은 다음 메커니즘 중 하나를 사용하여 블록 또는 파일 스토리지와 통합할 수 있습니다.

클러스터를 만들면 GKE On-Prem은 standard라는 Kubernetes StorageClass를 만듭니다. 이는 클러스터의 기본 StorageClass입니다.

standard StorageClass에 대한 자세한 정보를 보려면 다음 명령어를 입력합니다.

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml

여기서 [CLUSTER_KUBECONFIG]는 클러스터의 kubeconfig 파일 경로입니다.

출력에서 StorageClass 이름이 standard로 표시됩니다. storageclass.kubernetes.io/is-default-class: "true" 주석도 표시됩니다. 이 주석은 standard라는 StorageClass를 기본 StorageClass로 식별합니다.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: standard
  ...
parameters:
  datastore: HOST2-DATASTORE2
  diskformat: thin
  fstype: ext4
provisioner: kubernetes.io/vsphere-volume
reclaimPolicy: Delete
volumeBindingMode: Immediate

클러스터에는 여러 개의 StorageClass 객체가 있을 수 있지만 그중 하나만 storageclass.kubernetes.io/is-default-class: "true" 주석을 가질 수 있으므로 기본 StorageClass가 될 수 있습니다.

앞의 출력에서 프로비저닝 도구가 kubernetes.io/vsphere-volume이라는 것도 알 수 있습니다. 클라이언트가 standard 클래스의 스토리지를 요청할 때 조치를 취하는 프로비저닝 도구입니다.

기본 StorageClass

스토리지를 요청할 때 StorageClass를 지정할 수 있습니다. StorageClass를 지정하지 않으면 기본 StorageClass가 사용됩니다. 예를 들어 StorageClass를 지정하지 않는 PersistentVolumeClaim을 만든다고 가정해 보겠습니다. 볼륨 컨트롤러는 기본 StorageClass에 따라 클레임을 처리합니다.

기본 StorageClass 변경

클러스터 관리자는 기본 스토리지 클래스를 변경할 수 있습니다. 그러면 StorageClass를 지정하지 않은 모든 스토리지 요청이 선택한 StorageClass에 따라 처리됩니다. 이 섹션에서는 기본값을 변경하는 단계를 설명합니다.

새 스토리지 시스템 배포

새 스토리지 시스템과 Kubernetes 클러스터와 통합하기 위한 모든 소프트웨어 구성요소를 배포합니다. 예를 들어 클러스터에 CSI 드라이버를 설치해야 할 수 있습니다.

이 단계는 사용 중인 스토리지 공급업체에 따라 다릅니다. CSI 드라이버의 경우 공급업체는 CSI 드라이버를 Kubernetes 클러스터에 배포하는 방법을 제공해야 합니다. CSI 드라이버 문서에는 프로비저닝 도구 이름을 포함하여 StorageClass에 제공하는 드라이버 관련 매개변수가 포함되어야 합니다.

새 어플라이언스에 대한 StorageClass를 만들 때 StorageClass의 이름은 이면의 특정 드라이버나 어플라이언스가 아니라 속성(예: 'fast' 또는 'highly-replicated')의 이름을 따라 지정해야 합니다. 이렇게 하면 클러스터와 환경 전반에서 일관된 스토리지 정책을 사용할 수 있습니다.

standard StorageClass에서 기본 주석을 삭제합니다.

텍스트 편집기에서 standard StorageClass 매니페스트를 열려면 다음 명령어를 입력합니다.

kubectl --kubeconfig [CLUSTER_KUBECONFIG] edit storageclass standard

텍스트 편집기에서 storageclass.kubernetes.io/is-default-class: "true" 주석을 삭제합니다. 텍스트 편집기를 닫습니다.

주석이 삭제되었는지 확인하려면 다음 명령어를 입력합니다.

kubectl --kubeconfig [CLUSTER_KUBECONFIG] get storageclass standard --output yaml

새 StorageClass 만들기

새 StorageClass의 매니페스트를 만듭니다. storageclass.kubernetes.io/is-default-class: "true" 주석을 포함합니다. 예:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
  ...
  name: my-storage-class
  ...
parameters:
  ...
provisioner: [MY_PROVISIONER]
...

매니페스트를 YAML 파일로 저장하고 새 StorageClass를 만듭니다.

kubectl --kubeconfig [CLUSTER_KUBECONFIG] apply -f [MANIFEST_FILE]

여기서 [MANIFEST_FILE]은 새 StorageClass 매니페스트 파일의 경로입니다.

다음 단계