2017-05-24 33 views
1

使用Openshift Origin 1.5.0(kubernetes 1.5.2)可以自动缩放部署并为此使用自定义指标吗?在Openshift 1.5.0上使用自定义指标的自动缩放部署1.5.0

Kubernetes文档指出,自1.2版开始支持自定义指标自动缩放。它看起来不错,只是因为Openshift水平吊舱自动调节器(HPA)试图获得一些指标并计算出所需的指标。但是我的配置无法成功执行此操作。伙计们,请帮我找到我在做什么错了。

那么,会发生什么:

  • 我已经建立了一个指标,因为它是在原产地推荐最新文档(通过了所有步骤):https://docs.openshift.org/latest/install_config/cluster_metrics.html;

    • 我有一个应用程序,它正在与部署类对象部署;
    • 此应用程序使用http json端点公开自定义指标;
    • 自定义度量标准正在收集和存储 - 这显示在相应窗格的Metrics标签中的Openshift原始UI中;
    • 创建HPA后 - 出现一些有关收集自定义指标的警告,它会写入类似'收集自定义指标失败,未收到任何准备好的豆荚的指标';
    • 我使用API​​版本1创建HPA并包含注释alpha/target.custom-metrics.podautoscaler.kubernetes.io: '{"items":[{"name":"requests_count", "value": "10"}]}';
    • 如果我通过主代理请求部署heapster应用程序时,收到这样的事情

      { “元数据”:{}, “物品”:[ { “元数据”:{ “名称“:”resty-1722683747-kmbw0“, ”namespace“:”availability-demo“, ”creationTimestamp“:”2017-05-24T09:50:24Z“ }, ”timestamp“:” -24T09:50:00Z“,” “窗口:“用法”:{ “CPU”: “0”, “记忆”: “2372Ki” } } ] } ] }

    • 你可以看到,确实没有定制指标,我的自定义指标名称为requests_count

我应该采取什么步骤,实现自定义的指标自动缩放成功吗?

Screenshot with custom metrics being collected and exposed via Openshift Console UI

UPDATE: 在openshift主日志警告看起来是这样的:

I0524 10:17:47.537985  1 panics.go:76GET /apis/extensions/v1beta1/namespaces/availability-demo/deployments/resty/scale: (3.379724ms) 200 [[openshift/v1.5.2+43a9be4 (linux/amd64) kubernetes/43a9be4 system:serviceaccount:openshift-infra:hpa-controller] 10.105.8.81:33945] 
I0524 10:17:47.543354  1 panics.go:76] GET /api/v1/proxy/namespaces/openshift-infra/services/https:heapster:/apis/metrics/v1alpha1/namespaces/availability-demo/pods?labelSelector=app%3Dresty: (4.830135ms) 200 [[openshift/v1.5.2+43a9be4 (linux/amd64) kubernetes/43a9be4 system:serviceaccount:openshift-infra:hpa-controller] 10.105.8.81:33945] 
I0524 10:17:47.553255  1 panics.go:76] GET /api/v1/namespaces/availability-demo/pods?labelSelector=app%3Dresty: (8.864864ms) 200 [[openshift/v1.5.2+43a9be4 (linux/amd64) kubernetes/43a9be4 system:serviceaccount:openshift-infra:hpa-controller] 10.105.8.81:33945] 
I0524 10:17:47.559909  1 panics.go:76] GET /api/v1/namespaces/availability-demo/pods?labelSelector=app%3Dresty: (5.725342ms) 200 [[openshift/v1.5.2+43a9be4 (linux/amd64) kubernetes/43a9be4 system:serviceaccount:openshift-infra:hpa-controller] 10.105.8.81:33945] 
I0524 10:17:47.560977  1 panics.go:76] PATCH /api/v1/namespaces/availability-demo/events/resty.14c14bbf8b89534c: (6.385846ms) 200 [[openshift/v1.5.2+43a9be4 (linux/amd64) kubernetes/43a9be4 system:serviceaccount:openshift-infra:hpa-controller] 10.105.8.81:33945] 
I0524 10:17:47.565418  1 panics.go:76] GET /api/v1/proxy/namespaces/openshift-infra/services/https:heapster:/api/v1/model/namespaces/availability-demo/pod-list/resty-1722683747-kmbw0/metrics/custom/requests_count?start=2017-05-24T10%3A12%3A47Z: (5.015336ms) 200 [[openshift/v1.5.2+43a9be4 (linux/amd64) kubernetes/43a9be4 system:serviceaccount:openshift-infra:hpa-controller] 10.105.8.81:33945] 
I0524 10:17:47.569843  1 panics.go:76] GET /api/v1/namespaces/availability-demo/pods?labelSelector=app%3Dresty: (4.040029ms) 200 [[openshift/v1.5.2+43a9be4 (linux/amd64) kubernetes/43a9be4 system:serviceaccount:openshift-infra:hpa-controller] 10.105.8.81:33945] 
I0524 10:17:47.575530  1 panics.go:76] PUT /apis/autoscaling/v1/namespaces/availability-demo/horizontalpodautoscalers/resty/status: (4.894835ms) 200 [[openshift/v1.5.2+43a9be4 (linux/amd64) kubernetes/43a9be4 system:serviceaccount:openshift-infra:hpa-controller] 10.105.8.81:33945] 
I0524 10:17:47.575856  1 horizontal.go:438] Successfully updated status for resty 
W0524 10:17:47.575890  1 horizontal.go:104] Failed to reconcile resty: failed to compute desired number of replicas based on Custom Metrics for Deployment/availability-demo/resty: failed to get custom metric value: did not recieve metrics for any ready pods 

UPDATE:发现了什么要求HPA问题通过代理heapster收集自定义指标。这个请求总是返回空指标数组:

GET /api/v1/proxy/namespaces/openshift-infra/services/https:heapster:/api/v1/model/namespaces/availability-demo/pod-list/availability-example-1694583826-55hqh/metrics/custom/requests_count?start=2017-05-25T13%3A14%3A24Z HTTP/1.1 
Host: kubernetes-master:8443 
Authorization: Bearer hpa-agent-token 

,并返回

{"items":[{"metrics":[],"latestTimestamp":"0001-01-01T00:00:00Z"}]} 

UPDATE:事实证明,这HPA请求heapster通过代理,并heapster - 反过来 - 要求“总结“kubernetes api。 接下来的问题是 - 为什么kubernetes“摘要” API不与度量上述请求的应答,尽管存在指标?

回答

0

可能是疯狂的猜测,但我自己在自制集群上遇到了这个问题,我遇到的两件事是令牌问题,其中我的HA主设置证书没有正确设置,另一个问题是关于我的kubedns。不知道这是适用于openshitf。

+0

我想回答有一些授权方面的问题,这将是更好=),但遗憾的是没有客户端/服务器的报告说,他们不能检查任何证书链或解决任何名称 - 即使所有的请求都被上主处理。任何感谢你的回应。问题是目前实际的 - 我会尽力解决这个问题。 –