참고

Volume Snapshots

Using volume snapshots  |  Google Kubernetes Engine (GKE)  |  Google Cloud

Volume snapshots이란?

특정 시점에서 PVC의 상태를 스냅 샷을 통해 그대로 보존시켜 추후 데이터 백업할 수 있는 기능

CSI Driver Enable시켜주기

참고: DISABLED 하고 싶으면 ENABLED대신 DISABLED을 써준다.

gcloud container clusters update CLUSTER-NAME \
   --update-addons=GcePersistentDiskCsiDriver=ENABLED

콘솔에서 해당 Cluster에서 확인

Untitled

CSI Driver가 enable되면 GKE는 자동으로 Storageclass를 설치한다. 아래 명령어로 확인해보자.

kubectl get sc

standard, premium, gold, enterprise 등의 class가 나온다.

Untitled

PersistentVolumeClaim, Deployment 생성

storageClassName: GKE는 자동으로 만든 Storageclass 중 standard-rwo를 사용한다.

kubectl apply -f - <<EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  storageClassName: standard-rwo
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
EOF
kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-app
spec:
  selector:
    matchLabels:
      app: hello-app
  template:
    metadata:
      labels:
        app: hello-app
    spec:
      containers:
      - name: hello-app
        image: google/cloud-sdk:slim
        args: [ "sleep", "3600" ]
        volumeMounts:
        - name: sdk-volume
          mountPath: /usr/share/hello/
      volumes:
      - name: sdk-volume
        persistentVolumeClaim:
          claimName: my-pvc
EOF

Test 파일 생성하기

Deployment를 통해 생성된 Pod내에 test파일을 추가해보자.