当前位置:科学 > 正文

K8S初体验(三)使用k8s部署loki+prometail+grafana

2023-07-09 15:09:38  来源:蒜末半

公司IT高级专家说loki+grafana比ELK好,我也不懂。ELK我是用过的,grafana也是和普米一起用过的,但是loki确实没用过,prometail也没用过,所以本周末决定卷一把,部署试试。结果从昨晚(7月7日)9点多开始,到今天(7月8日)晚上9点多,终于在k8s环境下成功部署。

本次部署不涉及一些高可用的主题,毕竟我是k8s初体验嘛。但即使如此,也耗时较久,没有陪同家人,大部分时间坐在电脑面前,窗口开了无数又关了无数,好在功夫不负有心人,终于安装成功,为此,特整理此文。


【资料图】


开关无数窗口

主要参考

没有各位大佬的分享,很难实施。本文主要记录一些关键点,防止踩坑。

loki涉及storageclass,我不太理解,所以耗时较久。

k8s学习(三十二)K8s部署Loki日志收集_k8s loki_码农-文若书生的博客-CSDN博客

k8s学习(十七) 配置并使用storageclass_storageclassname_码农-文若书生的博客-CSDN博客

grafana基本一次成功。

k8s学习(二十七) k8s部署grafana_k8s grafana_码农-文若书生的博客-CSDN博客

实战:用“廉价”的NFS作为K8S后端存储(瀹炴垬锛氱敤鈥滃粔浠封€濈殑NFS浣滀负K8S鍚庣瀛樺偍 - 鐭ヤ箮)-------<不知为何知乎的是乱码>

使用 Loki 实现 Kubernetes 容器日志监控_loki日志监控_愿许浪尽天涯的博客-CSDN博客---这里面有个报错可以参考:Not ready: Unable to find any logs to tail. Please verify permissions, volumes, scrape_config, etc.

文件总览

[root@node01 loki]# pwd/root/loki[root@node01 loki]# tree.├── bak #测试本地存储用,以失败而告终,最后不得已安装nfs│   ├── loki-storageclass.yaml│   ├── loki-storage.yaml│   └── loki-volume.yaml├── grafana-chown-job.yaml├── grafana-deploy.yaml├── grafana-svc.yaml├── grafana-volume.yaml├── loki-configmap.yaml├── loki-promtail-configmap.yaml├── loki-promtail-rbac.yaml├── loki-promtail.yaml├── loki-rbac.yaml├── loki.yaml├── nfs-class.yaml#重复的storageclass├── nfs-client-class.yaml├── nfs-client-sa.yaml├── nfs-client.yaml├── nfs-deployment.yaml├── nfs-rbac.yaml├── test-pvc2.yaml#测试nfs用└── test-stateful-nfs-storageclass.yaml#测试nfs用1 directory, 21 files

主要要点

1、需要对持久存储有一定了解,了解pv/pvc的关系。

这个是我花费了较多时间学习了解的。此处就不多说了。简而言之:先建pv,再创pvc。

2、grafana的默认密码需要更改:避免弱口令

这点很多研发部署的时候会不注意,默认admin/admin,妥妥一个弱口令嘛。曾经公司有研发因此付出惨痛教训。

任何时候都要避免弱口令

3、kubectl命令集

红色表示根据不同的yaml或资源调整

kubectl apply -f loki.yaml-n kube-opskubectl describe pods loki-0-n kube-opskubectl delete pvcstorage-loki-0-n kube-opskubectl describe pvstorage-loki-0-n kube-opskubectl exec -it loki-promtail-5h669-n kube-ops /bin/bashkubectl get pvc-n kube-opskubectl get pods-n kube-ops -o wide | grep promtail|awk {"print $6"}kubectl logs loki-promtail-v6998-n kube-ops

4、一些报错的解决办法

命名空间统一:namespace: kube-ops,有忘了改的就会报错。kubectl apply -f的时候别忘了-n kube-ops,否则建到default中,你在其他空间找不到的。appVersion使用apps/v1这样的,网上的有些会调整,看报错就知道了selector报错:就是补全下列(见后图)还有mountPath和hostPath一致
selector:    matchLabels:      app: grafana

图二、注意点

图三、注意点


图四:注意点,mountPath和hostPath需要一致,找不到就到容器中看看目录,然后改了重建


图五:这个我是注释了,也不知道会不会有啥问题,也不知道啥原因,但是不注释就是报readonly,没法mkdir


invalid type for io.k8s.api.core.v1.ConfigMap.data: got "map", expected "string";error: unable to recognize "grafana-deploy.yaml": no matches for kind "Deployment" in version "extensions/v1beta1"missing required field "selector" in io.k8s.api.apps.v1.DeploymentSpec; i2 pod has unbound immediate PersistentVolumeClaimsUnexpected error getting claim reference to claim "kube-ops/www-nfs-web-0": selfLink was empty, can"t make reference---上面有图标号为1的images可以解决这个问题。Failed to watch *v1.Pod: failed to list *v1.Pod: pods is forbidden: User "system:serviceaccount:kube-ops:loki-promtail" cannot list resource "pods" in API group "" at the cluster scope0/2 nodes are available: 2 persistentvolumeclaim "storage-loki-0" not found.

关键词:

推荐阅读

月壤形成的主要原因 月壤与土壤有什么区别

月壤形成的主要原因月壤形成过程没有生物活动参与,没有有机质,还极度缺水干燥;组成月壤的矿物粉末基本是由陨石撞击破砰形成,因此,粉末 【详细】

域名抢注是是什么意思?投资角度来看什么域名好?

域名抢注是是什么意思域名抢注是通过抢先注册的方式获得互联网删除的域名的使用权。域名是由点分隔的一串数字,用于标记一台计算机或一组计 【详细】

捷达保养费用是多少?捷达是哪个国家的品牌?

捷达保养费用是多少?全新捷达的保修期为2年或6万公里,以先到者为准,新车可享受一次免费保养,首次免费保养在5000-7500km或1年内进行。如 【详细】

天然气泄露会造成爆炸吗?天然气泄漏怎么办?

天然气泄露会造成爆炸吗?家里用的天然气如果泄露是会发生爆炸的。当空气中含有混合天然气时,在与火源接触的一系列爆炸危险中,就会发生爆 【详细】

四部门明确App收集个人信息范围 个人信息保护范围判断标准

四部门明确App收集个人信息范围近日,国家互联网信息办公室、工业和信息化部、公安部、国家市场监督管理总局联合印发《常见类型移动互联网 【详细】

关于我们  |  联系方式  |  免责条款  |  招聘信息  |  广告服务  |  帮助中心

联系我们:85 572 98@qq.com备案号:粤ICP备18023326号-40

科技资讯网 版权所有