假设我有这个VPA配置文件:
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: vpa-reco
spec:
targetRef:
apiVersion: "batch/v1beta1"
kind: CronJob
name: test-autoscaling-1
updatePolicy:
updateMode: "Off"
我如何使我的VPA目标CronJobtest-autoscaling-2
也?
遗憾的是,您不能在单个VPA
对象中引用多个对象。
如果您尝试如下(在单个VPA
中有2个CronJobs
):
apiVersion: autoscaling.k8s.io/v1
kind: VerticalPodAutoscaler
metadata:
name: vpa-reco
spec:
targetRef:
- apiVersion: "batch/v1beta1"
kind: CronJob
name: test-autoscaling-1
- apiVersion: "batch/v1beta1"
kind: CronJob
name: test-autoscaling-2
updatePolicy:
updateMode: "Off"
你应该得到类似于下面的错误(它的一部分):
denied the request: json: cannot unmarshal array into Go struct field VerticalPodAutoscalerSpec.targetRef of type v1.CrossVersionObjectReference
要将VPA
配置为:test-autoscaling-1
和test-autoscaling-2
,您需要创建两个单独的VPA
对象如:vpa-reco-1
和vpa-reco-2
.
从VPA
和CronJob
的角度来看,0.7.0
版本增加了对它的支持。在这个特定的发布说明中可以找到更多信息:
- Github.com: Kubernetes: Autoscaler:发布:标签:垂直pod Autoscaler 0.7.0
额外资源:
- Github.com: Kubernetes: Autoscaler