Senario
Pasukan platform e-dagang menolak perubahan kod ke kluster Kubernetes pada petang Jumaat. Saluran paip CI/CD secara automatik membina imej dan menyebarkannya ke pengeluaran. Dalam beberapa minit, kadar ralat melonjak, masa respons meningkat, dan sesetengah pengguna tidak dapat menyelesaikan pembayaran. Proses pengembalian, yang terhalang oleh langkah manual, mengambil masa 45 minit, menyebabkan kerugian hasil yang ketara.
Gejala
- Ralat HTTP 500 meningkat daripada 0.5% kepada 15% sejurus selepas penyebaran.
- Pod kerap dimulakan semula akibat kegagalan probe liveness.
- Kependaman P99 melonjak daripada 200ms kepada 2s pada papan pemuka pemantauan.
- Log Pod baharu menunjukkan ralat kehabisan kolam sambungan.
Diagnosis
kubectl rollout status deployment/web-app -n production: Rollout tersekat; Pod baharu tidak boleh menjadi Ready.kubectl logs -l app=web-app --tail=50: Menunjukkan ralat konfigurasi sambungan pangkalan data dengan kolam sambungan terlalu kecil.kubectl describe pod <new-pod>: Probe liveness gagal kerana aplikasi tidak boleh menyambung ke pangkalan data.- Semakan saluran paip CI/CD: Fasa
deploytidak mempunyai ujian automatik (contohnya ujian beban atau penyebaran canary) dan tiada strategi pengembalian.
Arahan
# Periksa status rollout
kubectl rollout status deployment/web-app -n production
# Dapatkan log Pod
download: kubectl logs -l app=web-app --tail=100 | grep -i error
# Periksa acara
download: kubectl get events -n production --sort-by='.lastTimestamp' | tail -20
# Kembali ke versi sebelumnya
download: kubectl rollout undo deployment/web-app -n production
# Sahkan sejarah rollout
download: kubectl rollout history deployment/web-app -n production
Kawalan Risiko
- Penyebaran Canary: Gunakan ArgoCD atau Flagger untuk mengalihkan trafik secara berperingkat (10%–50%–100%).
- Gerbang Automatik: Integrasikan ke dalam saluran paip CI:
- Ujian unit dan integrasi (contohnya
go test,pytest). - Imbasan keselamatan (Trivy, Snyk). - Ujian beban (k6, Locust) mensimulasikan trafik puncak. - Polisi sebagai Kod: Gunakan Open Policy Agent (OPA) untuk mengesahkan manifes, contohnya menguatkuasakan had sumber, larang tag
latest. - Infrastruktur Tidak Berubah: Larang pembaikan manual pada kontena yang sedang berjalan; setiap perubahan melalui CI/CD.
- Pemantauan dan Amaran: Picu pemantauan sintetik selepas penyebaran; kesan anomali dalam 5 minit.
Pengembalian
# Pengembalian pantas ke versi sebelumnya
download: kubectl rollout undo deployment/web-app -n production
# Pengembalian ke semakan tertentu
download: kubectl rollout undo deployment/web-app -n production --to-revision=3
# Sahkan pengembalian selesai
download: kubectl rollout status deployment/web-app -n production
Pengesahan
- Periksa kadar ralat kembali ke garis dasar (contohnya <1%).
- Pastikan semua Pod dalam Running:
kubectl get pods -n production. - Sahkan kolam sambungan pangkalan data dalam julat normal melalui titik akhir metrik aplikasi dan Prometheus.
- Jalankan ujian asap: Aliran perniagaan utama (contohnya log masuk, semak keluar) mesti berjaya.
Bila Menghantar Tiket OpsGlobal
- Punca punca tidak jelas selepas pengembalian, atau pembaikan memerlukan lebih 2 jam.
- Kekurangan keupayaan penyebaran canary/biru-hijau tetapi keperluan sifar masa henti.
- Saluran paip CI/CD dalaman kerap gagal; memerlukan audit dan pengukuhan pakar.
- Pasukan kekurangan masa untuk menyelenggara peraturan Polisi sebagai Kod (OPA).
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu CI/CD dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Penerokaan mendalam tentang mencegah insiden pengeluaran dengan pengawal CI/CD, termasuk analisis senario, arahan diagnostik, kawalan risiko, dan strategi pengembalian.
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.