Please enable Javascript to view the contents

Kubernetes 集群 troubleshooting

 ·  ☕ 1 分钟

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

1
echo 3 > /proc/sys/vm/drop_caches
  • 原因

内存碎片过多

calico-node 不停重启

  • 错误

runtime: failed to create new OS thread (have 11 already; errno=11),runtime: may need to increase max user processes (ulimit -u)

  • 处理

增加 ulimit 限制额度

1
ulimit -u unlimited
  • 原因

用户进程数耗尽

应用起不来,cgroup 内存泄露问题

  • 错误

mkdir /sys/fs/cgroup/memory/kubepods/burstable/pod7a1e89bd-b85e-46c6-9674-bbfd3ead02d1: cannot allocate memory

如果有 fork 相关字样,可能是 PID 耗尽。

  • 临时处理

清理 cache

1
echo 3 > /proc/sys/vm/drop_caches
  • 永久处理
  1. 修改 /etc/default/grub

GRUB_CMDLINE_LINUX 加上了 cgroup.memory=nokmem

  1. 生成配置

/usr/sbin/grub2-mkconfig -o /boot/grub2/grub.cfg

  1. 重启机器

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 安全模块,限制了容器对主机的系统调用能力。


微信公众号
作者
微信公众号