以root身份进入GKE集群容器后无法安装包的解决咨询
问题
在GKE集群的worker节点中,通过以下命令以root身份进入容器:
runc --root /run/containerd/runc/k8s.io/ exec -cap CAP_SYS_ADMIN -t -u 0 <container-id> bash root@<pod-name>:/# whoami root
执行apt update尝试安装包时失败,报错信息如下:
root@<pod-name>:/# apt update Reading package lists... Done E: List directory /var/lib/apt/lists/partial is missing. - Acquire (30: Read-only file system)
解决办法
- 临时将根文件系统重新挂载为可读写模式:
完成mount -o remount,rw /apt相关操作后,若需恢复只读状态,执行:mount -o remount,ro / - 若容器镜像默认采用只读根文件系统且不允许修改,可尝试:
- 挂载临时存储卷到
/var/lib/apt/lists目录,为apt提供可写空间 - 提前在镜像构建阶段预装所需软件包,避免运行时安装操作
- 挂载临时存储卷到
- 检查GKE的Pod安全策略或容器运行时配置,确认是否存在强制只读根文件系统的限制。若有权限调整,可在Pod的
securityContext中设置readOnlyRootFilesystem: false
内容的提问来源于stack exchange,提问作者pkaramol
相关产品推荐
相关产品推荐

