[英]Azure Kubernetes - replica vs HPA?
副本和 HPA 有什么區別?
對於示例,以下部署配置了 3 個副本
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello
spec:
**replicas: 3**
以及以下具有 2-20 個副本的 HPA
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: hello
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: hello
**minReplicas: 2
maxReplicas: 20
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 80**
這是否意味着上述 HPA 將控制副本的總數,而與“deployment.yaml”中定義的內容無關? 當 HPA 擴大規模時,它會增加一個“部署”副本還是三個“部署”副本?
是的,答案是,根據我對 AKS 的觀察。
deployment.yaml 會詢問所需的副本數量,而 hpa 會根據配置的指標對此進行更改。
部署對象中的所需狀態或副本(當您執行 kubectl get deploy 時)將始終提供當前副本以及所需副本,並且您可以在那里看到負載的變化。
所以它將從 3 個實例開始,然后它會嘗試保持最小副本始終可用(因此 hpa 中的最小副本和部署文件中的副本保持不變),然后根據提供的指標的負載計算,它將擴展向上或向下到最小或最大定義的水平。
重要的是要添加到先前的答案,即部署spec.replicas
和 HPA spec.minReplicas
可能會發生沖突。 當兩者都配置時,可能會出現一些意外行為。
如果有 HPA,它會根據其設置管理副本數量。 但是,雖然部署由 HPA 控制,但如果您應用具有設定數量的副本的部署配置,它將覆蓋當前所需的副本數量,並且可能會意外地擴展您的部署。
例如,如果您將部署spec.replicas
設置為 1,並且 HPA 當前將您的部署擴展到 5 個副本,那么當您應用部署配置時,它會將所需副本的數量設置為 1 並立即縮減您的部署。 然后 HPA 收回控制權,將所需的副本數量更改回 5 並再次擴大規模。 這是這個問題在我的 Grafana 儀表板上的外觀,它跟蹤正在運行的副本數量
有關該主題的更多信息:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.