Senario
Katakan anda menjalankan platform e-dagang di Kubernetes, dengan pod berskala naik dan turun berdasarkan CPU dan memori. Semasa acara promosi, kluster berkembang kepada beratus-ratus nod, dan bil awan melonjak. Selepas acara itu, nod kekal kurang digunakan, tetapi bil anda tetap tinggi. Ini adalah masalah biasa apabila autoscaling tidak diselaraskan dengan tadbir urus kos.
Gejala
- Bil awan meningkat tanpa lonjakan trafik yang sepadan.
- Pod diusir kerana sumber nod tidak mencukupi.
- Purata penggunaan nod kluster rendah (<20%).
- Peristiwa skala naik dan turun yang kerap menyebabkan ketidakstabilan.
- Lonjakan kependaman walaupun sumber kelihatan tersedia.
Diagnosis
Mula dengan metrik Kubernetes:
kubectl get hpa -n <namespace>
kubectl describe hpa <hpa-name> -n <namespace>
kubectl top nodes
kubectl top pods -n <namespace>
Periksa log autoscaler kluster:
kubectl logs -f deployment/cluster-autoscaler -n kube-system
Semak peneroka kos awan untuk mengenal pasti pemacu kos: EC2, EKS, storan, pemindahan data, dll.
Isu biasa: - HPA dikonfigurasikan dengan metrik lalai yang ketinggalan di bawah trafik mendadak. - Ambang turun skala autoscaler kluster terlalu konservatif. - Menjalankan beberapa replika aplikasi stateful dengan replika terbiar. - Menggunakan instance on-demand apabila instance spot boleh mengurangkan kos dengan ketara.
Arahan
Berikut adalah arahan untuk memeriksa dan melaraskan:
# Lihat konfigurasi HPA
kubectl get hpa -A
# Periksa penggunaan sumber
kubectl top nodes --sort-by=cpu
# Skala turun sementara deployment
kubectl scale deployment <deployment> --replicas=1 -n <namespace>
# Kemas kini HPA min/max
kubectl autoscale deployment <deployment> --min=1 --max=10 --cpu-percent=70 -n <namespace>
# Edit HPA
kubectl edit hpa <hpa-name> -n <namespace>
# Aktifkan autoscaler kluster pada kumpulan nod (Contoh AWS)
aws eks update-nodegroup-config --cluster-name <cluster> --nodegroup-name <ng> --scaling-config minSize=1,maxSize=5
# Gunakan instance spot (Contoh Azure)
az aks nodepool add --resource-group <rg> --cluster-name <aks> --name spotpool --node-count 1 --spot-max-price -1 --priority Spot
Kawalan Risiko
- Tetapkan belanjawan keras dalam pembekal awan (cth., AWS Budgets, GCP Budget Alerts).
- Gunakan permintaan/had sumber Kubernetes untuk mengelakkan pod daripada menggunakan lebih daripada yang diperlukan.
- Laksanakan PodDisruptionBudgets untuk mengekalkan ketersediaan semasa skala.
- Konfigurasikan HPA dengan metrik tersuai berdasarkan kependaman permintaan atau kedalaman baris gilir.
- Gunakan instance spot bersama-sama dengan on-demand untuk beban kerja kritikal.
Pengembalian Semula
- Simpan fail konfigurasi HPA sebelumnya dalam kawalan sumber. Gunakan
kubectl apply -f previous-config.yamluntuk kembali. - Untuk perubahan autoscaler kluster, kembalikan tetapan skala kumpulan nod.
- Jika anda mengecilkan replika, pulihkan dengan
kubectl scale deployment <deployment> --replicas=<original>.
Pengesahan
- Gunakan alat ujian beban (cth., k6, locust) untuk mensimulasikan trafik dan perhatikan skala.
- Pantau papan pemuka kos awan untuk kestabilan.
- Semak bahawa penggunaan berada dalam julat sasaran (cth., 40-70%).
- Pastikan tiada peristiwa pengusiran pod atau sekatan.
Bila Menghantar Tiket OpsGlobal
Jika anda menghadapi: - Tingkah laku skala kompleks yang sukar didiagnosis. - Anomali kos berulang walaupun usaha pengoptimuman. - Keperluan untuk semakan seni bina atau pelaksanaan autoscaling lanjutan. - Insiden sensitif masa di mana anda memerlukan pemikiran kedua.
Hantar tiket melalui portal OpsGlobal dan sertakan diagnostik yang telah anda kumpulkan.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Cloud Migration dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Ketahui cara mengoptimumkan autoscaling Kubernetes untuk kos dan prestasi. Panduan ini merangkumi diagnosis isu skala, melaksanakan autoscaling kluster dan pod yang cekap, mengawal perbelanjaan awan, 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.