

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

# 運算擴展
<a name="compute-scaling"></a>

運算擴展是動態 Kubernetes 環境中應用程式效能的關鍵元件。Kubernetes 透過動態調整運算資源 （例如 CPU 和記憶體） 來減少浪費，以回應即時需求。此功能有助於避免過度佈建或佈建不足，這也可以節省營運費用。Kubernetes 可讓基礎設施在尖峰時間自動擴展，以及在離峰期間自動縮減，有效消除手動介入的需求。

Kubernetes 的整體運算擴展會自動化擴展程序，進而提升應用程式的彈性和可擴展性，並增強其容錯行為。最後，Kubernetes 的功能可增強卓越營運和生產力。

本節討論下列類型的運算擴展：
+ [Cluster Autoscaler](#autoscaler)
+ [具有過度佈建的 Cluster Autoscaler](#over-provisioning)
+ [Karpenter](#karpenter)

## 叢集 AutoScaler
<a name="autoscaler"></a>

根據 Pod 的需求，[Cluster Autoscaler](https://docs.aws.amazon.com/eks/latest/best-practices/cas.html) 工具會自動修改大小，方法是在必要時新增節點，或在不需要節點且未充分利用時移除節點。

將 Cluster Autoscaler 工具視為工作負載的擴展解決方案，其中需求逐漸增加，擴展的延遲不是主要問題。

Cluster Autoscaler 工具提供下列主要功能：
+ **擴展** – 動態擴展和縮減節點，以回應實際的資源需求。
+ **Pod 排程** – 有助於確保每個 Pod 正在運作，並擁有運作所需的資源，防止資源不足。
+ **成本效益** – 消除未充分利用節點的不必要的操作費用。

## 具有過度佈建的 Cluster Autoscaler
<a name="over-provisioning"></a>

Cluster Autoscaler 具有與 Cluster Autoscaler 類似的過度佈建函數，可在其中有效率地部署節點，並透過在節點上執行低優先順序 Pod 來節省時間。透過此技術，流量會重新導向至這些 Pod，以因應需求突然激增，讓應用程式繼續運作而不會中斷。

具有過度佈建的 Cluster Autoscaler 提供虛擬 Pod 的功能，可在工作負載非常大、不需要延遲且擴展需要快速時，用來輕鬆部署和執行節點。

具有過度佈建的 Cluster Autoscaler 提供下列主要功能：
+ **更好的回應能力** – 透過讓多餘的容量持續可存取，擴展叢集以回應需求激增所需的時間更短。
+ **資源保留** – 管理流量中意外的峰值，可在極少的停機時間下有效地協助正確的管理。
+ **順暢擴展** – 將資源分配延遲降至最低，有助於更順暢的擴展程序。

## Karpenter
<a name="karpenter"></a>

[Karpenter](https://docs.aws.amazon.com/eks/latest/best-practices/karpenter.html) for Kubernetes 在開放原始碼、效能和可自訂性方面優於傳統 Cluster Autoscaler 工具。使用 Karpenter，您只能自動啟動所需的運算資源，以即時處理叢集的需求。Karpenter 旨在提供更有效率且回應靈敏的擴展。

具有極端可變或複雜工作負載的應用程式，其中快速擴展決策至關重要，受益於使用 Karpenter。它與 整合 AWS，提供改善的部署和節點選擇最佳化。

Karpenter 包含下列主要功能：
+ **動態佈建** – Karpenter 為用途提供正確的執行個體和大小，並根據 Pod 的特定需求動態佈建新節點。
+ **進階排程** – 使用智慧型 Pod 配置，Karpenter 會安排節點，以便盡可能有效地使用 GPU、CPU、記憶體和儲存體等資源。
+ **快速擴展** – Karpenter 可以快速擴展，經常在幾秒鐘內做出反應。此回應能力對於流量突然的模式或工作負載需要立即擴展時很有幫助
+ **成本效益** – 透過仔細選擇最有效的執行個體，您可以降低營運成本，並利用 提供的其他節省成本替代方案 AWS，例如隨需執行個體、Spot 執行個體和預留執行個體。