2017-05-24 93 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

我想回答有一些授權方面的問題,這將是更好=),但遺憾的是沒有客戶端/服務器的報告說,他們不能檢查任何證書鏈或解決任何名稱 - 即使所有的請求都被上主處理。任何感謝你的迴應。問題是目前實際的 - 我會盡力解決這個問題。 –