Senario
Sebuah kluster Kubernetes yang menjalankan platform e-dagang mengalami beberapa Pod dalam keadaan CrashLoopBackOff, menyebabkan perkhidmatan terganggu.
Gejala
kubectl get podsmenunjukkan statusCrashLoopBackOffkubectl describe podmenunjukkanLast State: TerminateddenganReason: ErroratauExit Code: 137- Log aplikasi mengandungi
OOMKilledatauOut of memory
Diagnosis
- Periksa Butiran Pod:
bash kubectl describe pod <nama-pod> -n <namespace>LihatContainers.<container>.Last StatedanEvents. - Semak Had Sumber:
bash kubectl get pod <nama-pod> -n <namespace> -o yaml | grep -A 5 resourcesCarilimits.memoryyang rendah. - Lihat Log Aplikasi:
bash kubectl logs <nama-pod> -n <namespace> --previousKenal pasti mesej ralat atau jejak timbunan. - Analisis Proba Ketersediaan:
yaml # Proba yang salah konfigurasi boleh menyebabkan but semula tidak perlu livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 5 periodSeconds: 10Pastikan laluan dan port betul.
Arahan
- Tingkatkan had memori buat sementara (ujian sahaja, elakkan terus dalam pengeluaran):
bash kubectl patch deployment <deployment> -n <namespace> -p '{"spec":{"template":{"spec":{"containers":[{"name":"<container>","resources":{"limits":{"memory":"512Mi"}}}]}}}}' - Untuk pembetulan kekal, kemas kini manifes deployment dan guna.
Kawalan Risiko
- Sandarkan deployment semasa sebelum perubahan:
bash kubectl get deployment <deployment> -n <namespace> -o yaml > backup-deployment.yaml - Laraskan
requestsdahulu sebelumlimitsuntuk mengelakkan penamatan segera. - Guna
kubectl rollout pauseuntuk mengelakkan gangguan auto-skala.
Pengembalian
- Kembali ke semakan sebelumnya:
bash kubectl rollout undo deployment/<deployment> -n <namespace> - Atau guna semula sandaran:
bash kubectl apply -f backup-deployment.yaml
Pengesahan
- Periksa status Pod:
bash kubectl get pods -n <namespace> | grep <deployment> - Semua Pod sepatutnya
Runningdengan kontena sedia. - Uji titik akhir kesihatan aplikasi atau simulasi trafik pengguna.
Bila Perlu Hantar Tiket OpsGlobal
- Punca tidak jelas (contohnya, persaingan sumber nod, kegagalan storan, isu antara kluster).
- Pemulihan segera diperlukan tetapi pasukan dalaman tiada akses atau alat.
- Masalah melibatkan dasar rangkaian kompleks atau konteks keselamatan.
Dengan langkah-langkah ini, pasukan SRE dapat menyelesaikan Pod CrashLoopBackOff secara sistematik dan menjaga kestabilan pengeluaran.
SEO Title
Penyelesaian Masalah Pengeluaran Kubernetes: Pod CrashLoopBackOff Mendalam | OpsGlobal
SEO Description
Belajar cara mendiagnosis dan membetulkan isu Pod CrashLoopBackOff Kubernetes termasuk had sumber, pemeriksaan kesihatan, analisis log, dan langkah pemulihan.
Tags
Penyelesaian masalah Kubernetes, CrashLoopBackOff, Debug Pod, Amalan terbaik SRE
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Kubernetes dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Artikel ini membincangkan senario pengeluaran sebenar di mana Pod mengalami CrashLoopBackOff, merangkumi diagnosis punca (had sumber, pemeriksaan kesihatan, ralat konfigurasi), arahan, kawalan risiko, pengembalian, pengesahan, dan bila perlu menghubungi 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.