多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 部署prometheus-operator 下载对应的包 ``` git clone https://gitee.com/careyjike_173/k8s_install.git cd k8s_install/deploy/prometheus-operator ``` 我们这里使用一个独立的namespace ``` kubectl create namespace monitoring ``` ### 自动发现配置 [参考文档](https://www.qikqiak.com/post/prometheus-operator-advance/) 我们想要在 Prometheus Operator 当中去自动发现并监控具有`prometheus.io/scrape=true`这个 annotations 的 Service,具体配置见`prometheus-additional.yaml` 要想自动发现集群中的 Service,就需要我们在 Service 的annotation区域添加`prometheus.io/scrape=true`的声明,然后通过这个文件`prometheus-additional.yaml`创建一个对应的 Secret 对象 ``` $ kubectl create secret generic additional-configs --from-file=prometheus-additional.yaml -n monitoring secret "additional-configs" created # 验证secret $ kubectl get secrets additional-configs -n monitoring -o yaml apiVersion: v1 data: prometheus-additional.yaml: LSBqb2JfbmFtZTogJ2t1YmVybmV0ZXMtc2VydmljZS1lbmRwb2ludHMnCiAga3ViZXJuZXRlc19zZF9jb25maWdzOgogIC0gcm9sZTogZW5kcG9pbnRzCiAgcmVsYWJlbF9jb25maWdzOgogIC0gc291cmNlX2xhYmVsczogW19fbWV0YV9rdWJlcm5ldGVzX3NlcnZpY2VfYW5ub3RhdGlvbl9wcm9tZXRoZXVzX2lvX3NjcmFwZV0KICAgIGFjdGlvbjoga2VlcAogICAgcmVnZXg6IHRydWUKICAtIHNvdXJjZV9sYWJlbHM6IFtfX21ldGFfa3ViZXJuZXRlc19zZXJ2aWNlX2Fubm90YXRpb25fcHJvbWV0aGV1c19pb19zY2hlbWVdCiAgICBhY3Rpb246IHJlcGxhY2UKICAgIHRhcmdldF9sYWJlbDogX19zY2hlbWVfXwogICAgcmVnZXg6IChodHRwcz8pCiAgLSBzb3VyY2VfbGFiZWxzOiBbX19tZXRhX2t1YmVybmV0ZXNfc2VydmljZV9hbm5vdGF0aW9uX3Byb21ldGhldXNfaW9fcGF0aF0KICAgIGFjdGlvbjogcmVwbGFjZQogICAgdGFyZ2V0X2xhYmVsOiBfX21ldHJpY3NfcGF0aF9fCiAgICByZWdleDogKC4rKQogIC0gc291cmNlX2xhYmVsczogW19fYWRkcmVzc19fLCBfX21ldGFfa3ViZXJuZXRlc19zZXJ2aWNlX2Fubm90YXRpb25fcHJvbWV0aGV1c19pb19wb3J0XQogICAgYWN0aW9uOiByZXBsYWNlCiAgICB0YXJnZXRfbGFiZWw6IF9fYWRkcmVzc19fCiAgICByZWdleDogKFteOl0rKSg/OjpcZCspPzsoXGQrKQogICAgcmVwbGFjZW1lbnQ6ICQxOiQyCiAgLSBhY3Rpb246IGxhYmVsbWFwCiAgICByZWdleDogX19tZXRhX2t1YmVybmV0ZXNfc2VydmljZV9sYWJlbF8oLispCiAgLSBzb3VyY2VfbGFiZWxzOiBbX19tZXRhX2t1YmVybmV0ZXNfbmFtZXNwYWNlXQogICAgYWN0aW9uOiByZXBsYWNlCiAgICB0YXJnZXRfbGFiZWw6IGt1YmVybmV0ZXNfbmFtZXNwYWNlCiAgLSBzb3VyY2VfbGFiZWxzOiBbX19tZXRhX2t1YmVybmV0ZXNfc2VydmljZV9uYW1lXQogICAgYWN0aW9uOiByZXBsYWNlCiAgICB0YXJnZXRfbGFiZWw6IGt1YmVybmV0ZXNfbmFtZQo= kind: Secret metadata: creationTimestamp: "2019-05-10T02:54:22Z" name: additional-configs namespace: monitoring resourceVersion: "2307904" selfLink: /api/v1/namespaces/monitoring/secrets/additional-configs uid: e9a83017-72ce-11e9-b2cf-005056b07581 type: Opaque ``` ``` $ kubectl apply -f bundle.yaml $ kubectl apply -f manifests/ $ kubectl apply -f kubernetes-control-service/ ``` ### 配置邮件报警 验证Pod都是否Running ### 部署treafik访问grafana ``` $ cat ingress.yaml --- apiVersion: extensions/v1beta1 kind: Ingress metadata: name: traefik namespace: monitoring annotations: kubernetes.io/ingress.class: traefik spec: rules: - host: grafana.ingress.com http: paths: - backend: serviceName: grafana servicePort: 3000 - host: alert.ingress.com http: paths: - backend: serviceName: alertmanager-main servicePort: 9093 - host: prometheus.ingress.com http: paths: - backend: serviceName: prometheus-k8s servicePort: 9090 ``` ![](https://carey-akhack-com.oss-cn-hangzhou.aliyuncs.com/images/20190509/1.png)