簡體   English   中英

Azure Kubernetes - 副本與 HPA?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM