Mendeteksi masalah kesehatan simpul dengan agen pemantauan simpul EKS - Amazon EKS

Bantu tingkatkan halaman ini

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mendeteksi masalah kesehatan simpul dengan agen pemantauan simpul EKS

Topik ini merinci masalah kesehatan simpul yang terdeteksi oleh agen pemantau simpul EKS, bagaimana masalah tersebut muncul sebagai kondisi atau peristiwa node, dan cara mengonfigurasi agen pemantauan node.

Agen pemantauan simpul EKS dapat digunakan dengan atau tanpa perbaikan simpul otomatis EKS. Untuk informasi lebih lanjut tentang perbaikan node otomatis EKS, lihatSecara otomatis memperbaiki node di kluster EKS.

Kode sumber untuk agen pemantauan simpul EKS dipublikasikan GitHub di aws/ eks-node-monitoring-agent repositori.

Masalah kesehatan simpul

Tabel berikut menjelaskan masalah kesehatan simpul yang dapat dideteksi oleh agen pemantauan node. Ada dua jenis masalah:

  • Kondisi — Masalah terminal yang menjamin tindakan remediasi seperti penggantian instance atau reboot. Ketika perbaikan otomatis diaktifkan, Amazon EKS akan melakukan tindakan perbaikan, baik sebagai penggantian node atau reboot. Untuk informasi selengkapnya, lihat Kondisi simpul.

  • Event — Masalah sementara atau konfigurasi node sub-optimal. Tidak ada tindakan perbaikan otomatis yang akan terjadi. Untuk informasi selengkapnya, lihat Peristiwa simpul.

AcceleratedHardware masalah kesehatan simpul

Kondisi pemantauan adalah AcceleratedHardwareReady untuk masalah dalam tabel berikut yang memiliki tingkat keparahan “Kondisi”. Peristiwa dan kondisi dalam tabel di bawah ini adalah untuk masalah kesehatan node terkait NVIDIA dan Neuron.

Nama Kepelikan Deskripsi Tindakan Perbaikan

DCGMDiagnosticKegagalan

Kondisi

Kasus uji dari rangkaian uji diagnostik aktif DCGM gagal.

Tidak ada

DCGMError

Kondisi

Koneksi ke proses host DCGM terputus atau tidak dapat dibuat.

Tidak ada

DCGMFieldKesalahan [Kode]

Peristiwa

DCGM mendeteksi degradasi GPU melalui pengenal bidang.

Tidak ada

DCGMHealthKode [Kode]

Peristiwa

Pemeriksaan kesehatan DCGM gagal dengan cara yang tidak fatal.

Tidak ada

DCGMHealthKode [Kode]

Kondisi

Pemeriksaan kesehatan DCGM gagal secara fatal.

Tidak ada

Neuron DMAError

Kondisi

Mesin DMA mengalami kesalahan yang tidak dapat dipulihkan.

Ganti

HBMUncorrectableKesalahan Neuron

Kondisi

HBM mengalami kesalahan yang tidak dapat diperbaiki dan menghasilkan hasil yang salah.

Ganti

NCUncorrectableKesalahan Neuron

Kondisi

Kesalahan memori Neuron Core yang tidak dapat diperbaiki terdeteksi.

Ganti

SRAMUncorrectableKesalahan Neuron

Kondisi

SRAM on-chip mengalami kesalahan paritas dan menghasilkan hasil yang salah.

Ganti

NvidiaDeviceCountMismatch

Peristiwa

Jumlah yang GPUs terlihat melalui NVMLtidak konsisten dengan jumlah perangkat NVIDIA pada sistem file.

Tidak ada

NvidiaDoubleBitError

Kondisi

Kesalahan bit ganda dihasilkan oleh driver GPU.

Ganti

Nvidia NCCLError

Peristiwa

Segfault terjadi di perpustakaan NVIDIA Collective Communications (libnccl).

Tidak ada

NVLinkKesalahan Nvidia

Kondisi

NVLink kesalahan dilaporkan oleh driver GPU.

Ganti

PCIeKesalahan Nvidia

Peristiwa

PCIe tayangan ulang dipicu untuk pulih dari kesalahan transmisi.

Tidak ada

NvidiaPageRetirement

Peristiwa

Pengemudi GPU telah menandai halaman memori untuk pensiun. Ini dapat terjadi jika ada kesalahan bit ganda tunggal atau dua kesalahan bit tunggal ditemui di alamat yang sama.

Tidak ada

NvidiaPowerError

Peristiwa

Pemanfaatan daya GPUs melanggar ambang batas yang diizinkan.

Tidak ada

NvidiaThermalError

Peristiwa

Status termal GPUs melanggar ambang batas yang diizinkan.

Tidak ada

Kesalahan NvidiaXid [Kode]

Kondisi

Terjadi kesalahan GPU kritis.

Ganti atau Reboot

Peringatan NvidiaXid [Kode]

Peristiwa

Terjadi kesalahan GPU non-kritis.

Tidak ada

Kode kesalahan NVIDIA XID

Agen pemantauan node mendeteksi kesalahan NVIDIA XID dari log kernel GPU. Kesalahan XID terbagi dalam dua kategori:

  • Kode XID terkenal — Kesalahan kritis yang mengatur kondisi node (AcceleratedHardwareReady=False) dan memicu perbaikan otomatis saat diaktifkan. Format kode alasannya adalahNvidiaXID[Code]Error. Kode XID terkenal yang dideteksi agen pemantau simpul EKS mungkin tidak mewakili daftar lengkap kode NVIDIA XID yang memerlukan tindakan perbaikan.

  • Kode XID tidak dikenal — Logging sebagai event Kubernetes saja. Ini tidak memicu perbaikan otomatis. Format kode alasannya adalahNvidiaXID[Code]Warning. Untuk menyelidiki kesalahan XID yang tidak diketahui, tinjau log kernel Anda dengandmesg | grep -i nvrm.

Untuk informasi selengkapnya tentang kesalahan XID, lihat Kesalahan Xid di Deployment GPU NVIDIA dan Dokumentasi Manajemen. Untuk informasi selengkapnya tentang pesan XID individual, lihat Memahami Pesan Xid di Dokumentasi Penerapan dan Manajemen GPU NVIDIA.

Tabel berikut mencantumkan kode XID yang terkenal, artinya, dan tindakan perbaikan node default jika diaktifkan.

Kode XID Deskripsi Tindakan Perbaikan

13

Pengecualian Mesin Grafis — Terjadi kesalahan mesin grafis GPU, biasanya disebabkan oleh masalah perangkat lunak atau bug driver.

Boot ulang

31

Kesalahan halaman memori GPU — Aplikasi mencoba mengakses memori GPU yang tidak dipetakan atau dapat diakses.

Boot ulang

48

Kesalahan ECC Bit Ganda - Kesalahan bit ganda yang tidak dapat diperbaiki terjadi dalam memori GPU, yang menunjukkan potensi degradasi perangkat keras.

Boot ulang

63

Acara pemetaan ulang memori GPU - Driver GPU memetakan ulang sebagian memori GPU karena kesalahan yang terdeteksi. Ini sering dapat dipulihkan.

Boot ulang

64

Kegagalan pemetaan ulang memori GPU - GPU tidak dapat memetakan ulang memori yang rusak, menunjukkan masalah perangkat keras.

Boot ulang

74

NVLink Kesalahan - Terjadi kesalahan pada NVLink interkoneksi berkecepatan tinggi antara GPUs.

Ganti

79

GPU telah jatuh dari bus — GPU tidak lagi dapat diakses melalui PCIe, biasanya menunjukkan kegagalan perangkat keras atau masalah daya.

Ganti

94

Kesalahan memori yang terkandung — Terjadi kesalahan memori tetapi terkandung dan tidak mempengaruhi aplikasi lain.

Boot ulang

95

Kesalahan memori yang tidak terkendali — Terjadi kesalahan memori yang mungkin memengaruhi aplikasi atau memori sistem lain.

Boot ulang

119

GSP RPC Timeout — Komunikasi dengan Prosesor Sistem GPU habis waktu, mungkin karena masalah firmware.

Ganti

120

Kesalahan GSP - Terjadi kesalahan pada Prosesor Sistem GPU.

Ganti

121

Kesalahan C2C - Terjadi kesalahan pada chip-to-chip interkoneksi (digunakan dalam multi-die). GPUs

Ganti

140

ECC Unrecover Error - Kesalahan ECC lolos dari penahanan dan mungkin memiliki data yang rusak.

Ganti

Untuk melihat kondisi node saat ini yang terkait dengan kesehatan GPU, jalankan perintah berikut.

kubectl get nodes -o custom-columns='NAME:.metadata.name,ACCELERATOR_READY:.status.conditions[?(@.type=="AcceleratedHardwareReady")].status,REASON:.status.conditions[?(@.type=="AcceleratedHardwareReady")].reason'

Untuk melihat peristiwa terkait XID di cluster Anda, jalankan salah satu perintah berikut.

kubectl get events | grep -i "NvidiaXID"

ContainerRuntime masalah kesehatan simpul

Kondisi pemantauan adalah ContainerRuntimeReady untuk masalah dalam tabel berikut yang memiliki tingkat keparahan “Kondisi”.

Nama Kepelikan Deskripsi Tindakan Perbaikan

ContainerRuntimeFailed

Peristiwa

Runtime container gagal membuat container, kemungkinan terkait dengan masalah yang dilaporkan jika terjadi berulang kali.

Tidak ada

DeprecatedContainerdConfiguration

Peristiwa

Gambar kontainer menggunakan manifes gambar usang versi 2, skema 1 baru-baru ini ditarik ke node melalui. containerd

Tidak ada

KubeletFailed

Peristiwa

Kubelet memasuki keadaan gagal.

Tidak ada

LivenessProbeFailures

Peristiwa

Kegagalan probe keaktifan terdeteksi, berpotensi menunjukkan masalah kode aplikasi atau nilai batas waktu yang tidak mencukupi jika terjadi berulang kali.

Tidak ada

PodStuckTerminating

Kondisi

Sebuah Pod sedang atau macet terminating untuk waktu yang berlebihan, yang dapat disebabkan oleh kesalahan CRI yang mencegah perkembangan status pod.

Ganti

ReadinessProbeFailures

Peristiwa

Kegagalan probe kesiapan terdeteksi, berpotensi menunjukkan masalah kode aplikasi atau nilai batas waktu yang tidak mencukupi jika terjadi berulang kali.

Tidak ada

[Nama] RepeatedRestart

Peristiwa

Unit systemd sering restart.

Tidak ada

ServiceFailedToStart

Peristiwa

Unit systemd gagal memulai.

Tidak ada

Masalah kesehatan simpul kernel

Kondisi pemantauan adalah KernelReady untuk masalah dalam tabel berikut yang memiliki tingkat keparahan “Kondisi”.

Nama Kepelikan Deskripsi Tindakan Perbaikan

AppBlocked

Peristiwa

Tugas telah diblokir untuk jangka waktu yang lama dari penjadwalan, biasanya disebabkan oleh diblokir pada input atau output.

Tidak ada

AppCrash

Peristiwa

Aplikasi pada node telah crash.

Tidak ada

ApproachingKernelPidMax

Peristiwa

Jumlah proses mendekati jumlah maksimum PIDs yang tersedia per kernel.pid_max pengaturan saat ini, setelah itu tidak ada lagi proses yang dapat diluncurkan.

Tidak ada

ApproachingMaxOpenFiles

Peristiwa

Jumlah file yang terbuka mendekati jumlah maksimum file terbuka yang mungkin diberikan pengaturan kernel saat ini, setelah itu membuka file baru akan gagal.

Tidak ada

ConntrackExceededKernel

Peristiwa

Pelacakan koneksi melebihi maksimum untuk kernel dan koneksi baru tidak dapat dibuat, yang dapat mengakibatkan hilangnya paket.

Tidak ada

ExcessiveZombieProcesses

Peristiwa

Proses yang tidak dapat sepenuhnya direklamasi terakumulasi dalam jumlah besar, yang menunjukkan masalah aplikasi dan dapat menyebabkan mencapai batas proses sistem.

Tidak ada

ForkFailedOutOfPIDs

Kondisi

Panggilan fork atau exec gagal karena sistem kehabisan proses IDs atau memori, yang mungkin disebabkan oleh proses zombie atau kelelahan memori fisik.

Ganti

KernelBug

Peristiwa

Bug kernel terdeteksi dan dilaporkan oleh kernel Linux itu sendiri, meskipun ini kadang-kadang disebabkan oleh node dengan CPU tinggi atau penggunaan memori yang menyebabkan pemrosesan peristiwa tertunda.

Tidak ada

LargeEnvironment

Peristiwa

Jumlah variabel lingkungan untuk proses ini lebih besar dari yang diharapkan, berpotensi disebabkan oleh banyak layanan dengan enableServiceLinks set ke true, yang dapat menyebabkan masalah kinerja.

Tidak ada

RapidCron

Peristiwa

Pekerjaan cron berjalan lebih cepat daripada setiap lima menit pada node ini, yang dapat memengaruhi kinerja jika pekerjaan tersebut menghabiskan sumber daya yang signifikan.

Tidak ada

SoftLockup

Peristiwa

CPU terhenti untuk jangka waktu tertentu.

Tidak ada

Masalah kesehatan simpul jaringan

Kondisi pemantauan adalah NetworkingReady untuk masalah dalam tabel berikut yang memiliki tingkat keparahan “Kondisi”.

Nama Kepelikan Deskripsi Tindakan Perbaikan

BandwidthInExceeded

Peristiwa

Paket telah diantrian atau dijatuhkan karena bandwidth agregat masuk melebihi maksimum untuk instance.

Tidak ada

BandwidthOutExceeded

Peristiwa

Paket telah diantrian atau dijatuhkan karena bandwidth agregat keluar melebihi maksimum untuk instance.

Tidak ada

ConntrackExceeded

Peristiwa

Pelacakan koneksi melebihi maksimum untuk instance dan koneksi baru tidak dapat dibuat, yang dapat mengakibatkan hilangnya paket.

Tidak ada

EFAErrorMetrik

Peristiwa

Metrik driver EFA menunjukkan ada antarmuka dengan penurunan kinerja.

Tidak ada

IPAMDInconsistentNegara

Peristiwa

Status pos pemeriksaan IPAMD pada disk tidak mencerminkan runtime IPs dalam container.

Tidak ada

IPAMDNoIPs

Peristiwa

IPAMD kehabisan alamat IP.

Tidak ada

IPAMDNotSiap

Kondisi

IPAMD gagal terhubung ke server API.

Ganti

IPAMDNotBerlari

Kondisi

Proses Amazon VPC CNI tidak ditemukan berjalan.

Ganti

IPAMDRepeatedlyMulai ulang

Peristiwa

Beberapa restart dalam layanan IPAMD telah terjadi.

Tidak ada

InterfaceNotRunning

Kondisi

Antarmuka ini tampaknya tidak berjalan atau ada masalah jaringan.

Ganti

InterfaceNotUp

Kondisi

Antarmuka ini tampaknya tidak aktif atau ada masalah jaringan.

Ganti

KubeProxyNotReady

Peristiwa

Kube-proxy gagal menonton atau mencantumkan sumber daya.

Tidak ada

LinkLocalExceeded

Peristiwa

Paket dijatuhkan karena PPS lalu lintas ke layanan proxy lokal melebihi maksimum antarmuka jaringan.

Tidak ada

MACAddressPolicyMisconfigured

Peristiwa

Konfigurasi tautan systemd-networkd memiliki nilai yang salah. MACAddressPolicy

Tidak ada

MissingDefaultRoutes

Peristiwa

Ada aturan rute default yang hilang.

Tidak ada

Hilang IPRoutes

Peristiwa

Ada rute yang hilang untuk Pod IPs.

Tidak ada

Hilang IPRules

Peristiwa

Ada aturan yang hilang untuk Pod IPs.

Tidak ada

MissingLoopbackInterface

Kondisi

Antarmuka loopback hilang dari instance ini, menyebabkan kegagalan layanan tergantung pada konektivitas lokal.

Ganti

NetworkSysctl

Peristiwa

sysctlPengaturan jaringan node ini berpotensi salah.

Tidak ada

PPSExceeded

Peristiwa

Paket telah diantrian atau dijatuhkan karena PPS dua arah melebihi maksimum untuk instance.

Tidak ada

PortConflict

Peristiwa

Jika sebuah Pod menggunakan HostPort, ia dapat menulis iptables aturan yang mengganti port host yang sudah terikat, yang berpotensi mencegah akses server API. kubelet

Tidak ada

UnexpectedRejectRule

Peristiwa

Sebuah tak terduga REJECT atau DROP aturan ditemukan diiptables, berpotensi memblokir lalu lintas yang diharapkan.

Tidak ada

Masalah kesehatan simpul penyimpanan

Kondisi pemantauan adalah StorageReady untuk masalah dalam tabel berikut yang memiliki tingkat keparahan “Kondisi”.

Nama Kepelikan Deskripsi Tindakan Perbaikan

EBSInstanceIOPSExceeded

Peristiwa

IOPS maksimum untuk instance terlampaui.

Tidak ada

EBSInstanceThroughputExceeded

Peristiwa

Throughput Maksimum untuk instance terlampaui.

Tidak ada

EBSVolumeIOPSExceeded

Peristiwa

IOPS maksimum untuk Volume EBS tertentu terlampaui.

Tidak ada

EBSVolumeThroughputExceeded

Peristiwa

Throughput Maksimum untuk volume Amazon EBS tertentu terlampaui.

Tidak ada

EtcHostsMountFailed

Peristiwa

Pemasangan kubelet yang dihasilkan /etc/hosts gagal karena /var/lib/kubelet/pods remounting data pengguna selama operasi. kubelet-container

Tidak ada

IODelays

Peristiwa

Penundaan input atau output terdeteksi dalam suatu proses, berpotensi menunjukkan penyediaan input-output yang tidak mencukupi jika berlebihan.

Tidak ada

KubeletDiskUsageSlow

Peristiwa

kubeletIni melaporkan penggunaan disk yang lambat saat mencoba mengakses sistem file. Ini berpotensi menunjukkan masalah input-output atau sistem file disk yang tidak mencukupi.

Tidak ada

XFSSmallAverageClusterSize

Peristiwa

Ukuran XFS Average Cluster kecil, menunjukkan fragmentasi ruang kosong yang berlebihan. Ini dapat mencegah pembuatan file meskipun ada inode atau ruang kosong yang tersedia.

Tidak ada

Konfigurasikan agen pemantauan simpul

Agen pemantauan simpul EKS digunakan sebagai DaemonSet file. Saat Anda menerapkannya sebagai add-on EKS, Anda dapat menyesuaikan instalasi dengan nilai konfigurasi berikut. Untuk konfigurasi default, rujuk bagan Helm agen pemantauan simpul EKS.

Opsi Konfigurasi Deskripsi

monitoringAgent.resources.requests.cpu

Permintaan sumber daya CPU untuk agen pemantauan.

monitoringAgent.resources.requests.memory

Permintaan sumber daya memori untuk agen pemantauan.

monitoringAgent.resources.limits.cpu

Batas sumber daya CPU untuk agen pemantauan.

monitoringAgent.resources.limits.memory

Batas sumber daya memori untuk agen pemantauan.

monitoringAgent.tolerations

Toleransi untuk menjadwalkan agen pemantauan pada node yang tercemar.

monitoringAgent.additionalArgs

Argumen baris perintah tambahan untuk diteruskan ke agen pemantauan.

catatan

Anda dapat mengkonfigurasi hostname-override dan verbosity seperti monitoringAgent.additionalArgs dengan add-on EKS atau instalasi Helm. Saat ini Anda tidak dapat menyesuaikan probe-address (8002) atau metrics-address (8003) agen pemantauan node melalui argumen tambahan dengan add-on EKS atau instalasi Helm.

Agen pemantauan node mencakup komponen server NVIDIA DCGM (Data Center GPU Manager) (nv-hostengine) untuk memantau NVIDIA. GPUs Komponen ini hanya berjalan pada node yang merupakan tipe instans GPU NVIDIA seperti yang nodeAffinity ditunjukkan oleh bagan Helm agen. Anda tidak dapat menggunakan instalasi NVIDIA DCGM yang ada dengan agen pemantauan simpul EKS, berikan umpan balik tentang GitHub masalah peta jalan EKS #2763 jika Anda memerlukan fungsi ini.

Saat Anda menggunakan agen pemantauan simpul EKS sebagai add-on EKS, Anda dapat menyesuaikan instalasi NVIDIA DCGM dengan nilai konfigurasi berikut.

Opsi Konfigurasi Deskripsi

dcgmAgent.resources.requests.cpu

Permintaan sumber daya CPU untuk agen DCGM.

dcgmAgent.resources.requests.memory

Permintaan sumber daya memori untuk agen DCGM.

dcgmAgent.resources.limits.cpu

Batas sumber daya CPU untuk agen DCGM.

dcgmAgent.resources.limits.memory

Batas sumber daya memori untuk agen DCGM.

dcgmAgent.tolerations

Toleransi untuk penjadwalan agen DCGM pada node yang tercemar.

Anda dapat menggunakan perintah AWS CLI berikut untuk mendapatkan informasi yang berguna tentang versi dan skema untuk add-on agen pemantauan simpul EKS EKS.

Dapatkan versi add-on agen terbaru untuk versi Kubernetes Anda. Ganti 1.35 dengan versi Kubernetes Anda.

aws eks describe-addon-versions \ --addon-name eks-node-monitoring-agent \ --kubernetes-version 1.35 \ --query='addons[].addonVersions[].addonVersion'

Dapatkan skema add-on agen yang didukung di add-on EKS. Ganti v1.5.1-eksbuild.1 dengan versi agen Anda.

aws eks describe-addon-configuration \ --addon-name eks-node-monitoring-agent \ --addon-version v1.5.1-eksbuild.1