Tempah Konsultasi Hantar Tiket

Menguasai Autoscaling Kapasiti Awan: Mengimbangi Prestasi dan Kos dalam Kubernetes

Panduan praktikal untuk melaksanakan strategi autoscaling pintar yang mengoptimumkan prestasi dan kos, dengan arahan sebenar dan kawalan risiko.

Menguasai Autoscaling Kapasiti Awan: Mengimbangi Prestasi dan Kos dalam Kubernetes
Cloud Migration 6min 5 paparan 2026-06-20
KubernetesSREPengoptimuman Kos

Senario

Sebuah syarikat memindahkan platform e-dagangnya ke persekitaran Kubernetes native awan. Pada awalnya, bilangan nod dan Pod dikonfigurasi manual, menyebabkan isu prestasi semasa puncak dan pembaziran sumber ketika waktu tidak sibuk. Bil awan bulanan meningkat lebih 30%.

Gejala

  • Bil awan terus meningkat, namun purata penggunaan CPU/memori di bawah 30%.
  • Masa tindak balas pengguna melebihi 5 saat semasa puncak, dengan timeout sekali-sekala.
  • Bilangan nod tetap, permintaan Pod kerap mencapai had kadar.

Diagnosis

  1. Gunakan kubectl top pods dan kubectl top nodes untuk melihat penggunaan sumber.
  2. Analisis log cluster autoscaler: kubectl logs -n kube-system cluster-autoscaler.
  3. Periksa konfigurasi HorizontalPodAutoscaler: kubectl describe hpa <hpa-name>.

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: 3
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

Guna: kubectl apply -f hpa.yaml.

Konfigurasi Cluster Autoscaler (anggap AWS)

Pastikan kumpulan nod mempunyai saiz min/maks ditetapkan. Anotasi kumpulan auto-skala:

kubectl annotate nodegroup <nodegroup-name> cluster-autoscaler.kubernetes.io/min-size=2
kubectl annotate nodegroup <nodegroup-name> cluster-autoscaler.kubernetes.io/max-size=20

Guna VerticalPodAutoscaler untuk optimumkan permintaan sumber

kubectl apply -f https://raw.githubusercontent.com/kubernetes/autoscaler/master/vertical-pod-autoscaler/deploy/vpa-v1-crd.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/autoscaler/master/vertical-pod-autoscaler/deploy/recommender-deployment.yaml

Kemudian buat VPA:

apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
  name: web-app-vpa
spec:
  targetRef:
    apiVersion: "apps/v1"
    kind: Deployment
    name: web-app
  updatePolicy:
    updateMode: "Auto"
  resourcePolicy:
    containerPolicies:
    - containerName: '*'
      minAllowed:
        cpu: 100m
        memory: 128Mi
      maxAllowed:
        cpu: 1
        memory: 512Mi

Kawalan Risiko

  • Guna PodDisruptionBudget untuk memastikan ketersediaan:
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
  name: web-app-pdb
spec:
  minAvailable: 2
  selector:
    matchLabels:
      app: web-app
  • Tetap tempoh sejuk HPA untuk elak thrashing: tambah medan behavior dalam HPA.
  • Guna instance Spot untuk kurangkan kos pengiraan, tetapi laksanakan pengendalian gangguan yang betul (contohnya, penjadualan keutamaan).

Rollback

  1. Padam atau ubah konfigurasi HPA/VPA: kubectl delete hpa web-app-hpa.
  2. Kembalikan kumpulan nod ke saiz asal.
  3. Pantau metrik sehingga stabil.

Pengesahan

  • Periksa perubahan bilangan Pod dengan beban: kubectl get pods -w.
  • Bandingkan bil menggunakan alat kos awan (contohnya, AWS Cost Explorer).
  • Metrik prestasi: masa tindak balas <1s, kadar ralat <0.1%.

Bila Hantar Tiket OpsGlobal

  • Autoscaling gagal memenuhi SLA (contohnya, masih timeout semasa puncak).
  • Kumpulan nod gagal skala turun (isu gangguan Spot berbaki).
  • Perlu strategi peruntukan kos atau belanjawan yang kompleks.

Senario Penggunaan

Sesuai untuk pasukan yang menyelesaikan isu Cloud Migration dan memerlukan aliran kerja yang jelas.

Latar Belakang Masalah

Panduan praktikal untuk melaksanakan strategi autoscaling pintar yang mengoptimumkan prestasi dan kos, dengan arahan sebenar dan kawalan risiko.

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.

Tiket Hubungi WhatsApp Konsultasi