kubernetes自动缩放的可能指标定义在哪里

htrmnn0y  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(2)|浏览(90)

我正在尝试使用自动缩放场景(目前使用microk 8的单节点个人集群)。
基本CPU扩展工作正常。
对于更复杂的场景,我试图遵循www.example.com上的指南https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/#autoscaling-on-multiple-metrics-and-custom-metrics,但我不知道如何/在哪里定义/记录可能的pod度量/对象度量。比如说..其中记录了“每秒数据包数”。
我可以通过kubectl导航或手动运行REST API,但必须有更好的方法。
谢谢

apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
  name: php-apache
  namespace: default
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: php-apache
  minReplicas: 1
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: AverageUtilization
        averageUtilization: 50
  - type: Pods
    pods:
      metric:
        name: packets-per-second ====> where is this name defined/documented ?
      targetAverageValue: 1k
  - type: Object
    object:
      metric:
        name: requests-per-second ====> where is this name defined/documented ?
      describedObject:
        apiVersion: networking.k8s.io/v1beta1
        kind: Ingress
        name: main-route
      target:
        kind: Value
        value: 10k
8nuwlpux

8nuwlpux1#

ResourceMetric中的CPU或内存使用率为provided by kubelet,由metric-server收集
但对于packets-per-secondrequests-per-second,没有官方提供者,因此该字段实际上可以是任何值,取决于您部署的非官方自定义指标API。
https://github.com/kubernetes/metrics/blob/release-1.22/IMPLEMENTATIONS.md中列出了一些流行的自定义指标API

azpvetkf

azpvetkf2#

下面的GitHub项目提供了大量关于使用Prometheus提供的自定义指标在Kubernetes中自动缩放Pod的信息。
https://github.com/stefanprodan/k8s-prom-hpa

相关问题