Pemecahan masalah

Halaman ini mencakup langkah-langkah pemecahan masalah untuk beberapa masalah dan error umum.

Instance FAILED

Status FAILED berarti data instance telah hilang dan instance harus dihapus.

Instance Parallelstore dalam status FAILED akan terus ditagih hingga dihapus.

Untuk mengambil status instance, ikuti petunjuk di Mengelola instance: Mengambil instance.

Untuk menghapus instance, baca artikel Mengelola instance: Menghapus instance.

Waktu tunggu habis selama pengujian jaringan atau pemasangan dfuse

Jika, saat memasang instance Parallelstore, waktu tunggu perintah dfuse -m habis; atau jika waktu tunggu perintah pengujian jaringan seperti self_test atau daos health net-test habis; agen DAOS mungkin telah memilih antarmuka jaringan yang salah selama penyiapan.

Untuk memverifikasi agen DAOS, jalankan

self_test --use-daos-agent-env -r 1

Jika pengujian melaporkan masalah koneksi, Anda mungkin perlu mengecualikan antarmuka jaringan yang tidak dapat menjangkau IP dalam daftar access_points.

  1. Jalankan ifconfig untuk menampilkan antarmuka jaringan yang tersedia. Contoh output dapat menampilkan beberapa antarmuka jaringan seperti eth0, docker0, ens8, lo, dll.

  2. Hentikan daos_agent.

  3. Edit /etc/daos/daos_agent.yml untuk mengecualikan antarmuka jaringan yang tidak diinginkan. Hapus tanda komentar pada baris exclude_fabric_ifaces dan perbarui nilainya. Entri yang Anda sertakan khusus untuk situasi Anda. Contoh:

    exclude_fabric_ifaces: ["docker0", "ens8", "lo"]
    
  4. Mulai ulang daos_agent.

ENOSPC jika ada kapasitas yang tidak digunakan di instance

Jika instance Anda menggunakan striping seimbang minimum atau (default), Anda mungkin mengalami error ENOSPC meskipun file yang ada tidak menggunakan semua kapasitas instance. Hal ini mungkin terjadi saat menulis file besar yang umumnya lebih besar dari 8 GiB, atau saat mengimpor file tersebut dari Cloud Storage.

Gunakan striping file maksimum untuk mengurangi kemungkinan error ini.

Pemecahan masalah Google Kubernetes Engine

Bagian berikut mencantumkan beberapa masalah umum dan langkah-langkah untuk mengatasinya.

Transport endpoint is not connected di Pod workload

Error ini terjadi karena penghentian dfuse. Pada umumnya, dfuse dihentikan karena kehabisan memori. Gunakan anotasi Pod gke-parallelstore/[cpu-limit|memory-limit] untuk mengalokasikan lebih banyak resource ke penampung sidecar Parallelstore. Anda dapat menetapkan gke-parallelstore/memory-limit: "0" untuk menghapus batasan memori sidecar jika tidak tahu jumlah memori yang ingin dialokasikan untuknya. Perhatikan bahwa hal ini hanya berfungsi dengan cluster Standard; dengan cluster Autopilot, Anda tidak dapat menggunakan nilai 0 untuk membatalkan penetapan batas dan permintaan resource penampung sidecar. Anda harus menetapkan batas resource yang lebih besar secara eksplisit untuk penampung sidecar.

Setelah mengubah anotasi, Anda harus memulai ulang Pod workload. Menambahkan anotasi ke workload yang sedang berjalan tidak mengubah alokasi resource secara dinamis.

Peringatan peristiwa pod

Jika Pod beban kerja Anda tidak dapat dimulai, periksa peristiwa Pod:

kubectl describe pod POD_NAME -n NAMESPACE

Solusi berikut adalah untuk error umum.

Masalah pengaktifan driver CSI

Error pengaktifan driver CSI yang umum adalah sebagai berikut:

MountVolume.MountDevice failed for volume "volume" : kubernetes.io/csi:
attacher.MountDevice failed to create newCsiDriverClient:
driver name parallelstore.csi.storage.gke.io not found in the list of registered CSI drivers
MountVolume.SetUp failed for volume "volume" : kubernetes.io/csi:
mounter.SetUpAt failed to get CSI client:
driver name parallelstore.csi.storage.gke.io not found in the list of registered CSI drivers

Peringatan ini menunjukkan bahwa driver CSI tidak diaktifkan, atau tidak berjalan.

Jika cluster Anda baru saja diskalakan, diupdate, atau diupgrade, peringatan ini normal dan bersifat sementara. Perlu waktu beberapa menit agar Pod driver CSI dapat berfungsi setelah operasi cluster.

Jika tidak, pastikan driver CSI diaktifkan di cluster Anda. Lihat Mengaktifkan driver CSI untuk mengetahui detailnya. Jika CSI diaktifkan, setiap node akan menampilkan Pod bernama parallelstore-csi-node-id yang aktif dan berjalan.

Kegagalan MountVolume.SetUp

Kode error Peringatan peristiwa pod Solusi
ResourceExhausted
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = ResourceExhausted desc = the sidecar container failed with error: signal: killed
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = ResourceExhausted desc = the sidecar container terminated due to OOMKilled, exit code: 137
Proses dfuse dihentikan, yang biasanya disebabkan oleh OOM. Pertimbangkan untuk meningkatkan batas memori penampung sidecar menggunakan anotasi gke-parallelstore/memory-limit.

Jika Anda tidak yakin dengan jumlah memori yang ingin dialokasikan ke sidecar parallelstore, sebaiknya tetapkan gke-parallelstore/memory-limit: "0" untuk menghilangkan batasan memori yang diberlakukan oleh Parallelstore.

Dibatalkan
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = Aborted desc = NodePublishVolume request is aborted due to rate limit
  • MountVolume.SetUp failed for volume "volume" : rpc error: code = Aborted desc = An operation with the given volume key key already exists
Operasi pemasangan volume dibatalkan karena batas kapasitas atau operasi yang ada. Peringatan ini normal dan seharusnya bersifat sementara.
InvalidArgument MountVolume.SetUp failed for volume "volume" : rpc error: code = InvalidArgument desc = Jika Anda telah memberikan argumen yang tidak valid di StorageClass atau Volume Persisten, log error akan menunjukkan kolom dengan argumen yang tidak valid. Untuk penyediaan dinamis, periksa Storage Class. Untuk penyediaan statis, periksa Volume Persisten.
FailedPrecondition MountVolume.SetUp failed for volume "volume" : rpc error: code = FailedPrecondition desc = can not find the sidecar container in Pod spec Penampung sidecar Parallelstore tidak dimasukkan. Pastikan anotasi Pod gke-parallelstore/volumes: "true" ditetapkan dengan benar.

Memecahkan masalah jaringan VPC

Izin ditolak untuk menambahkan peering untuk layanan servicenetworking.googleapis.com

ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have 
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.

Error ini berarti Anda tidak memiliki izin IAM servicenetworking.services.addPeering di akun pengguna.

Lihat Kontrol akses dengan IAM untuk mengetahui petunjuk cara menambahkan salah satu peran berikut ke akun Anda:

  • roles/compute.networkAdmin atau
  • roles/servicenetworking.networksAdmin

Tidak dapat memodifikasi rentang yang dialokasikan di CreateConnection

ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection.

Error ini ditampilkan saat Anda telah membuat peering VPC di jaringan ini dengan rentang IP yang berbeda. Ada dua solusi yang memungkinkan:

Ganti rentang IP yang ada:

gcloud services vpc-peerings update \
  --network=NETWORK_NAME \
  --ranges=IP_RANGE_NAME \
  --service=servicenetworking.googleapis.com \
  --force

Atau, tambahkan rentang IP baru ke koneksi yang ada:

  1. Ambil daftar rentang IP yang ada untuk peering:

    EXISTING_RANGES=$(
      gcloud services vpc-peerings list \
        --network=NETWORK_NAME \
        --service=servicenetworking.googleapis.com \
        --format="value(reservedPeeringRanges.list())"
    )
    
  2. Kemudian, tambahkan rentang baru ke peering:

    gcloud services vpc-peerings update \
      --network=NETWORK_NAME \
      --ranges=$EXISTING_RANGES,IP_RANGE_NAME \
      --service=servicenetworking.googleapis.com
    

Kehabisan rentang alamat IP

Masalah: Pembuatan instance gagal dengan error rentang habis:

ERROR: (gcloud.alpha.Parallelstore.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted

Solusi: Ikuti panduan VPC untuk membuat ulang rentang IP atau memperluas rentang IP yang ada.

Jika membuat ulang instance Parallelstore, Anda harus membuat ulang rentang IP, bukan memperluasnya.