forked from ben1234560/k8s_PaaS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
第九章——工作中的唠嗑及常用操作.md
57 lines (35 loc) · 2.64 KB
/
第九章——工作中的唠嗑及常用操作.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
## 第九章——工作中的唠嗑及常用操作
> 唠嗑章节,本章节会增加一些在工作中常用的操作,以及开发交付的一些贴近场景的组件及工具代替原本教程中的内容
## 唠嗑
### 关于监控
第七章节中,我们用到Promtheus来做监控,随着不断更新换代,为了更轻便、快速和简洁,以及更好的兼容其他不同程序,我们会采用Jaeger、ELK、Telegraf、Grafana的组合,再加上时序数据库InfluxDB。去掉Dashboard、Promtheus,因为客户只需要开发平台,而不需要频繁的修改k8s。
- **Jaeger:分布式追踪系统**(go语言),微服务系统更需要全链路跟踪,传统中,页面bug我们会开始排查前端问题,前端确认没问题说调用接口有错误日志,我们在去看后端,看完后端说底层就报错我们再去排查集群问题实在太耗费时间了,而全链路跟踪可以直接明了的看到是哪一环节的问题。
- **ELK:ES、Logstash、Kibana**
- **Telegraf:数据采集工具**(go语言),代替Prometheus
- **InfluxDB:时序数据库**(go语言),代替TSDB,各个指标都高于TSDB,随着推出时间越来越久,对市面上的产品也已经很兼容了。
- **Grafana:监控指标展示工具**(go语言)
##### 关于InfluxDB在实际应用中遇到的情况
在生产中由于机器数过多,使用默认配置的InfluxDB直接撑爆内存,重启内存会逐渐增大然后挂掉,也没办法进入,会报refused并提示确认是否在running,解决办法是直接把influx对应的路径下大的数据目录_retention结尾下的数字文件夹全部删掉,这样就有足够的空间,进入influx修改数据保存日期`alter retention policy "db_name__retention" on "db_name" duration 7d default`
## 命令
k8s查找相关内容
~~~
kubectl get $DEPLOY -n$NAMESPACE -o yaml |grep $SEARCH_SOMETHINE
~~~
> 查看哪个名称空间中那个类型配置里有这个内容,-o yaml 输出yaml格式内容
全部重启/删除指定空间下的pod
~~~
kubectl delete pods --all -n$NAMESPACE
kubectl delete --all pods --namespace=$NAMESPACE
~~~
> 删除deploy之前可以先批量下载到一个文件,kubectl get deploy -n$NAMESPACE -o yaml > backup.yaml,然后再批量创建 kubectl create -f backup.yaml -n$NAMESPACE
批量重启/删除指定空间下的pod
~~~
kubectl get pods -n$NAMESPACE| grep -v Running | awk '{print $1}' | xargs kubectl delete pod -n$NAMESPACE
~~~
> grep -v:反取没有running状态的pod
>
> awk '{print $1}' :stdin出来pod名字,传递给xargs使用
查某个服务ip
~~~
kubectl get svc $DEPLOYNAME -n$NAMESPACE
~~~