【TiDB 4.0 PCTA 学习笔记】- 3.2.1 TiDB Cluster Monitoring(K8s 部署的 TiDB 集群监控)@2班+庞潇

课程名称:301+【TiDB 4.0 PCTA 学习笔记】- 3.2.1 TiDB Cluster Monitoring(K8s 部署的 TiDB 集群监控)

学习时长:

30分钟。

课程收获:

深刻了解了K8S部署SVC的方法,以及如何配置和使用Ingress来访问grafana。顺便了解了PVC,PV,StorageClass关联关系和部署方法。

课程内容:

1.如何在k8s上部署tidb集群?

需通过yaml文件配置进行部署,培训方案中涉及的地址无法打开,可通过如下链接查询:

https://github.com/pingcap/tidb-operator/blob/master/examples/basic/tidb-monitor.yaml

1
需将metadata:name替换为tidb监控名称。Spec:cluster:name:basic替换为集群名称。

部署指令:kubectl apply -f ${tidb-monitor-file}.yaml -n {namespace}

默认为当前namespace,如果需要部署到其他namespace需指定。

检查部署是否成功:

Kubetcl get pod -l app.kubernetes.io/instance=basic -n ${namespace}|grep monitor

2.持久化和PV、PVC、StorageClass讲解

PVC描述的是Pod想要使用的持久化存储的属性,比如存储的大小,读写权限等.而PV则是一个具体的Volume属性,比如Volume的类型,挂载目录等.而StorageClass的作用,则是充当PV的模板,从而可以动态创建需要的PV.

2

详细配置方法参考可查看https://www.cnblogs.com/dengbingbing/p/10399207.html
3

在我们配置时,如果希望监控信息持久化,不会因为POD删除而删除,则可以配置图上的信息。其中storageclassname需和PVC配置相匹配。

如果不需要的话可手动删除:

Kubectl delete tidbmointor ${tidb-monitor-name} -n ${namespace}

3.如何访问GRAFANA和promethus

方式1:不推荐

通过port-forward暴露一个端口去访问grafana的svc,svc是K8S的POD提供的一个服务名称。

访问方法:

Kubetcl -n $namespace} port-forward svc/${grafana-svc-name} 3000:3000>/tmp/pf-grafana.log &

svc名称可通过 kubectl get svc -n ${namespace}

方式2:推荐

通过Ingress方式访问。什么是ingress?

Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由。 流量路由由 Ingress 资源上定义的规则控制。可以理解为它像是一个提供负载均衡的反向代理服务器。其功能是由于Nginx和ingress聚会在一起实现的。

Ingress 组成

ingress controller
将新加入的Ingress转化成Nginx的配置文件并使之生效
ingress服务
将Nginx的配置抽象成一个Ingress对象,每添加一个新的服务只需写一个新的Ingress的yaml文件即可

Ingress 工作原理

1.ingress controller通过和kubernetes api交互,动态的去感知集群中ingress规则变化,
2.然后读取它,按照自定义的规则,规则就是写明了哪个域名对应哪个service,生成一段nginx配置,
3.再写到nginx-ingress-control的pod里,这个Ingress controller的pod里运行着一个Nginx服务,控制器会把生成的nginx配置写入/etc/nginx.conf文件中,
4.然后reload一下使配置生效。以此达到域名分配置和动态更新的问题。

4

https://kubernetes.io/zh/docs/concepts/services-networking/ingress/

使用前,必须先配置其控制器否则无法提供工作:

https://kubernetes.io/zh/docs/concepts/services-networking/ingress-controllers/

以下文档提供了一个通俗易懂的部署流程:

https://www.cnblogs.com/panwenbin-logs/p/9915927.html

4.k8s上的promethus和区别

没有了exporter两个组件来监控主机和网络,因为K8S是一个POD节点和物理机是有区别的。

单独研发了KUBE-PROMETHUS用于对K8S进行兼容。

5.如何访问dashboard?

5

需在部署TIDB MONITOR时开启enabledashboradinterproxy选项。

之后的部署方式和之前提到的promethus部署相同。区别仅是端口和SVC名称区别。

端口默认为10262。

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

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

https://kubernetes.io/zh/docs/concepts/services-networking/ingress-controllers/
https://github.com/pingcap/tidb-operator/blob/master/examples/basic/tidb-monitor.yaml
https://www.cnblogs.com/panwenbin-logs/p/9915927.html

同学你好,感谢参与 TiDB 4.0 课程的学习!

本篇笔记逻辑清晰、内容丰富,被评选为优质笔记,将额外获得 20 积分,并在 「TiDB 培训」分类下获得“置顶”权益,积分兑换规则将于近期开放,敬请关注!

期待您继续产出优质内容!

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。