kubernetes篇---3.创建Pod失败提示failed to "StartContainer" for "POD" with ImagePullBackOff

具体报错信息如下
Error syncing pod, skipping: failed to “StartContainer” for “POD” with ErrImagePul**l: “image pull failed for registry.access.redhat.com/rhel7/pod-infrastructure:latest, this may be because there are no credentials on this request. details: (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)”

Warning FailedSync Error syncing pod, skipping: failed to “StartContainer” for “POD” with ImagePullBackOff: “Back-off pulling image “registry.access.redhat.com/rhel7/pod-infrastructure:latest””
在这里插入图片描述

解决办法在node节点中配置
如果master也充当node节点的作用则也需要配置
查看/etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt 是一个软链接,但是链接过去后并没有真实的/etc/rhsm,所以需要使用yum安装:在这里插入图片描述
yum install rhsm -y
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述安装完成后,执行一下docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest
在这里插入图片描述

如果依然报错,可参考下面的方案:
在线安装rpm包
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
在这里插入图片描述
rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem

在这里插入图片描述这两个命令会生成/etc/rhsm/ca/redhat-uep.pem文件.
在这里插入图片描述

顺得的话会得到下面的结果。

docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest 在这里插入图片描述
在这里插入图片描述
删除之前创建的容器并重新启动
在这里插入图片描述
running即为成功启动在这里插入图片描述

### 解决 Kubernetes 中 kube-flannel 容器启动失败问题 当遇到 `error syncing pod, skipping` 错误并伴随容器处于 `ContainerCreating` 状态时,通常意味着网络配置存在问题。此类错误可能由多种因素引起。 对于 Flannel CNI 插件而言,常见的原因包括: - **Flannel Pod 无法获取 IP 地址** 这可能是由于集群中的 CoreDNS 或者其他关键组件未能正常工作所致[^1]。建议检查这些服务的状态以确认其健康状况。 - **CNI 配置文件缺失或不正确** 如果 CNI 配置文件丢失或者存在语法错误,则可能导致节点上的 Pods 无法初始化网络接口。确保 `/etc/cni/net.d/` 目录下有正确的 flannel cni 文件,并且内容无误。 针对上述提到的手动创建 API Token 的方法并不是直接解决问题的方式;该操作主要用于解决因缺少适当权限而导致的服务资源访问问题而非网络层面的故障。 为了修复此问题,可尝试以下方案之一: #### 方法一:重新部署 Flannel 如果怀疑现有安装有问题,可以通过删除现有的 Flannel 资源对象再重新应用来重置环境。 ```bash kubectl delete -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` #### 方法二:验证并修正 CNI 配置 确保所有必要的 CNI 组件都已正确定义并且位于预期位置。特别是要核实 `/etc/cni/net.d/` 下是否存在有效的 JSON 格式的配置文件用于描述如何设置容器网络。 #### 方法三:调整 Kubelet 参数 有时也需要考虑是否需要更新 kubelet 启动参数以适应新的网络插件需求。这涉及到编辑主节点上与 worker 节点上的 kubelet.service 文件,加入合适的选项如 `--network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin`. 以上措施应该能够帮助排除大部分情况下发生的 `kube-flannel container start failed` 及相关联的同步错误。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值