【发布时间】:2021-11-05 06:14:42
【问题描述】:
我们在 AKS 中有一组运行 CI/CD 系统(GitHub Actions 运行程序)的 Pod,每个 Pod 都有一个 32 GiB Azure 磁盘(标准 SSD),附有 PVC,我们在其中挂载 /var/lib/docker ,以便缓存基于 docker 图像的 GitHub 操作层(我们使用 DinD,并在 pod 启动时在脚本中启动 docker 守护程序)。 Pod 作为 StatefulSet 运行,PV 使用 volumeClaimTemplates 附加。
大约有 30% 的 pod 启动时,尝试访问 /var/lib/docker 会导致 值对于定义的数据类型而言太大。结果,docker 守护进程无法启动。 以下是来自 docker daemon 的日志
当尝试 chmod 从命令行更改 /var/lib/docker 的权限时,错误是一样的。
手动杀死 pod 并重新创建它通常可以解决问题,因为它是一个间歇性问题,并且似乎没有遵循任何模式。查看集群日志显示所有 PV 都被附加,没有问题,也没有显示错误。
我们用于跑步者的图像基于 ubuntu:focal,我们正在安装以下软件包:
gnupg2 gnupg apt-transport-https ca-certificates software-properties-common pwgen git make curl wget zip libicu-dev build-essential libssl-dev git rsync lsb-release jq nodejs npm openjdk-16-jdk
OS information:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.3 LTS
Release: 20.04
Codename: focal
Platform: x86_64
Kubernetes 版本:1.20.9
研究表明一个 32 位应用程序试图访问一个大文件或大量文件,但我希望这样的问题总是会发生,而不是间歇性地发生,就像这种情况一样。
关于这个问题背后的原因有什么提示吗?
更新 作为附加信息,我们使用 sysbox(CE,版本 0.4.1)在 docker 中运行 docker。我们发现 sysbox 在 /var/lib/docker 中执行 shiftfs,这不应该发生,因此可能是 sysbox 的问题。
【问题讨论】:
标签: docker azure-aks persistent-volumes