有没有可能保持'cpu'和'memory'指标在一起,如下所示?这似乎是行不通的。我尝试下面的脚本作为HPA。但坚持pod已增长到5。这不是我所期望的。
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: myservice-metrics
namespace: myschema
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myservice
minReplicas: 1
maxReplicas: 5
metrics:
- type: Resource
resource:
name: memory
targetAverageValue: 500Mi
- type: Resource
resource:
name: cpu
targetAverageUtilization: 70
如果我把它单独保存,它就不是抱怨了。为一个服务设置两个度量是最好的实践吗?有没有其他方法可以同时设置两个度量。
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: myservice-metrics-memory
namespace: myschema
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myservice
minReplicas: 1
maxReplicas: 3
metrics:
- type: Resource
resource:
name: memory
targetAverageValue: 500Mi
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: myservice-metrics-cpu
namespace: myschema
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: myservice
minReplicas: 1
maxReplicas: 3
metrics:
- type: Resource
resource:
name: cpu
targetAverageUtilization: 70
2条答案
按热度按时间q3aa05251#
从Kubernetes v1.6开始,已经添加了基于多个指标的扩展支持。我建议尝试切换到
autoscaling/v2beta2
API。https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/#support-for-multiple-metrics
qhhrdooz2#
https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/horizontal-pod-autoscaler-v2beta2/
metrics
的类型为[]MetricSpec
,并且将使用所有度量的最大副本计数
可以使用单个文件。