이벤트
3월 31일 오후 11시 - 4월 2일 오후 11시
가장 큰 패브릭, Power BI 및 SQL 학습 이벤트입니다. 3월 31일 ~ 4월 2일. 코드 FABINSIDER을 사용하여 $400를 절약합니다.
지금 등록Azure Container Storage는 기본적으로 컨테이너용으로 구축된 클라우드 기반 볼륨 관리, 배포 및 오케스트레이션 서비스입니다. 이 문서에서는 영구 볼륨의 특정 시점 스냅샷을 만들어 새 영구 볼륨 클레임으로 복원하는 방법을 보여줍니다.
먼저 볼륨 스냅샷 클래스를 만듭니다. 이를 통해 YAML 매니페스트 파일에서 볼륨 스냅샷 특성을 정의하여 지정할 수 있습니다. 다음 단계에 따라 Azure 디스크에 대한 볼륨 스냅샷 클래스를 만듭니다.
즐겨찾는 텍스트 편집기를 사용하여 code acstor-volumesnapshotclass.yaml
과 같은 YAML 매니페스트 파일을 만듭니다.
다음 코드를 붙여넣습니다. 볼륨 스냅샷 클래스 이름 값은 원하는 대로 지정할 수 있습니다.
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
name: csi-acstor-vsc
driver: containerstorage.csi.azure.com
deletionPolicy: Delete
parameters:
incremental: "true" # available values: "true", "false" ("true" by default for Azure Public Cloud, and "false" by default for Azure Stack Cloud)
YAML 매니페스트 파일을 적용하여 볼륨 스냅샷 클래스를 만듭니다.
kubectl apply -f acstor-volumesnapshotclass.yaml
만들기가 완료되면 다음과 같은 메시지가 표시됩니다.
volumesnapshotclass.snapshot.storage.k8s.io/csi-acstor-vsc created
kubectl get volumesnapshotclass
을(를) 실행하여 볼륨 스냅샷 클래스가 만들어졌는지 확인할 수도 있습니다. 다음과 같은 출력이 표시됩니다.
NAME DRIVER DELETIONPOLICY AGE
csi-acstor-vsc containerstorage.csi.azure.com Delete 11s
다음으로 기존 영구 볼륨 클레임의 스냅샷을 만들고 이전 단계에서 만든 볼륨 스냅샷 클래스를 적용합니다.
즐겨찾는 텍스트 편집기를 사용하여 code acstor-volumesnapshot.yaml
과 같은 YAML 매니페스트 파일을 만듭니다.
다음 코드를 붙여넣습니다. volumeSnapshotClassName
은(는) 이전 단계에서 만든 볼륨 스냅샷 클래스 이름이어야 합니다. persistentVolumeClaimName
의 경우 스냅샷을 만들려는 영구 볼륨 클레임의 이름을 사용합니다. 볼륨 스냅샷 이름 값은 원하는 대로 지정할 수 있습니다.
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: azuredisk-volume-snapshot
spec:
volumeSnapshotClassName: csi-acstor-vsc
source:
persistentVolumeClaimName: azurediskpvc
YAML 매니페스트 파일을 적용하여 볼륨 스냅샷을 만듭니다.
kubectl apply -f acstor-volumesnapshot.yaml
만들기가 완료되면 다음과 같은 메시지가 표시됩니다.
volumesnapshot.snapshot.storage.k8s.io/azuredisk-volume-snapshot created
kubectl get volumesnapshot
을(를) 실행하여 볼륨 스냅샷이 만들어졌는지 확인할 수도 있습니다. READYTOUSE
에서 true를 반환하면 다음 단계로 이동할 수 있습니다.
이제 볼륨 스냅샷을 데이터 원본으로 사용하는 새 영구 볼륨 클레임을 만들 수 있습니다.
즐겨찾는 텍스트 편집기를 사용하여 code acstor-pvc-restored.yaml
과 같은 YAML 매니페스트 파일을 만듭니다.
다음 코드를 붙여넣습니다. storageClassName
은(는) 원래 영구 볼륨을 만들 때 사용한 스토리지 클래스와 일치해야 합니다. 예를 들어 백 엔드 스토리지에 Azure 디스크 대신 임시 디스크(로컬 NVMe)를 사용했다면 storageClassName
을(를) acstor-ephemeraldisk
(으)로 변경합니다. 데이터 원본 이름 값의 경우 이전 단계에서 만든 볼륨 스냅샷 이름을 사용합니다. 영구 볼륨 클레임의 메타데이터 이름 값은 원하는 대로 지정할 수 있습니다.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-azuredisk-snapshot-restored
spec:
accessModes:
- ReadWriteOnce
storageClassName: acstor-azuredisk
resources:
requests:
storage: 100Gi
dataSource:
name: azuredisk-volume-snapshot
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.io
YAML 매니페스트 파일을 적용하여 PVC를 만듭니다.
kubectl apply -f acstor-pvc-restored.yaml
만들기가 완료되면 다음과 같은 메시지가 표시됩니다.
persistentvolumeclaim/pvc-azuredisk-snapshot-restored created
kubectl describe pvc pvc-azuredisk-snapshot-restored
을(를) 실행하여 영구 볼륨이 만들어졌는지 확인할 수도 있습니다. 보류 중 상태와 바인딩하기 전에 첫 고객이 생성되길 기다리는 중 메시지가 표시되어야 합니다.
팁
복원된 영구 볼륨 클레임을 이미 만들었고, yaml 파일을 다시 적용하여 오류를 수정하거나 변경하려는 경우 yaml 파일을 다시 적용하기 전에 먼저 이전 영구 볼륨 클레임을 삭제해야 합니다. kubectl delete pvc <pvc-name>
.
새 Pod를 만들기 전에 스냅샷을 만든 원래 Pod를 삭제하고 싶을 수 있습니다.
kubectl get pods
을(를) 실행하여 Pod를 나열합니다. 올바른 Pod를 삭제하고 있는지 확인합니다.kubectl delete pod <pod-name>
을(를) 실행합니다.다음으로 복원된 영구 볼륨 클레임을 사용하여 새 Pod를 만듭니다. 벤치마킹 및 워크로드 시뮬레이션에 Fio(유연한 I/O 테스터)를 사용하여 Pod를 만들고 영구 볼륨에 대한 탑재 경로를 지정합니다.
즐겨찾는 텍스트 편집기를 사용하여 code acstor-pod2.yaml
과 같은 YAML 매니페스트 파일을 만듭니다.
다음 코드를 붙여넣습니다. claimName
영구 볼륨 클레임은 사용자가 만든 복원된 스냅샷 영구 볼륨 클레임의 이름이어야 합니다. Pod의 메타데이터 이름 값은 원하는 대로 지정할 수 있습니다.
kind: Pod
apiVersion: v1
metadata:
name: fiopod2
spec:
nodeSelector:
acstor.azure.com/io-engine: acstor
volumes:
- name: diskpv
persistentVolumeClaim:
claimName: pvc-azuredisk-snapshot-restored
containers:
- name: fio
image: nixery.dev/shell/fio
args:
- sleep
- "1000000"
volumeMounts:
- mountPath: "/volume"
name: diskpv
YAML 매니페스트 파일을 적용하여 Pod를 배포합니다.
kubectl apply -f acstor-pod2.yaml
다음과 비슷한 결과가 나타나야 합니다.
pod/fiopod2 created
Pod가 실행 중이고 영구 볼륨 클레임이 Pod에 성공적으로 바인딩되었는지 확인합니다.
kubectl describe pod fiopod2
kubectl describe pvc pvc-azuredisk-snapshot-restored
fio 테스트를 확인하여 현재 상태를 알아봅니다.
kubectl exec -it fiopod2 -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
이제 복원된 영구 볼륨 클레임에서 새 Pod를 배포했으니 Kubernetes 워크로드에 사용할 수 있습니다.
이벤트
3월 31일 오후 11시 - 4월 2일 오후 11시
가장 큰 패브릭, Power BI 및 SQL 학습 이벤트입니다. 3월 31일 ~ 4월 2일. 코드 FABINSIDER을 사용하여 $400를 절약합니다.
지금 등록학습
모듈
Learn storage concepts that help you solve real problems with Windows containers running on Azure Kubernetes Service (AKS) and AKS Hybrid.
인증
Microsoft Certified: Azure for SAP Workloads Specialty - Certifications
Demonstrate planning, migration, and operation of an SAP solution on Microsoft Azure while you leverage Azure resources.