Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara memindahkan volume persisten Azure Disk dengan aman dari satu kluster Azure Kubernetes Service (AKS) ke kluster lain dalam langganan yang sama atau dalam langganan yang berbeda. Langganan target harus berada di wilayah yang sama.
Urutan langkah-langkah untuk menyelesaikan pemindahan ini adalah:
- Untuk menghindari kehilangan data, konfirmasikan bahwa status sumber daya Azure Disk pada kluster AKS sumber tidak dalam status Terlampir .
- Pindahkan sumber daya Azure Disk ke grup sumber daya target dalam langganan yang sama atau langganan yang berbeda.
- Validasi bahwa pemindahan sumber daya Azure Disk berhasil.
- Buat volume persisten (PV) dan klaim volume persisten (PVC) lalu pasang disk yang dipindahkan sebagai volume pada pod pada kluster target.
Sebelum Anda mulai
- Pastikan Anda memiliki Azure CLI versi 2.0.59 atau yang lebih baru yang diinstal dan dikonfigurasi. Jalankan
az --versionuntuk mencari tahu versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI. - Tinjau detail dan persyaratan tentang memindahkan sumber daya antar wilayah yang berbeda di Memindahkan sumber daya ke grup sumber daya atau langganan baru. Pastikan untuk meninjau daftar periksa sebelum memindahkan sumber daya di artikel tersebut.
- Kluster sumber harus memiliki satu atau beberapa volume persisten dengan Azure Disk yang terpasang.
- Anda harus memiliki kluster AKS pada langganan yang ditargetkan.
Memeriksa status volume disk
Penting untuk menghindari risiko kerusakan data, inkonsistensi, atau kehilangan data saat bekerja dengan volume persisten. Untuk mengurangi risiko ini selama proses migrasi atau pemindahan, Anda harus terlebih dahulu memverifikasi bahwa volume disk tidak terpasang dengan melakukan langkah-langkah berikut.
Identifikasi grup sumber daya simpul tersebut yang menghosting disk terkelola Azure menggunakan perintah
az aks showdan tambahkan parameter--query nodeResourceGroup.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsvOutput perintah menyerupai contoh berikut:
MC_myResourceGroup_myAKSCluster_eastusCantumkan disk terkelola menggunakan
az disk listperintah . Referensikan grup sumber daya yang dikembalikan di langkah sebelumnya.az disk list --resource-group MC_myResourceGroup_myAKSCluster_eastusTinjau daftar dan catat volume disk mana yang Anda rencanakan untuk dipindahkan ke kluster lain. Validasi juga status disk dengan mencari properti
diskState. Hasil perintah merupakan contoh ringkas.{ "LastOwnershipUpdateTime": "2023-04-25T15:09:19.5439836+00:00", "creationData": { "createOption": "Empty", "logicalSectorSize": 4096 }, "diskIOPSReadOnly": 3000, "diskIOPSReadWrite": 4000, "diskMBpsReadOnly": 125, "diskMBpsReadWrite": 1000, "diskSizeBytes": 1073741824000, "diskSizeGB": 1000, "diskState": "Unattached",Catatan
Perhatikan nilai
resourceGroupbidang untuk setiap disk yang ingin Anda pindahkan dari output di atas. Grup sumber daya ini adalah grup sumber daya simpul, bukan grup sumber daya kluster. Anda akan memerlukan nama grup sumber daya ini untuk memindahkan disk.Jika
diskStatemenunjukkanAttached, pertama-tama tentukan apakah ada beban kerja yang masih mengakses volume dan menghentikannya. Setelah jangka waktu tertentu, status disk mengembalikan statusUnattacheddan kemudian dapat dipindahkan.
Memindahkan volume penyimpanan persisten
Untuk memindahkan volume atau volume persisten ke kluster AKS lain, ikuti langkah-langkah yang dijelaskan dalam Memindahkan sumber daya Azure ke grup sumber daya atau langganan baru. Anda dapat menggunakan portal Azure, Azure PowerShell, atau menggunakan Azure CLI untuk melakukan migrasi.
Selama proses ini, Anda mereferensikan:
- Nama atau ID sumber daya dari grup sumber daya node asal yang menghosting disk terkelola Azure. Anda dapat menemukan nama grup sumber daya node dengan menavigasi ke dasbor Disk di portal Azure dan mencatat grup sumber daya yang terkait untuk disk Anda.
- Nama atau ID sumber daya dari grup sumber daya tujuan untuk memindahkan disk terkelola.
- Nama atau ID sumber daya dari disk terkelola.
Catatan
Karena dependensi antara penyedia sumber daya, operasi ini dapat memakan waktu hingga empat jam untuk diselesaikan.
Verifikasi bahwa volume disk telah dipindahkan
Setelah memindahkan volume disk ke grup sumber daya kluster target, validasi sumber daya dalam daftar grup sumber daya menggunakan az disk list perintah . Referensikan grup sumber daya tujuan tempat sumber daya dipindahkan. Dalam contoh ini, disk dipindahkan ke grup sumber daya bernama MC_myResourceGroup_myAKSCluster_eastus.
az disk list --resource-group MC_myResourceGroup_myAKSCluster_eastus
Memasang disk yang dipindahkan sebagai volume
Untuk memasang volume disk yang dipindahkan, buat volume persisten statis dengan ID sumber daya yang disalin di langkah-langkah sebelumnya, klaim volume persisten, dan dalam contoh ini, sebuah pod sederhana.
Buat file pv-azuredisk.yaml dengan volume persisten. Perbarui bidang volumeHandle dengan ID sumber daya disk dari langkah sebelumnya.
apiVersion: v1 kind: PersistentVolume metadata: name: pv-azuredisk spec: capacity: storage: 10Gi accessModes: - ReadWriteOnce persistentVolumeReclaimPolicy: Retain storageClassName: managed-csi csi: driver: disk.csi.azure.com readOnly: false volumeHandle: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/MC_rg_azure_aks-pvc-target_eastus/providers/Microsoft.Compute/disks/pvc-aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e volumeAttributes: fsType: ext4Buat file pvc-azuredisk.yaml dengan PersistentVolumeClaim yang menggunakan PersistentVolume.
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-azuredisk spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi volumeName: pv-azuredisk storageClassName: managed-csiBuat PersistentVolume dan PersistentVolumeClaim menggunakan perintah
kubectl applydan referensikan dua file YAML yang Anda buat.kubectl apply -f pv-azuredisk.yaml kubectl apply -f pvc-azuredisk.yamlVerifikasi bahwa PersistentVolumeClaim Anda dibuat dan terikat ke PersistentVolume menggunakan perintah
kubectl get.kubectl get pvc pvc-azurediskOutput perintah menyerupai contoh berikut:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-azuredisk Bound pv-azuredisk 20Gi RWO 5sUntuk mereferensikan PersistentVolumeClaim Anda, buat file azure-disk-pod.yaml. Dalam contoh manifes, nama pod adalah mypod.
apiVersion: v1 kind: Pod metadata: name: mypod spec: nodeSelector: kubernetes.io/os: linux containers: - image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine name: mypod resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - name: azure mountPath: /mnt/azure volumes: - name: azure persistentVolumeClaim: claimName: pvc-azurediskTerapkan konfigurasi dan pasang volume dengan menggunakan perintah kubectl apply.
kubectl apply -f azure-disk-pod.yamlPeriksa status pod dan data yang dimigrasikan dengan volume yang dipasang di dalam sistem file pod pada
/mnt/azure. Pertama, dapatkan status pod menggunakankubectl getperintah .kubectl get podsOutput perintah menyerupai contoh berikut:
NAME READY STATUS RESTARTS AGE mypod 1/1 Running 0 4m1sVerifikasi data di dalam volume yang dipasang
/mnt/azuremenggunakan perintahkubectl exec.kubectl exec -it mypod -- ls -l /mnt/azure/Output perintah menyerupai contoh berikut:
total 28 -rw-r--r-- 1 root root 0 Jan 11 10:09 file-created-in-source-aks
Langkah berikutnya
- Untuk informasi selengkapnya tentang solusi penyimpanan berbasis disk, lihat Solusi berbasis disk di AKS.
- Untuk informasi selengkapnya tentang praktik terbaik penyimpanan, lihat Praktik terbaik untuk penyimpanan dan pencadangan di Azure Kubernetes Service.