Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Azure Container Storage, kapsayıcılar için oluşturulmuş bulut tabanlı bir birim yönetimi, dağıtımı ve düzenleme hizmetidir. Bu makalede, kalıcı birimin belirli bir zamandaki anlık görüntüsünün nasıl alınacağı ve yeni bir kalıcı birim talebi (PVC) ile nasıl geri yükleneceği gösterilmektedir.
Sınırlamalar
Yerel NVMe geçici diskleri arkadaki depolama olarak kullandığınızda birim anlık görüntüleri desteklenmez.
Önkoşullar
Eğer bir Azure aboneliğiniz yoksa, başlamadan önce ücretsiz bir hesap oluşturun.
Bu makale, Azure CLI sürüm v2.83.0 veya üzerini gerektirir. Daha fazla bilgi için bkz. Azure CLI'yi yükleme. Sorunlar meydana gelirse
aks-previewgibi uzantıları devre dışı bırakın. Uzantıları gerektiği gibi yükleyin veya güncelleştirin:az extension add --upgrade --name k8s-extension-
az extension add --upgrade --name elastic-san(Yalnızca elastik SAN)
Kubernetes komut satırı istemcisine ihtiyacınız vardır.
kubectlAzure Cloud Shell kullanıyorsanız zaten yüklüdür. komutunu çalıştırarakaz aks install-cliyerel olarak yükleyebilirsiniz.Hedef bölgenizin Azure Container Storage bölgelerinde desteklenip desteklenmediğini denetleyin.
- Bu makalede, Azure Kubernetes Service (AKS) kümenize Azure Container Storage yüklediğiniz ve Azure Elastic SAN kullanarak bir PVC oluşturduğunuz varsayılır.
Birim anlık görüntüsü sınıfı oluşturun
Hacim anlık görüntüsü sınıfı bazı anlık görüntü ayarlarını tanımlar. Elastik SAN için birim anlık görüntü sınıfı oluşturmak için bu adımları izleyin.
gibi
acstor-volumesnapshotclass.yamlbir YAML bildirim dosyası oluşturun.Aşağıdaki kodu yapıştırın. Anlık görüntü birimi sınıfı
namedeğeri herhangi bir değer olabilir.apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: elasticsan-snapshot-class driver: san.csi.azure.com deletionPolicy: DeleteBirim anlık görüntüsü sınıfını oluşturmak için manifest dosyasını uygulayın.
kubectl apply -f acstor-volumesnapshotclass.yamlOluşturma tamamlandığında aşağıdaki gibi bir ileti görürsünüz:
volumesnapshotclass.snapshot.storage.k8s.io/elasticsan-snapshot-class createdAyrıca, oluşturma işlemini onaylamak için komutunu çalıştırabilirsiniz
kubectl get volumesnapshotclass. Bu örneğe benzer bir çıktı görmeniz gerekir:NAME DRIVER DELETIONPOLICY AGE elasticsan-snapshot-class san.csi.azure.com Delete 11s
Birim anlık görüntüsü oluştur.
Ardından, mevcut bir PVC'nin anlık görüntüsünü oluşturun ve önceki adımda oluşturduğunuz birim anlık görüntüsü sınıfını uygulayın.
gibi
acstor-volumesnapshot.yamlbir YAML bildirim dosyası oluşturun.Aşağıdaki kodu yapıştırın.
volumeSnapshotClassNameolarak önceki adımda oluşturduğunuz birim anlık görüntü sınıfının adını ayarla. Anlık görüntü almak istediğiniz PVC'nin adına ayarlayınpersistentVolumeClaimName. Hacim anlık görüntünamedeğeri herhangi bir değer olabilir.apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: elasticsan-volume-snapshot spec: volumeSnapshotClassName: elasticsan-snapshot-class source: persistentVolumeClaimName: elasticsanpvcBirim anlık görüntüsünü oluşturmak için manifest dosyasını uygulayın.
kubectl apply -f acstor-volumesnapshot.yamlOluşturma tamamlandığında aşağıdaki gibi bir ileti görürsünüz:
volumesnapshot.snapshot.storage.k8s.io/elasticsan-volume-snapshot createdBirim anlık görüntüsünün oluşturulup oluşturulmadığını kontrol etmek için
kubectl get volumesnapshotkomutunu da çalıştırabilirsiniz. EğerREADYTOUSEtrueise, sonraki adıma geçebilirsiniz.
Geri yüklenen kalıcı birim talebi oluşturma
Birim anlık görüntüsünü veri kaynağı olarak kullanan yeni bir PVC oluşturun.
gibi
acstor-pvc-restored.yamlbir YAML bildirim dosyası oluşturun.Aşağıdaki kodu yapıştırın. ,
storageClassNameözgün PVC'yi oluştururken kullandığınız StorageClass ile eşleşmelidir. Veri kaynağınamedeğeri için, önceki adımda oluşturduğunuz birim anlık görüntüsünün adını kullanın. PVCmetadata.namedeğeri herhangi bir değer olabilir.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-elasticsan-snapshot-restored spec: accessModes: - ReadWriteOnce storageClassName: azuresan-csi resources: requests: storage: 100Gi dataSource: name: elasticsan-volume-snapshot kind: VolumeSnapshot apiGroup: snapshot.storage.k8s.ioPVC'yi oluşturmak için manifesti uygulayın.
kubectl apply -f acstor-pvc-restored.yamlOluşturma tamamlandığında aşağıdaki gibi bir ileti görürsünüz:
persistentvolumeclaim/pvc-elasticsan-snapshot-restored createdKalıcı birimin oluşturulup oluşturulmadığını denetlemek için komutunu da çalıştırabilirsiniz
kubectl describe pvc pvc-elasticsan-snapshot-restored. Durum, bağlamadan önce ilk tüketicinin oluşturulmasını beklediğini belirten bir iletiyle Beklemede olarak gösterilir.
İpucu
Bir hatayı düzeltmek veya değişiklik yapmak için YAML dosyasını yeniden uygulamanız gerekiyorsa, önce eski PVC'yi silin: kubectl delete pvc <pvc-name>.
Özgün podu silme (isteğe bağlı)
Yeni bir pod oluşturmadan önce, anlık görüntüyü oluşturduğunuz özgün podu silebilirsiniz.
- Podları listelemek için komutunu çalıştırın
kubectl get pods. Doğru podu sildiğinizden emin olun. - Pod'u silmek için komutunu çalıştırın
kubectl delete pod <pod-name>.
Geri yüklenen anlık görüntüyü kullanarak yeni pod oluşturma
Geri yüklenen PVC'yi kullanarak yeni bir pod oluşturun. Karşılaştırma ve iş yükü benzetimi için Esnek G/Ç Test Aracı (fio) kullanarak pod oluşturun ve kalıcı birim için bağlama yolu belirleyin.
gibi
fio-pod-restore.yamlbir YAML bildirim dosyası oluşturun.Aşağıdaki kodu yapıştırın. Kalıcı birim talebi
claimName, oluşturduğunuz geri yüklenen PVC'nin adı olmalıdır. Podmetadata.namedeğeri herhangi bir değer olabilir.apiVersion: v1 kind: Pod metadata: name: fio-restore spec: volumes: - name: iscsi-volume persistentVolumeClaim: claimName: pvc-elasticsan-snapshot-restored containers: - name: fio image: nixery.dev/shell/fio volumeMounts: - mountPath: /volume name: iscsi-volumePodu dağıtmak için bildirimi uygulayın.
kubectl apply -f fio-pod-restore.yamlBu örneğe benzer bir çıktı görmeniz gerekir:
pod/fio-restore createdPod'un çalışıp çalışmadığını ve PVC'nin bağlı olup olmadığını denetleyin:
kubectl describe pod fio-restore kubectl describe pvc pvc-elasticsan-snapshot-restoredGeçerli durumunu görmek için fio testini denetleyin:
kubectl exec -it fio-restore -- fio --name=benchtest --size=800m --filename=/volume/test --direct=1 --rw=randrw --ioengine=libaio --bs=4k --iodepth=16 --numjobs=8 --time_based --runtime=60
Artık geri yüklenen PVC'yi kullanan bir podunuz var ve bunu Kubernetes iş yükleriniz için kullanabilirsiniz.