【TiDB 4.0 PCTA 学习笔记】- 3.2.1 K8s 部署的 TiDB 集群监控@1班 - 江坤

课程名称:课程版本(301)+ 3.2.1 TiDB Cluster Monitoring(K8s 部署的 TiDB 集群监控)

学习时长:

30 min

课程收获:

在k8s上进行监控的部署和查看

课程内容:

Config and Deploy Grafana and Prometheus

  • 首先要创建一个 yaml 的配置文件。
  • 模板参考网站:https://raw.githubusercontent.com/pingcap/tidb-operator/master/examples/basic/tidb-monitor.yaml。
  • metadata.name: 设置监控本身的名字。
  • spec.clusters.name: 集群名称,用来找集群。
  • kubectl apply -f ${tidb-monitor-file}.yaml -n ${namespace} 用于部署监控。
  • kubectl get pod -l app.kubernetes.io/instance=basic -n ${namespace} | grep monitor 用于查看部署的监控状态,是否成功启动。
  • 默认监控数据不会持久化保存,需要设置参数并设置保存数据的位置
  • kubectl delete tidbmonitor ${tidb-monitor-name} -n ${namespace} 用于删除

Access Grafana and Prometheus

  • 通过暴露端口给外部访问(不建议生产环境使用,会有性能及稳定性方便的问题,测试环境可以使用)
    • kubectl get svc -n ${namespcae},查看集群情况
    • kubectl -n ${namespace} port-forward svc/${grafana-svn-name} 3000:3000 &>/tem/pf-grafana.log &
    • 映射3000端口用于访问,3000为默认端口
  • 通过 Ingress 方式访问(推荐方式)
    • 部署一个 Ingress controller
    • 在TiDB监控中配置 Ingress
    • TiDBitMonitor 的 Ingress 同样支持 TLS

Monitor Kubernetes

  • 建议通过 kube-prometheus 来监控 Kubernetes
    • 正常环境部署于K8s部署不同

    • TiDB运行在POD中, 需要对K8s集群环境监控来查看TiDB的运行状态

    • 会启动一个 HA Prometheus cluster

    • 会启动一个 HA Alertmanager cluster,可以复用,TiDB不用再次启动该服务

    • An node-exporter DaemonSet

    • Grafana with various dashboards and alert rules

    • kube- state-metrics for Kubernetes API object metrics ingestion

Access TiDB Dashboard

  • TIDB Operator v1.1.1 及以后的版本
  • TiDB v4.0.1 及以后的版本
  • 早期版本会支持不完善,导致部分功能缺失
  • enableDashboardInternalProxy 设置为 true 开启Dashboard功能
  • 访问界面与前面访问Grafana 和 Prometheus一样,两种方式
    • 通过 kubectl port-forward
    • 如果想暴露给其他机器用ip方式访问,则需要再开启的命令中添加 --address 0.0.0.0 来提供访问
    • 通过Ingress方式访问,填写配置文件进行部署,支持TLS加密

学习过程中遇到的问题或延伸思考:

  • 问题 1:听了这么久的监控,有个小问题,能否直接把Grafana和Prometheus的监控配置集成Dashboard上,而不是单独再暴露端口和服务?

学习过程中参考的其他资料