部署k8s碰到的问题

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

1.failed to garbage collect required amount of images

同时观察到磁盘空间不足的节点有大量pod处于Evicted 0/1状态但并未进行重新调度。

原因描述

当容器集群中的节点宿主机磁盘使用率达到85%之后会触发自动的容器镜像回收策略以便于释放足够的宿主机磁盘。该事件发生于当触发镜像回收策略之后磁盘空间仍然不足以达到健康阈值默认为80%。通常该错误是由于宿主机磁盘被占用太多导致。当磁盘空间占用率持续增长超过90%会导致该节点上的所有容器被驱逐也就是当前节点由于磁盘压力不再对外提供服务直到磁盘空间释放。

解决方案

检查节点的磁盘分配情况通常有以下一些常见情况导致磁盘占用率过高

  1. 有大量日志在磁盘上没有清理
  2. 请清理日志。有进程在宿主机不停的写文件
  3. 请控制文件大小将文件存储至OSS或者NAS。下载的或者是其他的静态资源文件占用空间过大静态资源请存储至OSS或CDN。

参考

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

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

Helm install `timed out waiting for the condition` and reports release "Failed" · Issue #11904 · helm/charts · GitHub

使用 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。

参考

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博客

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中文官方学习手册 

Ansible 使用配置 - 明明改变世界 - 博客园 

在 ansible playbook 中动态设置 HTTP_PROXY | 

Ansible使用代理上网 - Varden - 博客园 

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脚本无法使用。

参考

linux shell脚本超时重试 | 码农家园

Linux shell脚本重试机制 - 走看看 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: k8s