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
.
Jalankan
ifconfig
untuk menampilkan antarmuka jaringan yang tersedia. Contoh output dapat menampilkan beberapa antarmuka jaringan sepertieth0
,docker0
,ens8
,lo
, dll.Hentikan daos_agent.
Edit
/etc/daos/daos_agent.yml
untuk mengecualikan antarmuka jaringan yang tidak diinginkan. Hapus tanda komentar pada barisexclude_fabric_ifaces
dan perbarui nilainya. Entri yang Anda sertakan khusus untuk situasi Anda. Contoh:exclude_fabric_ifaces: ["docker0", "ens8", "lo"]
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 |
|
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
|
Dibatalkan |
|
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
atauroles/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:
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())" )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.