Senario
Selepas migrasi ke awan, syarikat sering menghadapi perlebihan atau kekurangan peruntukan sumber, menyebabkan kos tinggi atau prestasi menurun. Contohnya, platform e-dagang tidak mengaktifkan penskalaan automatik semasa jualan kilat, menyebabkan nod penuh dan pod tergantung, manakala nod terbiar membazir sumber semasa waktu sepi.
Gejala
- Bil awan meningkat secara tiba-tiba, terutamanya kos pengiraan.
kubectl get podsmenunjukkan banyak pod dalam status Pending.- Penggunaan sumber nod tidak seimbang: ada nod >80% CPU/memori, ada <20%.
- Log penskalaan automatik mengandungi ralat.
Diagnosis
- Periksa status pod:
kubectl describe pod <nama-pod>untuk sahkan kekurangan sumber. - Lihat sumber nod:
kubectl top nodesatau guna metrics-server. - Pantau peristiwa penskalaan:
kubectl get events --field-selector reason=FailedScaleUp. - Analisis kos awan melalui konsol pembekal atau alat seperti Kubecost.
Arahan & Konfigurasi
HorizontalPodAutoscaler (HPA)
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: web-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: web-app
minReplicas: 2
maxReplicas: 20
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
Gunakan HPA: kubectl apply -f hpa.yaml
Cluster Autoscaler
Aktifkan pada pembekal awan, cth AWS: tag Auto Scaling Group dengan k8s.io/cluster-autoscaler/enabled. Pasang melalui Helm:
helm install cluster-autoscaler autoscaler/cluster-autoscaler \
--set autoDiscovery.clusterName=<nama-cluster> \
--set awsRegion=<rantau>
Karpenter (pilihan)
apiVersion: karpenter.sh/v1beta1
kind: NodeClaim
spec:
requirements:
- key: kubernetes.io/arch
operator: In
values: ["amd64"]
- key: karpenter.sh/capacity-type
operator: In
values: ["spot"]
Kawalan Risiko
- Tetapkan min/maks replika yang munasabah untuk mengelakkan turun naik melampau.
- Gunakan PodDisruptionBudget (PDB) untuk memastikan ketersediaan perkhidmatan semasa kemas kini.
- Elakkan penskalaan terlalu kerap; tetapkan kelewatan penyejukan.
- Guna Reserved Instances atau Savings Plans untuk beban kerja asas.
Pelan Kembali
- Untuk melumpuhkan penskalaan automatik sementara:
kubectl delete hpa web-app-hpa. - Alih keluar Cluster Autoscaler:
helm uninstall cluster-autoscaler. - Kembali ke kolam nod statik melalui konsol awan.
Pengesahan
- Periksa kesediaan pod:
kubectl get pods -w. - Pantau kos menggunakan alat pengurusan kos awan.
- Jalankan ujian beban untuk mengesahkan tingkah laku penskalaan.
Bila Serahkan Tiket OpsGlobal
- Konfigurasi kompleks merentas rantau atau berbilang kluster.
- Metrik tersuai (cth panjang giliran) diperlukan untuk penskalaan.
- Kekangan belanjawan ketat memerlukan pengoptimuman terperinci.
- Kegagalan penskalaan automatik yang tidak dapat didiagnosis sendiri.
Pasukan SRE OpsGlobal menyediakan semakan konfigurasi pakar untuk memastikan infrastruktur awan anda mengimbangi kos dan prestasi dengan berkesan.
Senario Penggunaan
Sesuai untuk pasukan yang menyelesaikan isu Cloud Migration dan memerlukan aliran kerja yang jelas.
Latar Belakang Masalah
Panduan mendalam tentang konfigurasi penskalaan automatik dalam Kubernetes untuk mengoptimumkan kos awan sambil mengekalkan prestasi, termasuk diagnosis masalah dan penggunaan OpsGlobal untuk senario kompleks.
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.