网上服务大厅平台,为什么seo工资不高,网页制作框架,茂名网站制作网页文章目录 **修改镜像地址****访问配置****修改 Prometheus 的 service****修改 Grafana 的 service****修改 Alertmanager 的 service****安装****Prometheus验证****Alertmanager验证****Grafana验证****卸载****Grafana显示时间问题** 或者配置ingress添加ingress访问grafana… 文章目录 **修改镜像地址****访问配置****修改 Prometheus 的 service****修改 Grafana 的 service****修改 Alertmanager 的 service****安装****Prometheus验证****Alertmanager验证****Grafana验证****卸载****Grafana显示时间问题** 或者配置ingress添加ingress访问grafana和promethues Prometheus基于访问路径过滤配置ingress-tls.yaml AlertManager配置ingress-tls.yaml 重点记得删除网络测策略配置ingress-grafana,添加注解ACK配置 新方法 参考文档 [10分钟教你在k8s中部署Prometheus全家桶 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/674028745)查看对应版本 在将 kube-prometheus部署到 k8s 集群之前先确认与你的 k8s匹配的是版本然后在下载
https://github.com/prometheus-operator/kube-prometheus?tabreadme-ov-file修改镜像地址
由于网络原因kube-state-metrics和prometheus-adapter镜像地址在国内无法下载因此需要修改以下地址
vi manifests/kubeStateMetrics-deployment.yamlimage: bitnami/kube-state-metrics:2.7.0vi manifests/prometheusAdapter-deployment.yamlimage: lank8s.cn/prometheus-adapter/prometheus-adapter:v0.11.1
访问配置
为了可以从外部访问 Prometheus、Grafana、Alertmanager需要修改 service 类型为 NodePort 类型。
修改 Prometheus 的 service
vi manifests/prometheus-service.yaml# 设置对外访问端口增加如下两行
type: NodePort
nodePort: 31922 修改 Grafana 的 service
vi manifests/grafana-service.yaml# 设置对外访问端口增加如下两行
type: NodePort
nodePort: 30300 修改 Alertmanager 的 service vi manifests/alertmanager-service.yaml
# 设置对外访问端口增加如下两行
type: NodePort
nodePort: 30200安装
在kube-prometheus-0.12.0目录下执行以下命令进行安装
kubectl apply --server-side -f manifests/setup
kubectl apply -f manifests/执行完成以后访问monitoring 空间查看部署状态可以看到启动成功并且都是高可用部署
kubectl get pods -n monitoringPrometheus验证
选一台 node 节点ip31922即可访问prometheus的 Web UI
Alertmanager验证
选一台 node 节点ip30200即可访问alertmanager的 Web UI可以看到有一些报警由于alertmanager的报警配置比较复杂同时对国内的通讯工具支持有限因此可以使用PrometheusAlert进行告警配置
Grafana验证
选一台 node 节点ip30300即可访问grafana的 Web UI默认用户名密码admin/admin登录会提示更改密码登录以后可以看到已经内置了不少监控大盘
卸载
执行以下命令即可卸载相关组件
kubectl delete --ignore-not-foundtrue -f manifests/ -f manifests/setupGrafana显示时间问题
由于grafana默认时区是UTC比中国时间慢了8小时很不便于日常监控查看需要进行修改如下图
因此需要调整成中国时间utc8替换grafana-dashboardDefinitions.yaml
sed -i s/utc/utc8/g grafana-dashboardDefinitions.yaml
sed -i s/UTC/UTC8/g grafana-dashboardDefinitions.yaml
grep -i timezone grafana-dashboardDefinitions.yaml或者配置ingress
添加ingress访问grafana和promethues
这里访问是有问题的参照我kubernetes-networkpolicies网络策略问题这篇文章解决
$ cat ingress.yml
---
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:annotations:k8s.eip.work/workload: grafanak8s.kuboard.cn/workload: grafanageneration: 2labels:app: grafananame: grafananamespace: monitoring
spec:rules:- host: k8s-moni.fenghong.techhttp:paths:- backend:serviceName: grafanaservicePort: httppath: /
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: grafana-ingressnamespace: monitoring
spec:ingressClassName: nginxrules:- host: kubernetes.wistore.nethttp:paths:- path: /grafanapathType: Prefixbackend:service:name: grafanaport:number: 3000
执行apply
## 安装 ingress controller
$ kubectl apply -f https://kuboard.cn/install-script/v1.18.x/nginx-ingress.yaml## 暴露grafana及prometheus服务
$ kubectl apply -f ingress.yml
Prometheus
基于访问路径过滤
修改yamlkube-prometheus-0.5.0/manifests/prometheus-prometheus.yaml
在参数下image: quay.io/prometheus/prometheus:v2.15.2添加如下参数
externalUrl: http://.wistore.net/prometheuskubectl apply -f prometheus-prometheus.yaml配置ingress-tls.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:annotations:kubernetes.io/ingress.class: nginxnginx.ingress.kubernetes.io/use-regex: truenginx.ingress.kubernetes.io/enable-cors: truenginx.ingress.kubernetes.io/rewrite-target: /$2name: prometheus-k8snamespace: monitoring
spec:rules:- host: #写你的域名http:paths:- path: /prometheus(/|$)(.*)pathType: ImplementationSpecificbackend:service:name: prometheus-k8sport:number: 9090访问prometheus时都要带上“prometheus” 举例 https://master170.k8s:30443/prometheus/graph
AlertManager
修改yamlmanifests/alertmanager-alertmanager.yaml
在参数下image: quay.io/prometheus/alertmanager:v0.20.0添加如下参数
externalUrl: https://master170.k8s:30443/alertmanager配置ingress-tls.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:annotations:kubernetes.io/ingress.class: nginxnginx.ingress.kubernetes.io/use-regex: truenginx.ingress.kubernetes.io/enable-cors: truenginx.ingress.kubernetes.io/rewrite-target: /$2name: prometheus-k8snamespace: monitoring
spec:rules:- host: #写你的域名http:paths:# - path: /prometheus(/|$)(.*)# pathType: ImplementationSpecific# backend:# service:# name: prometheus-k8s# port:# number: 9090- path: /alertmanager(/|$)(.*)pathType: ImplementationSpecificbackend:service:name: alertmanager-mainport:number: 9093 访问alertmanager时都要带上“alertmanager” https://master170.k8s:30443/alertmanager/#/alerts
重点记得删除网络测策略
kubectl get networkpolicy -A配置ingress-grafana,添加注解
详解grafana本身自己302又跳了一下
nginx.ingress.kubernetes.io/auth-always-set-cookie设置身份验证请求返回的 cookie。默认情况下仅当上游报告代码为 200、201、204、206、301、302、303、304、307 或 308 时才会设置 cookie。Boolean_Flag此注释允许您返回时间重定向返回代码 302而不是向上游发送数据。例如将所有内容重定向到 Google返回代码为 302暂时移动nginx.ingress.kubernetes.io/temporal-redirect:ACK配置 )
新方法
修改grafana.ini文件的yaml文件 grafana.ini: |[server]domain: daxinxindahaohao.cnroot_url: http://daxinxindahaohao.cn/grafanaserve_from_sub_path: true[auth.anonymous]enabled: trueorg_role: Viewer
————————————————重启pod记得重启pod
ingress配置