提问人:Varun Mathur 提问时间:11/17/2023 更新时间:11/17/2023 访问量:22
控制在 Kubernetes 中的 HPA 扩展期间纵向扩展的 ReplicaSet
control which replicaset is scaled up during HPA scaling in kubernetes
问:
我有一个配置了 HPA 和滚动更新的部署。我的一次部署将一个糟糕的更改推送到此部署,这触发了新副本集的创建。这个新的副本集试图扩大规模,但没有一个 Pod 准备好了,所以旧的副本集仍然挂在身边,我从旧副本集中获得了准备好的 Pod。
到目前为止,一切都如预期的那样。
但是,此部署接收了大量流量,需要从 1 个副本扩展到 4 个副本。旧的副本集(好)有 1 个副本,新副本集(坏)有 2 个副本,没有一个可以启动。因此,部署最终只获得了 2 个副本和可用性损失。
HPA 规模如何选择要增加副本的副本集?如果我们有办法控制这种情况,我们本可以防止服务错误。
答:
0赞
Ron Etch
11/21/2023
#1
根据官方文档,我认为您可以使用 HPA YAML 文件上的 spec.selector
将特定 pod 定位为根据 中的详细信息进行自动缩放。您可以在下面查看示例 YAML:scaleTargetRef
---
apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
name: my-hpa
spec:
scaleTargetRef:
kind: Deployment
name: my-deployment
targetAverageUtilization: 80
selector:
matchLabels:
app: my-app
需要注意的是,HPA 是基于“需求”水平扩展的,因此工作负载的增加意味着要部署更多的 Pod。
此外,HPA 不会影响无法缩放的对象,例如 Daemonset。
评论