Senario
Penggunaan mikroservis memasuki CrashLoopBackOff, menyebabkan ralat API 503. Siasatan mendedahkan versi baru kehilangan ConfigMap yang diperlukan, menyebabkan aplikasi gagal dimulakan.
Gejala
- Pod tersekat dalam CrashLoopBackOff
- Titik akhir perkhidmatan mengembalikan 503
- Penggera pemantauan berbunyi
Diagnosis
- Periksa log pod:
kubectl logs <nama-pod> -n <ruang-nama>
- Huraikan peristiwa pod:
kubectl describe pod <nama-pod> -n <ruang-nama>
- Sahkan kewujudan ConfigMap:
kubectl get configmap <nama-configmap> -n <ruang-nama>
Perintah dan Pagar
Tambah pemeriksaan ini ke saluran paip CI/CD anda:
- Pengesahan pra-penggunaan: Gunakan kubectl diff untuk membandingkan konfigurasi
kubectl diff -f deployment.yaml
- Ujian integrasi: Jalankan ujian automatik sebelum penggunaan
# Dalam skrip CI
kubectl apply -f test-env.yaml
run-integration-tests
kubectl delete -f test-env.yaml
- Pelepasan canary: Dedahkan versi baru secara beransur-ansur
# Menggunakan Service Mesh atau strategi Deployment
apiVersion: apps/v1
kind: Deployment
spec:
strategy:
canary:
steps:
- setWeight: 10
- pause: {duration: 5m}
- Penggulungan semula automatik: Konfigurasikan dasar Rollout
kubectl rollout undo deployment/<nama-deployment> -n <ruang-nama>
Kawalan Risiko
- Pastikan ConfigMap dan Secret dibuat sebelum penggunaan
- Gunakan Helm atau Kustomize untuk mengurus konfigurasi, elakkan suntingan manual
- Laksanakan pintu kelulusan: Hanya benarkan penggunaan yang dicetuskan oleh PR yang telah disemak kod
Langkah Penggulungan Semula
- Gulung semula penggunaan Kubernetes:
kubectl rollout undo deployment/<nama-deployment> -n <ruang-nama>
- Jika dicetuskan oleh Git, balikkan komit Git:
git revert <hash-komit>
git push origin main
- Sahkan pemulihan perkhidmatan:
curl http://<url-perkhidmatan>/healthz
Pengesahan
- Periksa status pod:
kubectl get pods -n <ruang-nama> - Periksa titik akhir:
kubectl get endpoints <nama-perkhidmatan> - Perhatikan metrik pemantauan (contohnya, kadar permintaan berjaya, kependaman)
Bila Serahkan Tiket OpsGlobal
- Jika penggulungan semula gagal atau anda tidak boleh mengakses kluster
- Jika isu berterusan lebih daripada 30 minit dan puncanya tidak diketahui
- Jika anda memerlukan bantuan untuk mengkonfigurasi pagar CI/CD atau mengaudit saluran paip
Pasukan OpsGlobal menyediakan sokongan 24/7 untuk membantu anda mengoptimumkan proses siaran dan mengurangkan masa henti.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu CI/CD dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Pelajari cara melaksanakan pagar berkesan dalam saluran paip CI/CD untuk mengelakkan kegagalan penggunaan, dengan perintah praktikal dan strategi penggulungan semula.
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.