저장

GKE On-Prem은 VMware vSphere 스토리지, Kubernetes 트리 내 볼륨 플러그인, CSI(Container Storage Interface) 드라이버를 통해 외부 블록 또는 파일 스토리지 시스템과 통합됩니다.

vSphere 스토리지

기본적으로 GKE On-Prem 관리자 및 사용자 클러스터는 모두 vSphere 스토리지를 사용합니다. 관리자 클러스터에는 etcd 데이터를 위해 사전 프로비저닝된 VMware Datastore가 필요합니다.

사용자 클러스터를 만들 때 GKE On-Prem은 vSphere Kubernetes 볼륨 플러그인을 사용하여 관리자 클러스터에서 사용하는 것과 동일한 VMware Datastore에 새 가상 머신 디스크(VMDK)를 동적으로 프로비저닝합니다. 이 VMDK에는 사용자 클러스터의 etcd 데이터가 있습니다.

사용자 클러스터의 기본 StorageClass는 VMware Datastore를 가리킵니다. 기본적으로 사용자 클러스터에 프로비저닝된 Kubernetes PersistentVolume은 Datastore인 VMDK입니다. 관리자 클러스터에서 사용하는 Datastore와 반드시 동일하지는 않습니다.

관리자 및 사용자 클러스터에서 사용하는 VMware Datastore는 외부 저장소 배열과 같은 블록 장치의 NFS, vSAN 또는 VMFS에 의해 백업될 수 있습니다. 다중 호스트 환경에서 각 블록 기기는 환경의 모든 호스트에 연결되어야 하며 Datastore는 추가 호스트에 Datastore 마운트 옵션을 통해 각 호스트에 구성해야 합니다.

GKE On-Prem에서 StatefulSets는 vSphere 스토리지를 가리키는 StorageClasses의 지원을 받는 PersistentVolumeClaims를 사용합니다.

Kubernetes 트리 내 볼륨 플러그인

Kubernetes는 다양한 트리 내 볼륨 플러그인과 함께 제공됩니다. 이 중 하나를 사용하여 스테이트풀(Stateful) 워크로드에 블록 또는 파일 스토리지를 제공할 수 있습니다. 트리 내 플러그인을 사용하면 vSphere 스토리지를 거치지 않고도 워크로드를 스토리지에 직접 연결할 수 있습니다.

vSphere 스토리지는 iSCSI, FC, NFS 스토리지 기기가 지원하는 Datastore 내 볼륨의 동적 프로비저닝을 자동으로 제공하지만 트리 내 플러그인은 대부분 동적 프로비저닝을 지원하지 않습니다. 따라서 트리 내 플러그인을 사용하려면 PersistentVolume을 수동으로 만들어야 합니다.

다음 표에서는 여러 트리 내 디렉터리 볼륨 플러그인에 대해 설명합니다.

트리 내 볼륨 플러그인설명지원 액세스 모드동적 프로비저닝
Fibre 채널일반 스토리지 플러그인단일 pod 읽기/쓰기아니요
iSCSI일반 스토리지 플러그인단일 pod 읽기/쓰기아니요
NFS일반 스토리지 플러그인여러 pod 읽기/쓰기아니요
Ceph RBD오픈소스 소프트웨어 정의 스토리지단일 pod 읽기/쓰기
CephFS오픈소스 소프트웨어 정의 스토리지여러 pod 읽기/쓰기아니요
Portworx독점 소프트웨어 정의 스토리지여러 pod 읽기/쓰기
Quobyte독점 소프트웨어 정의 스토리지단일 pod 읽기/쓰기
StorageOS독점 소프트웨어 정의 스토리지단일 pod 읽기/쓰기

컨테이너 스토리지 인터페이스

컨테이너 스토리지 인터페이스(CSI)는 Kubernetes가 컨테이너화된 워크로드에 임의의 스토리지 시스템을 노출할 수 있게 해주는 표준 API입니다. Kubernetes 클러스터에 CSI 호환 볼륨 드라이버를 배포하면 vSphere 스토리지를 거치지 않고도 워크로드를 스토리지에 직접 연결할 수 있습니다.

GKE On-Prem은 CSI v1.0을 지원하는 Kubernetes 1.13+와 함께 제공됩니다. 클러스터에서 CSI를 사용하려면 스토리지 공급업체에서 제공한 CSI 드라이버를 배포해야 합니다. 그런 다음 드라이버의 StorageClass를 사용하도록 워크로드를 구성하거나 기본 StorageClass로 설정할 수 있습니다.

문제해결

스토리지 문제 해결을 참조하세요.