Senario
Pasukan anda menerima amaran: sebuah nod Kubernetes pengeluaran melaporkan beban purata tinggi selama 15 minit, dan penggunaan cakera telah melebihi 90%. Perkhidmatan berdepan pengguna menjadi lambat, dan beberapa pod sedang dimulakan semula. Anda perlu menyiasat dengan segera tanpa memburukkan keadaan.
Gejala
Isyarat biasa termasuk:
- Beban purata nod melebihi bilangan teras CPU sebanyak 2 kali atau lebih.
- df -h menunjukkan /var/lib/docker atau /var/lib/containerd melebihi 90%.
- Pod berada dalam keadaan CrashLoopBackOff atau ImagePullBackOff.
- kubectl get nodes menunjukkan NotReady selepas beberapa minit.
Diagnosis
Mulakan dengan keterlihatan peringkat tinggi:
uptime
kubectl get nodes -o wide
kubectl describe node NODE_NAME
Periksa beban keseluruhan dan CPU:
top -bn1 | head -20
vmstat 1 5
Jika anda melihat wa yang tinggi (tunggu I/O), periksa cakera:
iostat -x 1 5
df -h
Cari fail atau direktori besar yang menyebabkan tekanan cakera:
du -x -h --max-depth=2 /var/lib | sort -h | tail -20
Cari log atau fail kontena yang terbiar:
find /var/log -type f -size +100M -exec ls -lh {} \;
Periksa mesej sistem dan perkhidmatan Kubelet:
dmesg -T | tail -50
journalctl -u kubelet --since "15 minutes ago"
Jika kontena gagal dimulakan, periksa dengan CRI:
crictl ps -a
crictl logs CONTAINER_ID --tail 100
Kawalan Risiko
Jangan sekali-kali memadam fail melainkan anda benar-benar yakin ia boleh dibuang. Jalankan arahan baca-sahaja dahulu. Simpan output untuk analisis kemudian. Jangan mulakan semula nod melainkan anda telah cuba mengenal pasti punca utama. Jika cakera penuh, jangan buta memadam data aplikasi – gunakan du dan find untuk mencari log dan fail sementara. Gunakan touch dan truncate untuk memutar log dalam pengeluaran hanya apabila perkhidmatan tidak menulis data kritikal.
Penggulungan Balik
Jika isu berpunca daripada penempatan terbaru, gulung balik:
kubectl rollout undo deployment/YOUR_DEPLOYMENT -n YOUR_NAMESPACE
Jika fail log membesar secara tidak dijangka, alihkannya:
mv /var/log/example.log /var/log/example.log.old
systemctl restart rsyslog # hanya jika rsyslog adalah pembalak
Jika storan runtime kontena penuh, bersihkan imej dan volum terbiar dengan selamat:
crictl rmi --prune
crictl rm --prune # gunakan dengan berhati-hati
Hanya selepas pengesahan teliti, mulakan semula Kubelet:
sudo systemctl restart kubelet
Pengesahan
Selepas setiap tindakan, periksa tahap beban dan cakera:
uptime
df -h
kubectl get nodes -o wide
kubectl get pods -o wide | grep YOUR_APP
Juga perhatikan saluran acara:
kubectl get events --sort-by=.metadata.creationTimestamp
Jika nod stabil, teruskan memantau sekurang-kurangnya 30 minit sebelum menutup insiden.
Bila Menghantar Tiket OpsGlobal
Serahkan tiket jika: - Anda tidak dapat mengenal pasti punca utama dalam masa 30 minit. - Beban masih tinggi selepas anda membersihkan punca jelas. - Anda perlu memulihkan data daripada mount yang gagal atau sistem fail yang rosak. - Jurutera on-call anda kelebihan beban dan memerlukan bantuan tambahan. - Anda memerlukan semakan prestasi proaktif untuk nod Kubernetes anda.
OpsGlobal menyediakan sokongan gred pengeluaran untuk Linux dan Kubernetes. Kami turun tangan apabila buku panduan anda tidak mencukupi.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu DevOps dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Panduan praktikal untuk SRE menyelesaikan masalah nod Linux Kubernetes yang bermasalah: daripada gejala kepada diagnosis, arahan selamat, penggulungan balik, pengesahan, dan bila untuk menyerahkan tiket OpsGlobal.
Langkah Penyelesaian
Sahkan impak dan perubahan terkini, kumpul log, konfigurasi dan metrik, kemudian baiki mengikut risiko.
Contoh Arahan
Gantikan contoh dengan nama sumber sebenar dan simpan kata laluan, token atau kunci dalam pembolehubah persekitaran.
Risiko
Sebelum operasi produksi, semak sandaran, akses, tetingkap perubahan dan pelan rollback.
Pelan Rollback
Simpan konfigurasi dan versi asal; rollback konfigurasi, imej atau perubahan pangkalan data jika metrik tidak normal.
Senarai Serahan
Rekod punca isu, arahan penting, langkah pembaikan, hasil pengesahan dan cadangan susulan.
Perlu bantuan isu teknikal serupa?
Jika pelayan, Kubernetes, Docker, CI/CD, pangkalan data atau pemantauan anda bermasalah, hantar log dan konfigurasi untuk diagnosis jauh.