【问题标题】:Using InfluxDB for Horizaontal Pod AutoScaling using Custom Metrics使用 InfluxDB 使用自定义指标进行水平 Pod 自动缩放
【发布时间】:2019-04-23 23:43:16
【问题描述】:

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

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

Kubernetes 流行的custom metrics adapters 不包括 InfluxDB 之一。有没有办法可以使用我当前的基础设施(包含 InfluxDB)使用我的应用程序中的自定义指标来自动缩放 pod?

【问题讨论】:

    标签: kubernetes adapter influxdb autoscaling


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:
      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
      

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2023-01-13
          • 2016-12-18
          • 1970-01-01
          • 1970-01-01
          • 2023-04-01
          • 2021-03-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多