问题描述
pod在启动或运行一段时间后日志中报错,如下:
ERROR: Unexpected bus error encountered in worker. This might be caused by insufficient shared memory (shm).
问题分析
pod使用了容器运行时默认的64M shared memory,在K8S中PodSpec并没有提供API供用户去修改shared memory。可以通过设置emptyDir,将内存类型的emptyDir 目录挂载到/dev/shm。
问题解决
1.创建pod添加如下配置
volumeMounts:
- mountPath: /dev/shm
name: shm
volumes:
- emptyDir:
medium: Memory
sizeLimit: 128Mi
name: shm
2.重新部署pod查看是否生效。
$ kubectl exec -it -n default <pod-name> -- df -hT|grep shm
tmpfs tmpfs 128M 0 128M 0% /dev/shm
参考文档
[1] https://kubernetes.io/docs/concepts/storage/volumes/#emptydir 如果您有其他问题,欢迎您联系火山引擎技术支持服务