自定义指标HPA

    本文中使用的yaml文件见manifests/HPA

    kubernetes1.6

    • 将heapster的启动参数 设置为 true
    • 启用custom metric API

    在kubernetes1.5以前很容易设置,参考,而在1.6中因为取消了原来的annotation方式设置custom metric,只能通过API server和kube-aggregator来获取custom metric,因为只有两种方式来设置了,一是直接通过API server获取heapster的metrics,二是部署kube-aggragator来实现。

    我们将在kubernetes1.8版本的kubernetes中,使用聚合的API server来实现自定义指标的HPA。

    kuberentes1.7+

    • 将kube-controller-manager的启动参数中--horizontal-pod-autoscaler-use-rest-clients设置为true,并指定--master为API server地址,如`—master=
    • 修改kube-apiserver的配置文件apiserver,增加一条配置,用来配置aggregator的CA证书。

    已经内置了apiregistration.k8s.io/v1beta1 API,可以直接定义APIService,如:

    部署Prometheus

    使用prometheus-operator.yaml文件部署Prometheus operator。

    这产生一个自定义的API:,可以通过浏览器访问,还可以使用下面的命令可以检查该API:

    1. $ kubectl get --raw=apis/custom-metrics.metrics.k8s.io/v1alpha1

    参考