Memecahkan masalah error penyimpanan di Pencadangan untuk GKE


Halaman ini menjelaskan error terkait penyimpanan yang mungkin Anda alami saat menggunakan Pencadangan untuk GKE, hal-hal yang perlu dipertimbangkan saat melakukan tindakan, dan langkah-langkah cara memecahkan masalah.

Error 100010105: Gagal mencadangkan PersistentVolumeClaim - Disk yang dirujuk oleh PersistentVolume tidak ada

Error 100010105 terjadi saat upaya mencadangkan PersistentVolumeClaim gagal karena merujuk ke disk yang tidak ada, sehingga menghasilkan pesan error yang menyatakan Failed to backup PersistentVolumeClaim - Disk referenced by PersistentVolume does not exist.

Di Google Kubernetes Engine, PersistentVolumeClaims meminta penyimpanan dari PersistentVolumes. PersistentVolume, pada gilirannya, merepresentasikan bagian penyimpanan, sering kali Persistent Disk Compute Engine yang mendasarinya. Error dapat terjadi saat PersistentVolumeClaim terikat ke PersistentVolume dan konfigurasi PersistentVolume menentukan Persistent Disk Compute Engine. Namun, disk sebenarnya dengan nama dan lokasi yang ditentukan dalam konfigurasi PersistentVolume tidak dapat ditemukan di project Google Cloud Anda. Oleh karena itu, Pencadangan untuk GKE tidak dapat melanjutkan pencadangan disk yang tidak ada, dan terjadi kegagalan.

Untuk mengatasi error ini, gunakan petunjuk berikut:

  1. Identifikasi PersistentVolumeClaim dan PersistentVolume yang bermasalah. Nama PersistentVolumeClaim yang bermasalah dan PersistentVolume terkaitnya tercantum di kolom state reason pada operasi Backup for GKE yang gagal. Sebaiknya dokumentasikan nama PersistentVolumeClaim, namespace-nya, dan nama PersistentVolume.

  2. Periksa PersistentVolume. Untuk mendeskripsikan PersistentVolume, gunakan nama PersistentVolume yang Anda identifikasi dari kolom alasan status dalam perintah berikut:

    kubectl describe pv PERSISTENTVOLUME_NAME
    

    Ganti PERSISTENTVOLUME_NAME dengan nama PersistentVolume Anda.

  3. Pada output, periksa bagian source, khususnya di bagian csi. Bagian ini menjelaskan VolumeHandle yang coba dirujuk oleh PersistentVolume. Contoh:

    Source:
      Type: GCEPersistentDisk (a Persistent Disk resource in Google Compute Engine)
    PDName: my-non-existent-disk
    FSType: ext4
    Partition: 0
    ReadOnly: false
                In this example, the PD name is my-non-existent-disk.
    
        Source:
      Type:       CSI (a Container Storage Interface (CSI) volume)
      Driver:     pd.csi.storage.gke.io
      VolumeHandle: projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME
    ...
    

    Dalam contoh ini, VolumeHandle berisi jalur lengkap ke disk, termasuk nama dan lokasinya. Contoh, projects/my-gcp-project/zones/us-central1-a/disks/my-disk-name.

  4. Gunakan VolumeHandle yang diperoleh dari deskripsi PersistentVolume untuk mengidentifikasi nama dan zona disk.

  5. Verifikasi bahwa disk ada di project Google Cloud Anda menggunakan salah satu metode berikut:

    Disk zona

    Jika Anda menggunakan disk zonal, gunakan Google Cloud CLI untuk menjalankan perintah gcloud compute disks describe:

    gcloud compute disks describe DISK_NAME \
        --zone=ZONE_NAME \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • DISK_NAME: nama disk yang Anda peroleh dari deskripsi PersistentVolume.

    • ZONE_NAME: zona disk yang Anda dapatkan dari deskripsi PersistentVolume.

    • PROJECT_ID: ID project Google Cloud Anda.

    Disk regional

    Jika Anda menggunakan disk regional, gunakan Google Cloud CLI untuk menjalankan perintah gcloud compute disks describe:

    gcloud compute disks describe DISK_NAME \
        --region=REGION_NAME \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • DISK_NAME: nama disk yang Anda peroleh dari deskripsi PersistentVolume.

    • REGION_NAME: region disk yang Anda dapatkan dari deskripsi PersistentVolume.

    • PROJECT_ID: ID project Google Cloud Anda.

    Jika Anda mendapatkan pesan error Resource not found atau The resource DISK_NAME was not found, berarti disk tidak ada. Gunakan salah satu metode berikut untuk mengatasi masalah ini, bergantung pada skenario yang paling sesuai dengan kebutuhan Anda:

    • Jika disk tidak sengaja dihapus atau salah diberi nama dan Anda ingin menyimpan data atau PersistentVolumeClaim, atau PersistentVolume dikonfigurasi dengan nama disk yang salah, gunakan salah satu metode berikut untuk mengatasi masalah ini:

      • Pulihkan disk: jika Anda memiliki cadangan disk, pulihkan dengan nama dan lokasi yang sama persis dengan yang dirujuk oleh PersistentVolume.

      • Buat disk baru: jika memulihkan disk bukan opsi yang tersedia, buat disk baru dengan nama dan lokasi yang sama seperti yang ada dalam konfigurasi PersistentVolume.

    • Jika PersistentVolumeClaim atau PersistentVolume, data mereka, atau aplikasi tidak lagi diperlukan, sebaiknya hapus entitas yang tidak diperlukan:

      • Hapus PersistentVolumeClaim: hapus PersistentVolumeClaim menggunakan alat command line kubectl untuk menjalankan perintah kubectl delete pvc:
      kubectl delete pvc PVC_NAME -n NAMESPACE
      

      Ganti kode berikut:

      • PVC_NAME: nama PersistentVolumeClaim yang ingin Anda hapus.

      • NAMESPACE: namespace PersistentVolumeClaim yang ingin Anda hapus.

    • PersistentVolume masih ada setelah Anda menghapus PersistentVolumeClaim: jika PersistentVolumeReclaimPolicy PersistentVolume ditetapkan ke Delete, PersistentVolume akan otomatis dihapus saat PersistentVolumeClaim dihapus. Jika persistentVolumeReclaimPolicy disetel ke Retain, Anda harus menghapus PersistentVolume secara manual setelah PersistentVolumeClaim dihapus. Untuk menghapus PersistentVolume, gunakan alat command line kubectl untuk menjalankan perintah kubectl delete pv:

      kubectl delete pv PV_NAME
      

      Ganti PV_NAME dengan nama PersistentVolume yang ingin Anda hapus.

Jika operasi terus gagal, hubungi Cloud Customer Care untuk mendapatkan bantuan lebih lanjut.