Gambaran Keseluruhan
Dalam pengeluaran, kegagalan tidak dapat dielakkan. Runbook SRE adalah alat penting untuk mengekalkan kebolehpercayaan perkhidmatan. Post ini menggunakan senario Kubernetes biasa—Pod crash loop—untuk menunjukkan aliran kerja penyelesaian masalah lengkap dari pengesanan gejala hingga tindak balas automatik.
Senario
Aplikasi mikroservis yang berjalan di Kubernetes mengalami Pod dalam keadaan CrashLoopBackOff.
Gejala
- Status Pod:
CrashLoopBackOff - Log:
OutOfMemoryErroratau proses dibunuh oleh OOM Killer - Pemantauan: Penggunaan memori sentiasa melebihi ambang
Langkah Diagnosis
- Periksa status Pod
bash kubectl get pods -n <namespace> | grep -v Running - Periksa log Pod
bash kubectl logs <pod-name> -n <namespace> --previous - Huraikan peristiwa Pod
bash kubectl describe pod <pod-name> -n <namespace> - Periksa sumber nod
bash kubectl top nodes kubectl top pods -n <namespace> - Analisis penggunaan memori
bash # Exec ke dalam kontena (jika masih berjalan) kubectl exec -it <pod-name> -n <namespace> -- bash # Lihat memori proses ps aux --sort=-%mem | head -n 10
Kawalan Risiko
- Lakukan tindakan di luar waktu puncak untuk mengurangkan kesan kepada pengguna.
- Laraskan kuota sumber terlebih dahulu:
kubectl edit deployment <deployment>untuk meningkatkan had memori. - Jangan padam Pod berkeadaan tanpa penilaian terlebih dahulu.
- Gunakan
kubectl cordon <node>untuk mengasingkan nod yang rosak.
Pelan Rollback
- Sahkan isu berpunca daripada perubahan terkini.
- Rollback deployment:
bash kubectl rollout undo deployment/<deployment> -n <namespace> - Jika rollback gagal, kembali ke semakan yang diketahui baik:
bash kubectl rollout history deployment/<deployment> -n <namespace> kubectl rollout undo deployment/<deployment> --to-revision=<revision>
Pengesahan
- Pastikan status Pod Running dan stabil.
- Pantau keluk penggunaan memori kembali ke garis dasar.
- Laksanakan ujian trafik biasa.
Bila Menghantar Tiket OpsGlobal
- Isu berterusan selepas banyak percubaan rollback.
- Masalah melibatkan konfigurasi sistem peringkat rendah (parameter kernel, sistem fail).
- Perlu penalaan prestasi atau semakan seni bina.
- Tindak balas pantas diperlukan di luar waktu perniagaan.
Runbook berstruktur membolehkan pasukan SRE mengurangkan MTTR. Untuk isu kompleks, sokongan pakar tepat pada masanya adalah kunci.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu DevOps dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Artikel ini membincangkan pembinaan runbook SRE Linux praktikal untuk penyelesaian masalah pengeluaran, merangkumi analisis senario, pengenalpastian gejala, arahan diagnosis, kawalan risiko, strategi rollback, langkah pengesahan, dan bila perlu menghubungi pakar OpsGlobal. Fokus pada persekitaran Kubernetes.
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.