【问题标题】: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
【解决方案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 是公认的第三方监控工具,尤其适用于自定义指标等。