手動和自動擴容( scale ) - daniel-qa/Azure-Kubernetes-Service GitHub Wiki
https://docs.microsoft.com/zh-tw/azure/aks/tutorial-kubernetes-scale?tabs=azure-cli#autoscale-pods https://learn.microsoft.com/zh-tw/azure/aks/concepts-scale
手動調整 Pod
(https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get) 命令,如下所示:
kubectl get pods
若要手動變更 azure-vote-front 部署中的 Pod 數目, 請使用 kubectl scale 命令。
下列範例會將前端 Pod 的數目增加為 5:
kubectl scale --replicas=5 deployment/azure-vote-front
kubectl scale --replicas=2 deployment/laravel
自動調整 Pod
- 若要使用自動調整程式,必須為您 Pod 中所有容器和 Pod 定義 CPU 要求和限制
- HPA 每隔 60 秒會有效更新一次
ex: 平均 CPU 使用率超過其所要求使用量的 50%,則自動調整程式會增加 Pod,最多可達 10 個執行個體。 然後,為此部署定義最少 3 個執行個體:
kubectl autoscale deployment azure-vote-front --cpu-percent=50 --min=3 --max=10
或者,您可以建立資訊清單檔,以定義自動調整程式行為和資源限制。 以下是資訊清單檔 (名稱為 azure-vote-hpa.yaml) 的範例。
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: azure-vote-back-hpa
spec:
maxReplicas: 10 # define max replica count
minReplicas: 3 # define min replica count
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: azure-vote-back
targetCPUUtilizationPercentage: 50 # target CPU utilization
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: azure-vote-front-hpa
spec:
maxReplicas: 10 # define max replica count
minReplicas: 3 # define min replica count
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: azure-vote-front
targetCPUUtilizationPercentage: 50 # target CPU utilization
使用 kubectl apply 來套用 azure-vote-hpa.yaml 資訊清單檔中定義的自動調整程式。
kubectl apply -f azure-vote-hpa.yaml
查看自動調整程式的狀態,請使用 kubectl get hpa 命令,如下所示:
kubectl get hpa
- 原有已建立的 HPA 要先刪掉(舊的),不然會互相干擾
kubectl delete hpa azure-vote
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
azure-vote-front Deployment/azure-vote-front 0% / 50% 3 10 3 2m