• 磁盘空间不足


    harbor使用一段时间后,出现假死现象 或者
    pull / build  报错no space left on device 或者
    执行build提示构建镜像成功,但是docker images看不到镜像信息,此时很有可能就是docker磁盘空间满了
    排查及解决如下:

    查看docker镜像存放目录空间大小
    du -hs /var/lib/docker/ 查看磁盘容量大的空间,且在上面创建新的docker目录。 df -h mkdir -p opt/data/lib 停止docker服务。 systemctl stop docker 迁移/var/lib/docker目录下的文件到新创建的目录/data/docker/lib rsync -avz /var/lib/docker opt/data/lib 编辑 /etc/docker/daemon.json 添加如下参数 vi /etc/docker/daemon.json { "graph": "opt/data/docker/lib/docker" } systemctl daemon-reload && systemctl restart docker 验证 docker info

    常见docker清理方法

    docker system df 类似于Linux上的df命令,用于查看Docker的磁盘使用情况:

    docker system prune 可以用于清理磁盘,删除关闭的容器、无用的数据卷和网络,以及dangling镜像(即无tag的镜像)。

    docker system prune -a 清理得更加彻底,可以将没有容器使用Docker镜像都删掉。注意,这两个命令会把你暂时关闭的容器,以及暂时没有用到的Docker镜像都删掉了

    k8s、etcd由于磁盘没有空间瘫痪问题排查

    集群空间沾满问题处理
    首先空间迁移方案:软连接 
    默认docker 及 kubelet目录:/var/lib/ 下,我们将其都迁移到,。/opt下的某个目录下:
    # mv /var/lib/docker /var/lib/docker-bak
    建立软连接
    # ln -s 源文件 目标文件
    问题:删除原来的数据时报错Device or resource busy   
    原因:docker/kubelet挂载的问题,导致文件无法删除,
    解决方案: 
    执行命令
    # mount
    找到包含原来/var/lib/docker /var/lib/kubelet
    # umount /var/lib/docker-bak/overlay2/bcb3739ab39e056b12f4d7f86caff5f500cb43b2f29a180871e8b566e18016dd/merged 
    #rm -rf /var/lib/docker-bak/*
    至此迁移成功
    
    过段时间发现系统盘还是满了,排查思路:
    # du -h --max-depth=1 / 盘下最大的目录   >> /var
    # du -h --max-depth=1 /var/  >> /var/log
    # cd /var/log
    # ll -h    #message 日志文件非常大,所以好奇看一下,发下就是k8s的日志,可能是日志等级的问题,日志一直在刷新,平均一周的日质量在3G以上
    #tail -n 100 message
    定期删除个日志文件即可
    所以etcd集群最好独立部署,面得忘记清理,k8s把磁盘占满,导致etcd集群无法运行,整个集群状态就崩了

    最近有遇到系统盘被沾满,使用上面的措施并不能解决问题,关键是,du命令查看,根本没有用这么多,提供下面方法
    上面的方法应该删除了文件,但是空间没有释放,重启可以解决,但不是最好的方法,
    使用
    lsof -w | grep deleted 查看所有被删除但没有释放的进程
     kill pid 即可
    看疗效真的下一跳瞬间从100-》30

      附上k8s日志级别

    --v=0   Generally useful for this to ALWAYS be visible to an operator.
    --v=1   A reasonable default log level if you don’t want verbosity.
    --v=2   Useful steady state information about the service and important log messages that may correlate to significant changes in the system. This is the recommended default log level for most systems.
    --v=3   Extended information about changes.
    --v=4   Debug level verbosity.
    --v=6   Display requested resources.
    --v=7   Display HTTP request headers.
    --v=8   Display HTTP request contents

  • 相关阅读:
    java生成pdf文字水印和图片水印
    el-date-picker设置可选范围picker-options需要注意的事项,要不然可能会报undefined的错误
    Invalid prop: type check failed for prop "value". Expected String, Number, got Boolean with value false.
    el-table去掉最外层的边框线
    工业物联网之设备云控3 QuartzNet任务调度程序
    工业物联网之设备云控4 管理平台
    工业物联网之设备云控1 技术方案
    C# NModbus4实现PLC数据获取(参考HslCommunication)
    工业物联网之设备云控5 对接流程
    Mongdb数据备份和还原
  • 原文地址:https://www.cnblogs.com/Hale-wang/p/13085173.html
Copyright © 2020-2023  润新知