【问题标题】:Kubernetes Pod Horizontal Autoscaler pod and object selector field is a string?Kubernetes Pod Horizo​​ntal Autoscaler pod 和对象选择器字段是字符串吗?
【发布时间】:2020-10-29 13:37:04
【问题描述】:

https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/ 的 HPA 文档提供了 selector 属性的两个示例,一个用于 pod,另一个用于对象度量类型。这些示例之一是嵌套对象,另一个是字符串。例如:

- type: External
  external:
    metric:
      name: queue_messages_ready
      selector: "queue=worker_tasks"
    target:
      type: AverageValue
      averageValue: 30

type: Object
object:
  metric:
    name: http_requests
    selector: {matchLabels: {verb: GET}}

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#metricidentifier-v2beta2-autoscaling 的 API 文档为 selector 字段提供此描述:

选择器是给定指标的标准 kubernetes 标签选择器的字符串编码形式

这是否意味着您可以将selector 属性定义为字符串(例如selector: "matchLabels: {verb: GET}")以及嵌套对象?

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    原来选择器必须是地图,否则会出现以下错误:

    error: error validating "customresource.yml": error validating data: ValidationError(HorizontalPodAutoscaler.spec.metrics[0].object.metric.selector): invalid type for io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector: got "string", expected "map"; if you choose to ignore these errors, turn validation off with --validate=false 
    

    这也适用于外部指标类型,因此 K8s 文档在提供传递字符串的示例时似乎不正确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 2021-06-01
      • 2018-10-09
      • 2018-10-09
      • 2020-01-16
      • 2019-12-10
      • 2019-11-25
      相关资源
      最近更新 更多