【发布时间】:2019-06-19 21:05:15
【问题描述】:
我正在尝试根据来自自定义指标服务器的自定义指标来扩展部署。我部署了我的服务器,当我这样做时
kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/services/kubernetes/test-metric"
我找回了这个 JSON
{
"kind": "MetricValueList",
"apiVersion": "custom.metrics.k8s.io/v1beta1",
"metadata": {
"selfLink": "/apis/custom.metrics.k8s.io/v1beta1/namespaces/default/services/kubernetes/test-metric"
},
"items": [
{
"describedObject": {
"kind": "Service",
"namespace": "default",
"name": "kubernetes",
"apiVersion": "/v1"
},
"metricName": "test-metric",
"timestamp": "2019-01-26T02:36:19Z",
"value": "300m",
"selector": null
}
]
}
然后我用这个创建了我的hpa.yml
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: test-all-deployment
namespace: default
spec:
maxReplicas: 10
minReplicas: 1
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: test-all-deployment
metrics:
- type: Object
object:
target:
kind: Service
name: kubernetes
apiVersion: custom.metrics.k8s.io/v1beta1
metricName: test-metric
targetValue: 200m
但它无法扩展,我不确定出了什么问题。运行get hpa 返回
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
test-all-deployment Deployment/test-all-deployment <unknown>/200m 1 10 1 9m
我不确定的部分是 hpa 定义中 metrics 集合中的 target 对象。在这里查看文档https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/
有
describedObject:
apiVersion: extensions/v1beta1
kind: Ingress
name: main-route
target:
kind: Value
value: 10k
但这给了我 API v2beta1 的验证错误。并在这里查看实际对象https://github.com/kubernetes/api/blob/master/autoscaling/v2beta1/types.go#L296 它似乎不匹配。我不知道如何使用 v2beta1 API 来指定它。
【问题讨论】:
标签: kubernetes