사용자 클러스터에는 하나 이상의 StorageClass 객체가 있으며 그 중 하나는 기본 StorageClass로 지정됩니다. 이 페이지에서는 사용자 클러스터의 기본 StorageClass를 설정하는 방법을 보여줍니다.
자세한 내용은 스토리지를 참조하세요.
기본 StorageClass 찾기
모든 StorageClass를 나열합니다.
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get storageclasses
출력에서 어떤 StorageClass가 기본인지 확인할 수 있습니다. 예를 들어 다음 출력에서 standard-rwo
라는 StorageClass가 기본 StorageClass임을 확인할 수 있습니다.
standard kubernetes.io/vsphere-volume standard-rwo (default) csi.vsphere.vmware.com
스토리지를 요청할 때 StorageClass를 지정할 수 있습니다. StorageClass를 지정하지 않으면 기본 StorageClass가 사용됩니다. 예를 들어 StorageClass를 지정하지 않는 PersistentVolumeClaim을 만든다고 가정해 보겠습니다. 볼륨 컨트롤러는 기본 StorageClass에 따라 클레임을 처리합니다.
기본 StorageClass 변경
클러스터 관리자는 기본 스토리지 클래스를 변경할 수 있습니다. 그러면 StorageClass를 지정하지 않은 모든 스토리지 요청이 선택한 StorageClass에 따라 처리됩니다. 이 섹션에서는 기본값을 변경하는 단계를 설명합니다.
새 스토리지 시스템 배포
새 스토리지 시스템과 Kubernetes 클러스터와 통합하기 위한 모든 소프트웨어 구성요소를 배포합니다. 예를 들어 클러스터에 CSI 드라이버를 설치해야 할 수 있습니다.
이 단계는 사용 중인 스토리지 공급업체에 따라 다릅니다. CSI 드라이버의 경우 공급업체는 CSI 드라이버를 Kubernetes 클러스터에 배포하는 방법을 제공해야 합니다. CSI 드라이버 문서에는 프로비저닝 도구 이름을 포함하여 StorageClass에 제공하는 드라이버 관련 매개변수가 포함되어야 합니다.
새 어플라이언스에 대한 StorageClass를 만들 때 StorageClass의 이름은 이면의 특정 드라이버나 어플라이언스가 아니라 속성(예: 'fast' 또는 'highly-replicated')의 이름을 따라 지정해야 합니다. 이렇게 하면 클러스터와 환경 전반에서 일관된 스토리지 정책을 사용할 수 있습니다.
기본 StorageClass에서 기본 주석 삭제
텍스트 편집기에서 기본 StorageClass를 엽니다.
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] edit storageclass \ DEFAULT_STORAGE_CLASS
텍스트 편집기에서 storageclass.kubernetes.io/is-default-class: "true"
주석을 삭제합니다. 텍스트 편집기를 닫습니다.
주석이 삭제되었는지 확인하려면 다음 명령어를 입력합니다.
kubectl --kubeconfig [USER_CLUSTER_KUBECONFIG] get storageclass \ DEFAULT_STORAGE_CLASS --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 매니페스트 파일의 경로입니다.