Kubernetes 中使用 Helm 部署使用 Prometheus

December 29, 2019 · 195 words · One minute

Kubernetes 中使用 Helm 部署使用 Prometheus

使用 Helm 在 Kubernetes 中部署 Prometheus,并使用 Grafana 监控集群状态,Helm 版本为 Helm3

安装 Prometheus 和 Grafana

添加标准仓库

如果没有 stable 仓库,会提示找不到 prometheus-operator这个应用,需要先添加stable 仓库:

helm repo add stable https://kubernetes-charts.storage.googleapis.com

安装 Prometheus

使用参数指定配置

指定节点的端口用于在集群外的机器访问

helm install prometheus stable/prometheus-operator \
	--set prometheus.service.type=NodePort \
	--set prometheus.service.nodePort=30090 \
	--set grafana.service.type=NodePort \
	--set grafana.service.nodePort=30080 \
	--set grafana.adminPassword=admin

指定配置文件安装

  • 如果有需要自定义的配置,可以下载应用后修改values.yaml,然后指定该配置文件进行安装

values.yaml

prometheus:
  service:
    nodePort: 30090
    type: NodePort

grafana:
  service:
    nodePort: 30080
    type: NodePort
  adminPassword: admin

安装

helm install prometheus stable/prometheus-operator -f values.yaml

如果有更多配置项,可以通过下载 Helm 的安装包,解压后自己修改:

helm fetch stable/prometheus-operator

手动修改 SVC

如果在安装时没有指定使用节点端口,也可以手动修改 SVC,配置为节点端口:

修改 prometheus
kubectl edit svc prometheus-prometheus-oper-prometheus

spec.type修改为 NodePort,并添加nodePortspec.ports

spec:
  externalTrafficPolicy: Cluster
  ports:
  - name: web
    nodePort: 30090
    port: 9090
    protocol: TCP
    targetPort: 9090
  selector:
    app: prometheus
    prometheus: prometheus-prometheus-oper-prometheus
  sessionAffinity: None
  type: NodePort
修改 Grafana
kubectl edit svc prometheus-grafana
spec:
  externalTrafficPolicy: Cluster
  ports:
  - name: service
    nodePort: 30080
    port: 80
    protocol: TCP
    targetPort: 3000
  selector:
    app: grafana
    release: prometheus
  sessionAffinity: None
  type: NodePort

配置监控

Prometheus 默认监控了 Kubernetes 和 Node,可以直接访问节点进行查看,如直接访问 http://192.168.199.2:30090/graph

prometheus-homepage.png

使用 Prometheus 查询

通过 PromQL 查询指定的指标,可以查看数据所对应的图表,以节点 15分钟的 CPU 为例:可以直接输入node_load15查询,也可以从下拉框中选择,然后点击 Execute 生成图表:

prometheus-graph.png

使用 Grafana 查询

Prometheus 查询只能查看指定的指标,如果想要查看多个指标的聚合,或者更复杂的图表,就需要使用 Grafana 来配置查询

访问 Grafana 对应的节点,如http://192.168.199.2:30080/?orgId=1,会要求输入用户名密码,默认的用户名为 admin,如果没有指定grafana.adminPassword设置密码,则密码为prom-operator

grafana-homepage.png

配置自定义监控

点击左侧的加号,选择 Dashboard,添加新的查询,并输入相应的 PromQL 查询即可看到相应的指标

grafana-query.png

之后修改名称等其他设置,保存后就可以在面板中看到该监控了

导入监控面板

因为监控的配置项有很多,配置起来也很复杂,对于一些通用的监控,如节点的运行状态等,可以直接使用已有的面板作为监控

https://grafana.com/grafana/dashboards 中选择需要的监控,并复制面板的 id,在Grafana 首页点击加号后选择导入,输入 id 即可导入已有的面板,如已 11074这个面板为例:

grafana-import.png

grafana-import2.png

grafana-import3.png