Azure 디스크 볼륨 사용

Azure용 GKE는 클러스터에서 Azure 디스크 볼륨을 프로비저닝하고 관리하기 위해 azuredisk-csi-driver를 자동으로 배포합니다.

Azure용 GKE Azure Disk CSI 드라이버 버전은 Kubernetes 클러스터 버전에 연결됩니다. 일반적으로 드라이버 버전은 GKE 버전 출시 시점에 사용 가능한 최신 버전입니다. 클러스터가 업그레이드되면 드라이버가 자동으로 업데이트됩니다.

Azure용 GKE가 영구 스토리지를 제공하는 방법은 스토리지 개요를 참조하세요.

기본 스토리지 클래스

Azure용 GKE는 기본적으로 다음 StorageClass 옵션을 제공합니다.

  • standard-rwo(기본값): LRS를 사용하여 표준 SSD Azure 디스크를 프로비저닝합니다.
  • premium-rwo: LRS로 프리미엄 SSD Azure 디스크를 프로비저닝합니다.

시작하기 전에

기본 StorageClass 사용

spec.storageClassName 필드를 설정하지 않고 PersistentVolumeClaim을 만들 때 Azure용 GKE는 Azure용 GKE Azure Disk CSI 드라이버 StorageClass를 사용하여 Azure 표준 SSD 볼륨을 프로비저닝합니다.

다음 YAML은 크기가 30기비바이트인 mypvc라는 PersistentVolumeClaim(PVC)을 만듭니다.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 30Gi

프리미엄 스토리지 클래스 사용

PersistentVolumeClaim을 만들고 spec.storageClassName 필드를 premium-rwo로 설정하면 Azure용 GKE가 Azure 프리미엄 SSD 볼륨을 프로비저닝합니다.

다음 YAML은 크기가 30기비바이트인 mypvc라는 PersistentVolumeClaim(PVC)을 만듭니다.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc
spec:
  storageClassName: premium-rwo
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 30Gi

StatefulSet에서 StorageClass 참조

새 StorageClass를 사용하려면 StatefulSet의 volumeClaimTemplates에서 이를 참조하면 됩니다.

StatefulSet의 volumeClaimTemplates 사양에서 StorageClass를 참조하면 Kubernetes는 PersistentVolume(PV)을 사용하여 안정적인 스토리지를 제공합니다. Kubernetes는 StorageClass에 정의된 프로비저닝 도구를 호출하여 새 스토리지 볼륨을 만듭니다. 볼륨이 프로비저닝되면 Kubernetes가 PV를 자동으로 만듭니다.

다음 StatefulSet는 premium-rwo StorageClass를 참조하고 1기비바이트 볼륨을 프로비저닝합니다.

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: registry.k8s.io/nginx-slim:0.8
        volumeMounts:
        - name: www
          mountPath: /usr/share/nginx/html
  volumeClaimTemplates: # This is the specification in which you reference the StorageClass
  - metadata:
      name: www
    spec:
      accessModes: [ "ReadWriteOnce" ]
      resources:
        requests:
          storage: 1Gi
      storageClassName: premium-rwo # This field references the existing StorageClass

다음 단계