FailedCreatePodSandBox
- 错误
Error response from daemon: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:402: getting the final child's pid from pipe caused: EOF: unknown
- 处理
清理 cache
|
|
- 原因
内存碎片过多
calico-node 不停重启 increase max user
- 错误
runtime: failed to create new OS thread (have 11 already; errno=11),runtime: may need to increase max user processes (ulimit -u)
- 处理
增加 ulimit 限制额度
|
|
- 原因
用户进程数耗尽
calico-node BIRD is not ready
- 错误
Readiness probe failed: calico/node is not ready: BIRD is not ready: Error querying BIRD: unable to connect to BIRDv4 socket: dial unix /var/run/calico/bird.ctl: connect: connection refused
- 处理
执行 ifconfig
找到当前主机 IP 绑定的网卡,例如 ens192
。
kubectl -n kube-system edit ds calico-node
将
|
|
改为
|
|
使得 interface 值能正则匹配上 ens192
即可。
- 原因
Calico 没有自动识别到正确的网卡。
cgroup 内存泄露问题 cannot allocate memory
- 错误
mkdir /sys/fs/cgroup/memory/kubepods/burstable/pod7a1e89bd-b85e-46c6-9674-bbfd3ead02d1: cannot allocate memory
如果有 fork
相关字样,可能是 PID 耗尽。
- 临时处理
清理 cache
|
|
- 永久处理
- 修改
/etc/default/grub
GRUB_CMDLINE_LINUX
加上了 cgroup.memory=nokmem
- 生成配置
/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg
- 重启机器
reboot
- 原因
cgroup 内存泄露
kubectl 404 page not found
- 错误
执行 kubectl exec
时,报错 error: unable to upgrade connection: 404 page not found
- 处理
在 kubelet 启动参数中添加当前节点的 IP,Environment="KUBELET_EXTRA_ARGS=--node-ip=x.x.x.x"
- 原因
安装工具未能准确识别主机 IP
容器内系统调用出错、没权限
- 错误
Problem executing scripts
Post-Invoke
Sub-process returned an error code
没权限提示
- 处理
在运行时,添加参数 --security-opt seccomp=unconfined
禁用 seccomp
- 原因
内核中的 Seccomp 安全模块,限制了容器对主机的系统调用能力。
NodePort 服务不能通过 localhost 访问
- 错误
NodePort 暴露的服务,不能通过 localhost:port 访问,只能通过主机的 ip:port 访问。
- 处理
检测回环转发参数
|
|
临时生效
|
|
永久生效
|
|
- 原因
ipvs 模式默认关闭了该转发路径
创建 Pod 失败 fork/exec /usr/bin/runc
- 错误
|
|
- 处理
查看 PID 限制
|
|
查看当前用户使用
|
|
永久调大 PID 限制
echo "kernel.pid_max=65535 " >> /etc/sysctl.conf && sysctl -p
kubelet volume subpaths are still present on disk
- 错误
kubelet 大量错误日志
|
|
- 原因
使用 --force --grace-period=0
强制删除 Pod 时,资源没有被回收。
- 处理
在 /var/lib/kubelet/pods/
找到相关 Pod 信息,确认 Pod 已经停止之后,删除 Pod 的目录。
查看 Pod 名字
|
|
fmovedaemon-b9c68cd45-qm2wr
即为 Pod 名字,确认 Pod 停止后,直接删除目录即可。
|
|
kubelet MountVolume failed
- 错误
|
|
- 处理
编辑多路径文件
|
|
新增如下内容:
|
|
重启服务
|
|
- 原因
多路径为任何符合条件的设备路径创建了多路径设备,包括 Longhorn 存储卷设备,导致 Kubelet 挂载错误。
大内存 Pod 启动失败 page allocation failure
- 错误
|
|
- 处理
|
|
- 原因
系统内存碎片化,导致创建系统 namespace 时没有足够的大页内存。可以通过一下命令查看内存使用,如果 0 较多说明内存碎片化严重:
|
|