使用 kubectl 管理 HPA
本節說明使用 kubectl 管理 HPA。本文件包含以下操作的說明:
- 建立 HPA
- 取得 HPA 資訊
- 刪除 HPA
- 配置 HPA 以根據 CPU 或記憶體使用率進行擴展
- 如果您使用第三方工具(如 Prometheus)進行指標收集,則配置 HPA 使用自訂指標進行擴展
您可以從 Rancher UI 建立、查看和刪除 HPA。您也可以從 Rancher UI 配置它們以根據 CPU 或記憶體使用情況進行擴展。有關更多資訊,請參閱使用 Rancher UI 管理 HPA。對於基於 CPU 或記憶體以外的其他指標擴展 HPA,您仍然需要 kubectl。
管理 HPA 的基本 kubectl 命令
如果您有 HPA 清單檔案,可以使用 kubectl 建立、管理和刪除 HPA:
-
建立 HPA
-
使用清單:
kubectl create -f <HPA_MANIFEST> -
不使用清單(僅支援 CPU):
kubectl autoscale deployment hello-world --min=2 --max=5 --cpu-percent=50
-
-
取得 HPA 資訊
-
基本:
kubectl get hpa hello-world -
詳細說明:
kubectl describe hpa hello-world
-
-
刪除 HPA
kubectl delete hpa hello-world
HPA 清單定義範例
HPA 清單是用於使用 kubectl 管理 HPA 的配置檔案。
以下片段展示了 HPA 清單中不同指令的使用。請參閱範例下方的清單以了解每個指令的目的。
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: hello-world
spec:
scaleTargetRef:
apiVersion: extensions/v1beta1
kind: Deployment
name: hello-world
minReplicas: 1
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 50
- type: Resource
resource:
name: memory
targetAverageValue: 100Mi
| 指令 | 說明 |
|---|---|
apiVersion: autoscaling/v2beta1 | 正在使用的 Kubernetes autoscaling API 群組的版本。此範例清單使用測試版,因此啟用了基於 CPU 和記憶體的擴展。 |
name: hello-world | 指示 HPA 正在對 hello-word 部署執行自動擴展。 |
minReplicas: 1 | 指示運行的最小副本數不能低於 1。 |
maxReplicas: 10 | 指示部署中的最大副本數不能超過 10。 |
targetAverageUtilization: 50 | 指示當平均運行的 Pod 使用超過其請求的 CPU 的 50% 時,部署將擴展 Pod。 |
targetAverageValue: 100Mi | 指示當平均運行的 Pod 使用超過 100Mi 記憶體時,部署將擴展 Pod。 |