使用InfluxDB使用自定义指标进行水平Pod自动缩放

时间:2019-04-23 23:43:17

标签: kubernetes adapter influxdb autoscaling

我在Kubernetes集群中部署了TICK stack以用于监视。我的应用程序将其自定义数据推送到它。

我尝试在Prometheus适配器的帮助下使用自定义指标进行水平pod自动缩放。我很好奇是否也有针对InfluxDB的适配器?

流行的Kubernetes custom metrics adapters不包括InfluxDB。有没有一种方法可以使用我现有的基础结构(包含InfluxDB)通过应用程序中的自定义指标自动缩放Pod?

3 个答案:

答案 0 :(得分:0)

为什么不将Prometheus的自定义指标与influxdb-exporter一起使用?我不明白为什么它不起作用。

答案 1 :(得分:0)

It is possible to use influxdb with heapster, in attachments some files that I set up to use in an easy way.
First run influxdb.yaml
Run second heapster-rbac.yaml
Third run heapster.yaml

**INFLUXDB.YAML**

    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: monitoring-influxdb
      namespace: kube-system
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            task: monitoring
            k8s-app: influxdb
        spec:
          containers:
          - name: influxdb
            image: k8s.gcr.io/heapster-influxdb-amd64:v1.5.2
            volumeMounts:
            - mountPath: /data
              name: influxdb-storage
          volumes:
          - name: influxdb-storage
            emptyDir: {}
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        task: monitoring
        # If you are NOT using this as an addon, you should comment out this line.
        kubernetes.io/cluster-service: 'true'
        kubernetes.io/name: monitoring-influxdb
      name: monitoring-influxdb
      namespace: kube-system
    spec:
      ports:
      - port: 8086
        targetPort: 8086
      selector:
        k8s-app: influxdb

**heapster-rbac.yaml**

    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1beta1
    metadata:
      name: heapster
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: cluster-admin
    subjects:
    - kind: ServiceAccount
      name: heapster
      namespace: kube-system

**heapster.yaml**

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: heapster
      namespace: kube-system
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      name: heapster
      namespace: kube-system
    spec:
      replicas: 1
      template:
        metadata:
          labels:
            task: monitoring
            k8s-app: heapster
        spec:
          serviceAccountName: heapster
          containers:
          - name: heapster
            image: k8s.gcr.io/heapster-amd64:v1.5.4
            imagePullPolicy: IfNotPresent
            command:
            - /heapster
            - --source=kubernetes:https://kubernetes.default?kubeletHttps=true&kubeletPort=10250&insecure=true
            - --sink=influxdb:http://monitoring-influxdb.kube-system.svc:8086
    ---
    apiVersion: v1
    kind: Service
    metadata:
      labels:
        task: monitoring
        # If you are NOT using this as an addon, you should comment out this line.
        kubernetes.io/cluster-service: 'true'
        kubernetes.io/name: Heapster
      name: heapster
      namespace: kube-system
    spec:
      ports:
      - port: 80
        targetPort: 8082
      selector:
        k8s-app: heapster

答案 2 :(得分:0)

InfluxDB可以与Heapster一起使用(由@LucasSales指出),但在当前版本的Kubernetes中已弃用。
对于最新版本的Kubernetes,我们具有用于基本CPU /内存指标的指标服务器。 Prometheus是公认的第三方监视工具,尤其是对于自定义指标等。