iT邦幫忙

2026 iThome 鐵人賽

DAY 23
0

先啟用 Minikube 的 Metrics Server,再等待資源指標可以查詢。外掛顯示啟用,不代表量測資料立刻可用,因此若查詢暫時失敗,可以稍候重試。接著套用官方的運算負載範例,它包含測試用 Deployment 與 Service,並已設定 CPU 請求。

把下方 HPA 設定存成 hpa-demo.yaml 並套用,讓副本數在一到五之間調整,目標 CPU 使用率為請求量的百分之五十。先觀察低流量狀態,再建立持續呼叫服務的負載產生器,避免只看到控制器存在,卻沒有驗證它實際取得指標。

經過量測與控制週期後,使用率可能上升,副本數也可能增加。實際結果會受到電腦效能與叢集容量影響,不能保證固定秒數內擴到特定數量。如果指標顯示未知,先查看 HPA 詳細資料與 Metrics Server 狀態。

停止測試時刪除負載 Pod,再觀察副本逐漸下降。縮容通常會受到穩定時間窗影響,因此不一定立即發生。這個實驗的重點是把負載、量測、決策與實際副本連起來,並理解擴縮需要時間,而不是只記住一條建立指令。

minikube addons enable metrics-server
kubectl top nodes
kubectl apply -f <https://k8s.io/examples/application/php-apache.yaml>
kubectl rollout status deployment/php-apache --timeout=180s

hpa-demo.yaml:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: php-apache
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: php-apache
  minReplicas: 1
  maxReplicas: 5
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 50
kubectl apply -f hpa-demo.yaml
kubectl run load-generator --image=busybox:1.37 --restart=Never -- sh -c 'while sleep 0.01; do wget -q -O- <http://php-apache>; done'
kubectl get hpa php-apache -w

觀察後按 Ctrl+C,停止負載並繼續查看:

kubectl delete pod load-generator
kubectl get hpa php-apache -w

參考:官方 HPA 實作教學


上一篇
DAY 22
下一篇
DAY 24
系列文
我的 Pod 又掛了:30 天學會 Kubernetes 共 25 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言