選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 Horizontal Pod Autoscaler 擴展 Pod 部署

焦點模式
使用 Horizontal Pod Autoscaler 擴展 Pod 部署 - Amazon EKS

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

協助改善此頁面

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

若要提供此使用者指南,請選擇位於每個頁面右窗格中的 GitHub 上編輯此頁面連結。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Kubernetes Horizontal Pod Autoscaler 會根據資源的 CPU 使用率,自動擴展部署、複寫控制器或複本集中的 Pod 數量。這可協助您的應用程式水平擴展以滿足增加的需求,或在不需要資源時縮減,從而釋出節點供其他應用程式使用。當您設定目標 CPU 使用率百分比時,Horizontal Pod Autoscaler 會擴展或縮減您的應用程式,以嘗試滿足該目標。

Horizontal Pod Autoscaler 是 Kubernetes 中的標準 API 資源,只需要在 Amazon EKS 叢集上安裝指標來源 (例如 Kubernetes 指標伺服器) 即可運作。您不需要在叢集上部署或安裝 Horizontal Pod Autoscaler,即可開始調整您的應用程式。如需詳細資訊,請參閱 Kubernetes 文件中的 Horizontal Pod Autoscaler

使用此主題為您的 Amazon EKS 叢集準備 Horizontal Pod Autoscaler,並以範例應用程式驗證是否正常運作。

注意

本主題是以 Kubernetes 文件中的 Horizontal Pod Autoscaler 逐步解說為基礎。

執行 Horizontal Pod Autoscaler 測試應用程式

在本節中,您將部署範例應用程式,以驗證 Horizontal Pod Autoscaler 是否正常運作。

注意

此範例以 Kubernetes 文件中的 Horizontal Pod 自動擴展器演練為基礎。

  1. 使用下列命令部署簡單的 Apache Web 伺服器應用程式。

    kubectl apply -f https://k8s.io/examples/application/php-apache.yaml

    此 Apache Web 伺服器 Pod 有 500 毫秒的 CPU 限制,且可在連接埠 80 上提供服務。

  2. 建立 php-apache 部署的 Horizontal Pod Autoscaler 資源。

    kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10

    此命令會建立自動擴展器,以部署 50% 的 CPU 使用率為目標,其中至少有一個 Pod,最多十個 Pod。當平均 CPU 負載低於 50% 時,自動擴展器會嘗試將部署中的 Pod 數量減少到最少 1 個。當負載大於 50% 時,自動擴展器會嘗試增加部署中的 Pod 數量,最多 10 個。如需詳細資訊,請參閱 Kubernetes 文件中的 HorizontalPodAutoscaler 如何運作?

  3. 使用以下命令描述自動擴展器,以檢視其詳細資訊。

    kubectl get hpa

    範例輸出如下。

    NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 10 1 51s

    如您所見,目前的 CPU 負載為 0%,因為伺服器上尚無負載。Pod 計數已位於最低界限 (一個),因此無法向內擴展。

  4. 執行容器,為 Web 伺服器建立負載。

    kubectl run -i \ --tty load-generator \ --rm --image=busybox \ --restart=Never \ -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"
  5. 若要觀察向外擴展部署,請定期在不同的終端機中,從您執行上一個步驟的終端機執行下列命令。

    kubectl get hpa php-apache

    範例輸出如下。

    NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 250%/50% 1 10 5 4m44s

    複本計數可能需要一分多鐘的時間才會增加。只要實際 CPU 百分比高於目標百分比,複本計數就會增加,最多可增加至 10。在這種情況下,它是 250%,因此 的數量會REPLICAS繼續增加。

    注意

    您可能需要幾分鐘才會看到複本計數達到其最大值。例如,如果只需要 6 個複本,CPU 負載才會維持在 50% 或以下,則負載不會擴展到超過 6 個複本。

  6. 停止該負載。在您要產生載入的終端機視窗中,按住 Ctrl+C鍵來停止載入。您可以在正在觀看擴展的終端機中再次執行下列命令,來觀看複本縮減至 1。

    kubectl get hpa

    範例輸出如下。

    NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE php-apache Deployment/php-apache 0%/50% 1 10 1 25m
    注意

    縮減的預設時間範圍為 5 分鐘,因此需要一些時間才會看到複本計數再次達到 1,即使目前的 CPU 百分比為 0。時間範圍是可修改的。如需詳細資訊,請參閱 Kubernetes 文件中的 Horizontal Pod Autoscaler

  7. 當您完成範例應用程式的實驗後,請刪除 php-apache 資源。

    kubectl delete deployment.apps/php-apache service/php-apache horizontalpodautoscaler.autoscaling/php-apache
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。