课程名称:301+3.2.1 TiDB Cluster Monitoring(K8s 部署的 TiDB 集群监控)
学习时长:40分钟
课程收获:了解如何在k8s上部署集群监控
课程内容:
讲师:沈刚
1、 k8s上部署和配置Grafana和Prometheus
创建Grafana和Prometheus的yaml配置文件
Metadata.name的值为TidbMonitor的名称
Spec.cluster.name的值是需要监控的tidb集群的名称
部署TidbMonitor集群
Kubectl apply -f ${tidb-monitor-file}.yaml -n ${namespace}
检查Tidb monitor已启动
Kubectl get pod -1 app.kubernets.io/instance=basic -n ${namespace} | grep monitor
删除集群监控
Kubectl delete tidbmonitor ${tidb-monitor-name} -n ${namespace}
2、 访问Grafana和Prometheus
有两种访问方式
A、 通过port-forward的方式,此种方式不建议在生产环境使用。
Kubectl get svc -n ${namespace} 找到Grafana对应的服务名称
Kubectl -n ${namespace} port-forward svc/${Grafana-svc-name} 3000:3000 &>/tmp/pf-grafana.log & 将pod的3000端口映射到本机3000端口
B、 通过ingress方式访问,这种是推荐的方式。
首先部署Ingress controller
根据模板配置tidbmonitor,配置成功后,就可以访问啦。
3、 监控Kubernetes
通过对k8s的监控,来监控Tidb的运行状态。
建议使用kube-prometheus来监控kubernetes。包括以下几部分内容
一个HA Prometheus集群
一个HA Alertmanager集群,通过这个集群可以发送Tidb集群的告警
一个node-exporter的监控
Grafana的访问界面和告警规则
Kubernetes API 的kube-state-metrics的监控。
4、 访问Dashboard
Dashboard是tidb4.0开始提供的图形化管理界面。可用于管理和诊断Tidb集群。
软件版本要求:
TiDB Operator v1.1.1及以上
TiDB v4.0.1及以上
在TiDB集群中设置spec.pd.enableDashboardInternalProxy: true
和Grafana和Prometheus一样,也是两种方式访问
A、 通过port-forwar方式,同样不推荐在生产环境使用
在TiDB集群中设置spec.pd.enableDashboardInternalProxy: true 并使其生效
Kubectl apply -f
将访问端口暴露出来
Kubectl port-forward svc/basic-discovery -n ${namespace} 10262:10262
输入地址访问:http://localhost:10262/dashboard
如果要使用IP地址代替localhost,需要在Kubectl port-forward命令中添加 –address 0.0.0.0
B、 通过ingress方式访问
部署ingress:kubectl apply -f
通过配置模板进行配置
学习过程中遇到的问题或延伸思考:
- 问题 1:
- 问题 2:
- 延伸思考 1:
- 延伸思考 2: