1. 错误
133环境中apiserver总是停掉,重启kubelet会让apiserver启动,但过一段时间就会停掉
kubectl get nodes
# ==> 错误
The connection to the server 192.168.0.133:6443 was refused - did you specify the right host or port?
2. 排错过程
# 1. 查询apiserver进程
ps -ef|grep apiserver
# ==> 发现没有apiserver进程
# 2. 查询其docker容器
docker ps -a|grep apiserver
# ==> 输出
12234b87a841 0e422c9884cf "kube-apiserver --ad…" 22 minutes ago Up 22 minutes k8s_kube-apiserver_kube-apiserver-192.168.0.133_kube-system_dbf1c86a253c240e893e1da9a14ca801_1
038088bd719d 0e422c9884cf "kube-apiserver --ad…" 3 days ago Up 3 days k8s_kube-apiserver_kube-apiserver-192.168.0.133_kube-system_dbf1c86a253c240e893e1da9a14ca801_0
61981a225cd0 system/pause:3.1 "/pause" 3 days ago Up 3 days k8s_POD_kube-apiserver-192.168.0.133_kube-system_dbf1c86a253c240e893e1da9a14ca801_0
# ==> 发现有两个apiserver容器,容器状态显示为运行状态
# 3. 查询容器日志
docker logs 038088bd719d
# ==> apiserver received an error that is not an metav1.Status: storage.InvalidError{Errs:field.ErrorList{(*field.Error)(0xc015010d80)}}
# 4. 查询内核缓冲区信息
demsg
# ==> 输出
[1121356.749901] systemd-journald[45]: Failed to open runtime journal: No space left on device
[1121356.760059] systemd-journald[46]: Failed to open runtime journal: No space left on device
[1121356.765980] systemd-journald[47]: Failed to open runtime journal: No space left on device
# ==> 报设备上没有空间
# 5. 查询磁盘使用情况
df -h
# 发现 / 目录磁盘使用量 100%
3. 问题原因
磁盘空间满
- docker会将容器镜像保持在本地目录,还需要将容器的状态信息保存到磁盘,发现磁盘满无法写入
- 类似问题:因磁盘空间满,无法进行磁盘写操作
- 数据库无法插入记录
- etcd无法同步数据
- 日志无法写入
4. 解决方案
- 清理磁盘上无用、无效文件或日志文件,释放部分磁盘空间
- 对磁盘进行扩容
- 新增一块磁盘作为镜像存放空间
- 新增一个监控,在磁盘空间达到85%阈值时候进行报警通知
- 查询组件的日志滚动策略与数据保存压缩策略
- 考虑不同组件存储使用不同的分区方案,避免某个组件将磁盘空间写满导致影响其他组件正常运行 images(100G) maridb(100G以上) etcd(20-30G),这些需要一个单独的数据盘
5. 相关命令
# 1. 统计当前节点上镜像占用空间
# a. 查询 kb级别镜像
docker images |awk '{print $7}'|grep -i "k"
# b. 查询GB级别镜像
docker images |awk '{print $7}'|grep -i "g"
# c. 统计MB级别镜像
docker images |awk '{print $7}'|grep -i "m"|tr -d "MB"|awk '{sum+=$1};END {print(sum/1024.0, "G")}'
# 2. 查询目录文件占用磁盘空间大小
du / -h -d 1
# -h 将byte单位转换 M G可读单位
# -d 指定目录深度
标签:apiserver,--,查询,Apiserver,磁盘空间,磁盘,docker,kube,停掉
From: https://www.cnblogs.com/2bjiujiu/p/17985877