使用外部度量标准配置水平Pod自动定标器很困难

时间:2018-10-27 03:14:39

标签: kubernetes google-kubernetes-engine

我正在尝试配置“水平Pod自动缩放器”,以根据连接的GPU的占空比缩放部署。

我正在使用GKE,而我的Kubernetes主版本是1.10.7-gke.6。

我正在研究https://cloud.google.com/kubernetes-engine/docs/tutorials/external-metrics-autoscaling上的教程。特别是,我运行了以下命令来设置自定义指标:

@using RazerMagazineDashboard.Models
@model RazerMagazineDashboard.Models.SummaryModel
@{ Layout = "~/Views/Shared/_Layout.cshtml"; }

@{
    foreach (InfoCardModel cardModel in @Model.CardModels)
    {
        @Html.Partial("~/Views/Shared/_InfoCard.cshtml", cardModel); @* Works well *@

        <partial name="_InfoCard.cshtml" model="cardModel" /> @* Renders nothing *@
        <partial name="_InfoCard.cshtml" model=@cardModel /> @* Renders nothing *@
        <partial name="~/Views/Shared/_InfoCard.cshtml" model="cardModel" /> @* Renders nothing *@
        <partial name="~/Views/Shared/_InfoCard.cshtml" model=@cardModel /> @* Renders nothing *@
    }
}

这似乎有效,或者至少我可以在/apis/custom.metrics.k8s.io/v1beta1中访问指标列表。

这是我的YAML:

kubectl create -f https://raw.githubusercontent.com/GoogleCloudPlatform/k8s-stackdriver/master/custom-metrics-stackdriver-adapter/deploy/production/adapter.yaml

我相信metricName的存在是因为它在/apis/custom.metrics.k8s.io/v1beta1中列出,并且在https://cloud.google.com/monitoring/api/metrics_gcp中进行了描述。

这是我在描述HPA时遇到的错误:

apiVersion: autoscaling/v2beta1                                            
kind: HorizontalPodAutoscaler                                              
metadata:                                                                  
  name: images-srv-hpa                                                     
spec:                                                                      
  minReplicas: 1                                                           
  maxReplicas: 10                                                          
  metrics:                                                                 
  - type: External                                                         
    external:                                                              
      metricName: container.googleapis.com|container|accelerator|duty_cycle
      targetAverageValue: 50                                               
  scaleTargetRef:                                                          
    apiVersion: apps/v1                                                    
    kind: Deployment                                                       
    name: images-srv-deployment

我真的不知道该如何调试。有人知道什么地方可能出问题了,或者我下一步该怎么做?

2 个答案:

答案 0 :(得分:0)

您使用的是“类型:外部”。对于“外部指标列表”,您需要使用“ kubernetes.io”而不是“ container.googleapis.com” [1]

替换“ metricName:container.googleapis.com |容器|加速器|任务周期”

“ metricName:kubernetes.io |容器|加速器|工作周期”

[1] https://cloud.google.com/monitoring/api/metrics_other#other-kubernetes.io

答案 1 :(得分:0)

一旦我将系统置于负载下,此问题就自动消失了。使用相同的配置,现在可以正常工作。

我不确定为什么。我最好的猜测是,StackMetrics直到达到1%以上才报告占空比值。