部署新服务时 Pod 一直拉取镜像失败,事件里提示认证相关错误。日志里能对上时间点,这种反而好排。

集群缺少仓库认证信息,或 secret 所在命名空间与 Pod 不一致。这一点先确认清楚,后面就不用反复试。

kubectl create secret docker-registry regcred \
  --docker-server=registry.cn-hangzhou.aliyuncs.com \
  --docker-username=账号 --docker-password=密码
# Pod 模板
imagePullSecrets:
  - name: regcred

围绕「K8s 拉镜像失败」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。

报错里带路径的,先去看那个路径在不在、权限对不对。同一份配置存在多处的,先确认改的是被加载的那一份。

新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。

接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

处理上按这个顺序:创建仓库登录 secret;在 Pod 模板里引用;确认命名空间与镜像地址一致。

结果对不对很好判断,Pod 能成功拉取镜像并进入运行状态。

作者 9823189