Halaman ini mencakup langkah-langkah pemecahan masalah untuk beberapa masalah dan error umum.
Instance GAGAL
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 Mengelola instance: Menghapus instance.
Waktu tunggu habis selama pemasangan dfuse atau pengujian jaringan
Jika, saat memasang instance Parallelstore, perintah dfuse -m
mengalami timeout;
atau jika perintah pengujian jaringan seperti self_test
atau daos health net-test
mengalami timeout, hal ini mungkin disebabkan oleh masalah konektivitas jaringan.
Untuk memverifikasi konektivitas ke server Parallelstore, jalankan
self_test --use-daos-agent-env -r 1
Jika pengujian melaporkan masalah koneksi, ada dua kemungkinan penyebabnya:
Agen DAOS mungkin telah memilih antarmuka jaringan yang salah selama penyiapan
Anda mungkin perlu mengecualikan antarmuka jaringan yang tidak dapat menjangkau IP dalam daftar access_points
.
Jalankan
ifconfig
untuk mencantumkan 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 bersifat spesifik untuk situasi Anda. Contoh:exclude_fabric_ifaces: ["docker0", "ens8", "lo"]
Mulai ulang daos_agent.
Alamat IP instance atau klien bertentangan dengan alamat IP internal
Instance dan klien Parallelstore tidak dapat menggunakan alamat IP dari rentang subnet 172.17.0.0/16. Lihat Masalah umum untuk mengetahui informasi selengkapnya.
ENOSPC
jika ada kapasitas yang tidak digunakan dalam instance
Jika instance Anda menggunakan striping minimum atau (default) seimbang, Anda mungkin mengalami error ENOSPC
meskipun file yang ada tidak menggunakan semua kapasitas instance. Hal ini kemungkinan 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 terjadinya 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 disebabkan oleh penghentian dfuse. Dalam sebagian besar kasus, dfuse dihentikan karena kehabisan memori. Gunakan anotasi Pod
gke-parallelstore/[cpu-limit|memory-limit]
untuk mengalokasikan lebih banyak resource ke
container sidecar Parallelstore. Anda dapat menetapkan
gke-parallelstore/memory-limit: "0"
untuk menghapus batasan memori sidecar
jika Anda tidak tahu berapa banyak 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 setelan permintaan dan batas resource container sidecar. Anda
harus menetapkan batas resource yang lebih besar secara eksplisit untuk container sidecar.
Setelah mengubah anotasi, Anda harus memulai ulang Pod workload. Menambahkan anotasi ke workload yang sedang berjalan tidak akan 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 umum pengaktifan driver CSI 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. Pod driver CSI memerlukan waktu beberapa menit agar berfungsi setelah operasi cluster.
Jika tidak, pastikan driver CSI diaktifkan di cluster Anda. Lihat bagian
Mengaktifkan driver CSI untuk mengetahui detailnya. Jika CSI diaktifkan,
setiap node akan menampilkan Pod bernama parallelstore-csi-node-id
yang aktif
dan berjalan.
Kegagalan AttachVolume.Attach
Setelah Pod dijadwalkan ke node, volume akan dilampirkan ke node dan Pod pemasang akan dibuat jika menggunakan pemasangan node.
Hal ini terjadi pada pengontrol dan melibatkan langkah AttachVolume dari attachdetach-controller.
Kode error | Peringatan peristiwa pod | Solusi |
InvalidArgument |
|
Flag pemasangan yang tidak valid diteruskan ke PersistentVolume atau StorageClass. Periksa opsi pemasangan dfuse yang didukung untuk mengetahui detail selengkapnya. |
NotFound |
|
Instance Parallelstore tidak ada. Pastikan volumeHandle PersistentVolume memiliki format yang benar. |
Kegagalan MountVolume.MountDevice
Setelah volume dilampirkan ke node, volume akan diatur ke node.
Hal ini terjadi di node dan melibatkan langkah MountVolume.MountDevice dari kubelet.
Kode error | Peringatan peristiwa pod | Solusi |
FailedPrecondition |
|
Error ini biasanya disebabkan oleh pod pemasang yang dihapus secara manual. Hapus semua workload yang menggunakan PVC dan deploy ulang. Tindakan ini akan membuat Pod pemasang baru. |
DeadlineExceeded |
|
Terjadi masalah saat menghubungkan ke instance Parallelstore. Pastikan jaringan VPC dan titik akses Anda dikonfigurasi dengan benar. |
Kegagalan MountVolume.SetUp
Setelah volume di-staging ke node, volume akan dipasang dan disediakan ke container di Pod. Hal ini terjadi di node dan melibatkan langkah MountVolume.SetUp di kubelet.
Dudukan pod
Kode error | Peringatan peristiwa pod | Solusi |
ResourceExhausted |
|
Proses dfuse berakhir, yang biasanya disebabkan oleh
kondisi kehabisan memori (OOM). Pertimbangkan untuk
meningkatkan batas memori container sidecar menggunakan anotasi
gke-parallelstore/memory-limit .
Jika Anda tidak yakin dengan jumlah memori yang ingin dialokasikan ke
parallelstore-sidecar, sebaiknya tetapkan
|
Dibatalkan |
|
Operasi pemasangan volume dibatalkan karena pembatasan kecepatan atau operasi yang ada. Peringatan ini normal dan bersifat sementara. |
InvalidArgument |
MountVolume.SetUp failed for volume "volume" : rpc
error: code = InvalidArgument desc =
|
Jika Anda memberikan argumen yang tidak valid di StorageClass atau PersistentVolume, 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 disuntikkan. Pastikan anotasi Pod gke-parallelstore/volumes: "true" disetel dengan benar.
|
Dudukan node
Kode error | Peringatan peristiwa pod | Solusi |
Dibatalkan |
|
Operasi pemasangan volume dibatalkan karena batas kecepatan atau operasi yang ada. Peringatan ini normal dan bersifat sementara. |
InvalidArgument |
MountVolume.SetUp failed for volume "volume" : rpc
error: code = InvalidArgument desc =
|
Jika Anda 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 = mounter pod expected to exist but was not found
|
Pod pemasang Parallelstore tidak ada. Jika Pod pemasang tidak sengaja dihapus, buat ulang semua workload untuk memicu pembuatan ulang. |
DeadlineExceeded |
MountVolume.SetUp failed for volume "volume" : rpc
error: code = DeadlineExceeded desc = timeout waiting for mounter pod gRPC server to become available
|
Server gRPC Pod pemasang tidak dimulai. Periksa log pod pemasang untuk menemukan error. |
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 Anda.
Lihat Kontrol akses dengan IAM untuk mengetahui petunjuk tentang 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
Rentang alamat IP habis
Pembuatan instance mungkin gagal dengan error rentang habis berikut:
ERROR: (gcloud.alpha.Parallelstore.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted
Jika Anda melihat pesan error ini, 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.
Pemeliharaan diblokir karena Anggaran Gangguan Pod yang ketat
Konsol Google Cloud mungkin menampilkan pesan error berikut yang menunjukkan bahwa pemeliharaan tidak dapat dilanjutkan karena Anggaran Disrupsi Pod (PDB) dikonfigurasi untuk mengizinkan nol penghapusan Pod:
GKE can't perform maintenance because the Pod Disruption Budget allows for 0 Pods evictions.
Jika Anda melihat pesan error ini, identifikasi Pod yang bermasalah dengan menyelesaikan langkah-langkah berikut:
Klik pesan error untuk membuka panel insight error.
Periksa bagian Unpermissive Pod Disruption Budgets untuk mengetahui nama Pod.
Jika Pod dalam status
parallelstorecsi-mount
, Anda dapat mengabaikan error ini karena tidak akan menghalangi pemeliharaan. Untuk Pod lainnya, periksa PDB Anda.