1.failed to garbage collect required amount of images
同时观察到磁盘空间不足的节点有大量pod处于Evicted 0/1状态,但并未进行重新调度。
原因描述:
当容器集群中的节点(宿主机)磁盘使用率达到85%之后,会触发自动的容器镜像回收策略,以便于释放足够的宿主机磁盘。该事件发生于当触发镜像回收策略之后,磁盘空间仍然不足以达到健康阈值(默认为80%)。通常该错误是由于宿主机磁盘被占用太多导致。当磁盘空间占用率持续增长(超过90%),会导致该节点上的所有容器被驱逐,也就是当前节点由于磁盘压力不再对外提供服务,直到磁盘空间释放。
解决方案:
检查节点的磁盘分配情况,通常有以下一些常见情况导致磁盘占用率过高:
- 有大量日志在磁盘上没有清理;
- 请清理日志。有进程在宿主机不停的写文件;
- 请控制文件大小,将文件存储至OSS或者NAS。下载的或者是其他的静态资源文件占用空间过大;静态资源请存储至OSS或CDN。
参考:
https://blog.csdn.net/kingu_crimson/article/details/126178991
2. helm timeout问题:Error: timed out waiting for the condition解决
通过设置
--timeout 600 --debug
可以防止timeout
参考:
kubernetes - helm test failure: timed out waiting for the condition - Stack Overflow
使用 GPU-Operator 与 KubeSphere 简化深度学习训练与 GPU 监控 - kubesphere - 博客园
3. UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
可以通过
helm ls --namespace <namespace>
或者
helm ls -a
来确定helm启动的pod。
参考:
5.ubuntu报错:source: not found
原因可能是Shell的解释器不是bash,需把Shell的解释器更改为bash
参考:
如何解决ubuntu系统下source: not found错误?_Alibaba Cloud Toolkit-阿里云帮助中心
6. Unable to connect to the server: Access violation
这是因为设置了http_proxy/https_proxy代理,去掉了就可以了。
参考:
https://zhuanlan.zhihu.com/p/40931670
7. ansible playbook中设置代理
预先设置http_proxy环境变量
ansible-playbook --extra-vars "http_proxy=$http_proxy" ...
proxy - Dynamicly set HTTP_PROXY in an ansible playbook - Stack Overflow
配置环境 (在代理环境中) — 国内最专业的Ansible中文官方学习手册
在 ansible playbook 中动态设置 HTTP_PROXY |
8.mux_client_read_packet: read header failed: Broken pipe Received exit status
还不清楚
9.linux脚本实现超时重传
while timeout -k 70 60 bash -c '这里写你的代码' ; [ $? = 124 ]
do
echo "命令超时正在重试"
sleep 2 # Pause before retry
done
这段脚本的意思就是60秒超时之后发送SIGTERM,如果SIGTERM没有使这个命令终止的话那就发送 SIGKILL指令。
$? 表示上个命令的返回状态,124表示超时。
需要注意的是 如果命令前面不加bash -c的话,文件里面也没有#!/bin/bash,那么默认就是以sh来执行的,这可能导致一些shell脚本无法使用。
参考: