Podman创建Pod时拉取k8s.gcr.io镜像遇Forbidden错误求助
Podman Pod 创建失败问题解决
问题分析
执行podman pod create -n sample时出现两个关键错误:
- 无法访问
k8s.gcr.io拉取pause镜像(Forbidden错误),通常由网络限制导致; repository name must have at least one component错误,是镜像拉取失败后的衍生报错,根源在于无法获取必要的pause镜像。
已尝试操作:重装Podman、清理容器/镜像、重启Docker,问题未解决。环境信息:Ubuntu 22.04,Podman 3.4.4,Docker 23.0.1(以rootless模式运行Podman)。
解决方案
1. 手动替换pause镜像
从国内镜像源拉取pause镜像并映射为k8s.gcr.io的镜像:
podman pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.5 podman tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.5 k8s.gcr.io/pause:3.5
完成后再次尝试创建pod:
podman pod create -n sample
2. 配置镜像仓库自动替换
编辑Podman的仓库配置文件(rootless用户为~/.config/containers/registries.conf,全局配置为/etc/containers/registries.conf),添加以下内容:
[[registry]] prefix = "k8s.gcr.io" location = "registry.cn-hangzhou.aliyuncs.com/google_containers"
该配置会让Podman在拉取k8s.gcr.io镜像时自动转向阿里云镜像源,无需手动替换。
3. 升级Podman版本
Ubuntu 22.04默认的Podman 3.4.4可能存在兼容性问题,尝试升级到4.x系列稳定版:
# 添加官方源 echo "deb https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/ /" | sudo tee /etc/apt/sources.list.d/devel:kubic:libcontainers:stable.list curl -L https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04/Release.key | sudo apt-key add - # 升级Podman sudo apt update && sudo apt install podman
升级完成后重启终端,重新执行pod创建命令。
4. 验证rootless模式配置
确认当前用户的uid/gid映射正确(从podman info输出看已符合要求),同时确保slirp4netns和crun版本正常,升级Podman会同步更新这些依赖组件。
验证操作
检查本地镜像是否存在:
podman images | grep pause
若显示k8s.gcr.io/pause:3.5,则执行:
podman pod create -n sample podman pod ls
若列表中出现sample pod,则问题解决。
内容的提问来源于stack exchange,提问作者66lotte
相关产品推荐
相关产品推荐

