weave scope

监控呢,我准备先试试weave scope

kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d '\n')"

weave scope

可以查看容器的监控信息。

weave scope

可以实时通过web shell与容器交互。

weave scope

不过这个家伙很吃资源,我这个4核8G的小鸡要受不了了。

但是weave scope的社区版本缺少一个很关键的功能:用户认证。要知道这个家伙是可以web shell登录到host的,没有认证相当于裸奔。

Prometheus + Grafana

更通用的方案是用Prometheus配合Grafana。

Prometheus是一个常用的监控(monitoring)、告警(alerting)的开源软件。详细介绍请参考官网

了解一下prometheus的架构。

prometheus

  • the main Prometheus server which scrapes and stores time series data
  • client libraries for instrumenting application code
  • a push gateway for supporting short-lived jobs
  • special-purpose exporters for services like HAProxy, StatsD, Graphite, etc.
  • an alertmanager to handle alerts
  • various support tools

注意Prometheus的数据流。Prometheus主动去targets那里抓取metrics的,对于short-lived jobs,则是 push to PushGateway后存储,然后等Prometheus去抓取。告警时,Prometheus会主动Push到alertmanager。

部署用的是 Prometheus Operator

建议先部署一个example-app,了解一下Prometheus Operator的机制。简单来说,Prometheus Operator 监控 prometheuses.monitoring.coreos.com资源,该资源会定义需要关注的 ServiceMonitor。用户可以通过添加相同label的ServiceMonitor,来增加新的要监控的应用。

prometheus

实际应用时,可以直接使用 Prometheus Operator的 cluster-monitoring,简单一条命令就是

kubectl apply -f prometheus-operator-0.23.2/contrib/kube-prometheus/manifests/

manifests会

  • 创建prometheus operator
  • 创建1个CRD prometheuses.monitoring.coreos.com,operator会根据该CRD创建一个StatefulSet,即真正的Prometheus服务;
  • 创建若干个ServiceMonitor,例如 apiserver, coredns, node-exporter等。
  • 创建node exporter,向prometheus提供node的metrics
  • 创建grafana

直接上图吧。

grafana

results matching ""

    No results matching ""