背景
使用kubesphere搭建了一个三节点的集群,多次对服务组件进行安装卸载,后面发现有台node内存占用特别高。
处理过程
在linux上top看内存主要被rsyslogd进程占用,最高占用72%。
查看rsyslog相关的日志,如/var/log/kern.log。提示有个tcp连接异常,端口是9200,联想到是服务组件中的logging,里面有elasticsearch,推测是pod异常了。
Mar 1 10:28:12 node2 kernel: [1551913.020125] net_ratelimit: 3 callbacks suppressed
Mar 1 10:28:12 node2 kernel: [1551913.020128] IPVS: rr: TCP 10.233.48.51:9200 - no destination available
Mar 1 10:28:12 node2 kernel: [1551913.020795] IPVS: rr: TCP 10.233.48.51:9200 - no destination available
Mar 1 10:28:12 node2 kernel: [1551913.021425] IPVS: rr: TCP 10.233.48.51:9200 - no destination available
Mar 1 10:28:13 node2 kernel: [1551914.015619] IPVS: rr: TCP 10.233.48.51:9200 - no destination available
Mar 1 10:28:14 node2 kernel: [1551914.204103] IPVS: rr: TCP 10.233.48.51:9200 - no destination available
Mar 1 10:28:14 node2 kernel: [1551915.036109] IPVS: rr: TCP 10.233.48.51:9200 - no destination available
Mar 1 10:28:14 node2 kernel: [1551915.036583] IPVS: rr: TCP 10.233.48.51:9200 - no destination available
Mar 1 10:28:14 node2 kernel: [1551915.037133] IPVS: rr: TCP 10.233.48.51:9200 - no destination available
Mar 1 10:28:16 node2 kernel: [1551917.044257] IPVS: rr: TCP 10.233.48.51:9200 - no destination available
Mar 1 10:28:16 node2 kernel: [1551917.066199] IPVS: rr: TCP 10.233.48.51:9200 - no destination available
logging组件已经被我移除了,但是查看kubesphere-logging-system下还有许多pod,于是进入项目管理页面,手动将项目kubesphere-logging-system
删除。
发现项目一直在删除中,推测是pvc的关系,查看/var/log/syslog,提示volume异常。
Mar 1 11:05:00 node2 kubelet[10994]: E0301 11:05:00.355639 10994 kubelet_volumes.go:154] orphaned pod "e27b6657-8de2-476f-ba9b-5e7347ebc170" found, but volume subpaths are still present on disk : There were a total of 2 errors similar to this. Turn up verbosity to see them.
进入/var/lib/kubelet/pods目录,cat e27b6657-8de2-476f-ba9b-5e7347ebc170/etc-hosts
,查看hosts。
# Kubernetes-managed hosts file.
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.233.96.245 elasticsearch-logging-discovery-0.elasticsearch-logging-master.kubesphere-logging-system.svc.cluster.local elasticsearch-logging-discovery-0
查看所有pod的ip,kubectl get pods -A -o wide | grep 10.233.96.245
,发现不存在10.233.96.245这个IP的pod,确认目录是之前的pod遗留下来的,于是删除掉。
再次查看内存,发现内存使用率还是没有降下来。于是将rsyslog重启,内存降下来了。
总结
1.kubesphere对服务组件的管理还不是很完善,会出现删除不掉服务组件的情况,后续建议可以采用开关的形式来管理服务组件。
2.内存占用高,定位到内存后,就不知道怎么去定位具体的原因,还需要进一步学习。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。