스토리지

이 페이지에서는 Anthos clusters on VMware(GKE On-Prem) 스토리지 개념을 설명합니다.

요약

Anthos clusters on VMware는 VMware vSphere 스토리지, Kubernetes 트리 내 볼륨 플러그인(또는 '드라이버), 컨테이너 스토리지 인터페이스(CSI) 드라이버를 통해 외부 블록 또는 파일 스토리지 시스템과 통합됩니다.

Anthos clusters on VMware 클러스터는 기본 Kubernetes StorageClass를 사용하여 vSphere Datastore에 스테이트풀(Stateful) 워크로드를 위한 스토리지를 프로비저닝합니다. StorageClass를 사용하여 다른 스토리지 볼륨을 프로비저닝할 수도 있습니다.

vSphere 스토리지

기본적으로 Anthos clusters on VMware 클러스터는 vSphere 스토리지를 사용합니다. 관리자 클러스터에는 etcd 데이터에 대해 사전 프로비저닝된 vSphere Datastore가 필요합니다.

사용자 클러스터를 만들 때 Anthos clusters on VMware는 vSphere Kubernetes 볼륨 플러그인을 사용하여 vSphere Datastore에서 새 가상 머신 디스크(VMDK)를 동적으로 프로비저닝합니다. 이전 1.2 사용자 클러스터는 관리자 클러스터와 동일한 Datastore를 사용했습니다.

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

기본 스토리지

Anthos clusters on VMware 클러스터에는 Kubernetes가 스토리지를 프로비저닝하는 방법을 결정하는 기본 Kubernetes StorageClass가 포함되어 있습니다. Kubernetes가 스토리지 볼륨을 프로비저닝하면 Kubernetes PersistentVolume로 표시됩니다.

사용자 클러스터의 기본 StorageClass는 vSphere Datastore를 가리키며, 이는 StorageClass 구성의 datastore 필드에 설정됩니다. 기본적으로 사용자 클러스터에 프로비저닝된 Kubernetes PersistentVolume는 해당 Datastore의 VMDK입니다. 이는 관리자 클러스터에서 사용하는 Datastore와 반드시 동일하지는 않습니다.

Anthos clusters on VMware에서 Kubernetes StatefulSets(일반적으로 영구 스토리지가 필요한 스테이트풀(Stateful) 워크로드)는 기본적으로 vSpehre 스토리지를 가리키는 StorageClass가 지원하는 PersistentVolumeClaim를 사용합니다.

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

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

Anthos clusters on VMware는 CSI v1.0을 지원합니다. 클러스터에서 CSI를 사용하려면 스토리지 공급업체에서 제공한 CSI 드라이버를 배포해야 합니다. 그런 다음 드라이버의 StorageClass를 사용하도록 워크로드를 구성하거나 기본 StorageClass로 설정할 수 있습니다.

Google은 여러 스토리지 공급업체와 파트너십을 맺어 Anthos clusters on VMware로 스토리지 시스템을 검증했습니다. 자격을 갖춘 스토리지 파트너의 전체 목록을 참조하세요.

vSphere CSI 드라이버

기본적으로 Anthos clusters on VMware는 vSAN을 비롯해 VMware Datastore를 자동으로 지원하는 vSphere Cloud Provider(VCP)의 트리 내 볼륨 플러그인을 활용합니다. vSphere CSI 드라이버는 Anthos clusters on VMware 클러스터에 자동으로 배포되며 Anthos clusters on VMware 버전 1.5부터 시작하는 미리보기 기능으로 사용할 수 있습니다.

CSI 볼륨 스냅샷

VolumeSnapshotVolumeSnapshotClass 리소스를 사용하여 영구 스토리지의 스냅샷을 만들 수 있습니다. CSI 볼륨에서 이 기능을 사용하려면 CSI 드라이버가 볼륨 스냅샷을 지원해야 하며 external-snapshotter 사이드카 컨테이너가 CSI 드라이버 배포에 포함되어야 합니다.

볼륨 스냅샷에 대한 자세한 내용은 볼륨 스냅샷 사용을 참조하세요.

CSI 스냅샷 컨트롤러는 클러스터를 만들 때 자동으로 배포됩니다.

볼륨 삭제

사용자 클러스터를 삭제할 때 VMware의 트리 내 볼륨 플러그인으로 프로비저닝된 볼륨이 삭제되지 않을 수 있습니다. 하지만 사용자 클러스터를 삭제할 때 vSphere CSI 드라이버로 프로비저닝된 볼륨은 삭제되지 않습니다. 클러스터를 삭제하기 전에 모든 볼륨, PVC, StatefulSet가 모두 삭제되었는지 확인해야 합니다.

Kubernetes 트리 내 볼륨 플러그인

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

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

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

트리 내 볼륨 플러그인설명지원 액세스 모드동적 프로비저닝
Fibre 채널일반 스토리지 플러그인단일 pod 읽기/쓰기아니요
iSCSI일반 스토리지 플러그인단일 pod 읽기/쓰기아니요
NFS일반 스토리지 플러그인여러 pod 읽기/쓰기없음

클러스터 저장소 구성

vSphere Datastore 이외의 스토리지 볼륨을 프로비저닝하려면 다른 스토리지 드라이버를 사용하는 클러스터에 새 StorageClass를 만들 수 있습니다. 그런 다음 StorageClass를 클러스터의 기본값으로 설정하거나 StorageClass를 사용하도록 워크로드를 구성할 수 있습니다(StatefulSet 예시).

문제 해결

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

추가 자료