同时观察到磁盘空间不足的节点有大量pod处于Evicted 0/1状态,但并未进行重新调度。
当容器集群中的节点(宿主机)磁盘使用率达到85%之后,会触发自动的容器镜像回收策略,以便于释放足够的宿主机磁盘。该事件发生于当触发镜像回收策略之后,磁盘空间仍然不足以达到健康阈值(默认为80%)。通常该错误是由于宿主机磁盘被占用太多导致。当磁盘空间占用率持续增长(超过90%),会导致该节点上的所有容器被驱逐,也就是当前节点由于磁盘压力不再对外提供服务,直到磁盘空间释放。
检查节点的磁盘分配情况,通常有以下一些常见情况导致磁盘占用率过高:
参考:
https://blog.csdn.net/kingu_crimson/article/details/126178991
https://huaweicloud.csdn.net/63311e36d3efff3090b52c8d.html#16_failed_to_garbage_collect_required_amount_of_images_25
通过设置
--timeout 600 --debug
可以防止timeout
参考:
kubernetes - helm test failure: timed out waiting for the condition - Stack Overflow
Helm install `timed out waiting for the condition` and reports release "Failed" · Issue #11904 · helm/charts · GitHub
使用 GPU-Operator 与 KubeSphere 简化深度学习训练与 GPU 监控 - kubesphere - 博客园
可以通过
helm ls --namespace
或者
helm ls -a
来确定helm启动的pod。
参考:
https://stackoverflow.com/questions/71599858/upgrade-failed-another-operation-install-upgrade-rollback-is-in-progress
HELM部署异常:Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress_dreamer_chen的博客-CSDN博客
原因可能是Shell的解释器不是bash,需把Shell的解释器更改为bash
参考:
如何解决ubuntu系统下source: not found错误?_Alibaba Cloud Toolkit-阿里云帮助中心
这是因为设置了http_proxy/https_proxy代理,去掉了就可以了。
参考:
https://zhuanlan.zhihu.com/p/40931670
预先设置http_proxy环境变量
ansible-playbook --extra-vars "http_proxy=$http_proxy" ...
proxy - Dynamicly set HTTP_PROXY in an ansible playbook - Stack Overflow
如何仅为特定的 ansible 任务设置代理? |
配置环境 (在代理环境中) — 国内最专业的Ansible中文官方学习手册
Ansible 使用配置 - 明明改变世界 - 博客园
在 ansible playbook 中动态设置 HTTP_PROXY |
Ansible使用代理上网 - Varden - 博客园
还不清楚
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脚本无法使用。
参考:
linux shell脚本超时重试 | 码农家园
Linux shell脚本重试机制 - 走看看