インフラ系SEの技術メモ

雑なエンジニアが低信頼性のメモを書いています。参考程度にとどめてください。

(Kubernetes/Openshift)Back-off pulling imageを繰り返す際に試すべきこと

イメージがなかなかPullできない

KubernetesやOpenshiftにてPodを起動しようとするもイベントが以下のループ状態。

Events:
  Type     Reason          Age                     From               Message
  ----     ------          ----                    ----               -------
  Normal   Scheduled       7m24s                   default-scheduler  Successfully assigned .. to ...
  Normal   AddedInterface  7m23s                   multus             Add eth0 [172.30.128.52/32]
  Normal   Pulling         6m (x4 over 7m23s)      kubelet            Pulling image "..."
  Warning  Failed          5m58s (x4 over 7m21s)   kubelet            Failed to pull image "...": rpc error: code = Unknown desc = Error reading manifest ..: manifest unknown: manifest unknown
  Warning  Failed          5m58s (x4 over 7m21s)   kubelet            Error: ErrImagePull
  Warning  Failed          5m20s (x7 over 7m21s)   kubelet            Error: ImagePullBackOff
  Normal   BackOff         2m10s (x20 over 7m21s)  kubelet            Back-off pulling image "..."

要因としてはNodeにイメージが落とせない・・というものなので、まず疑うべきはイメージ名のパス。

試すべきこと

レジストリを直で指定してDocker pullしてみることをおすすめします。

私の場合はRedhatレジストリだったので

# docker pull registry.connect.redhat.com/xx

を打つと以下のエラーに。どうやらアクセス権限を付与しないと駄目みたいでした。

Error response from daemon: Get https://registry.connect.redhat.com/v2/xx: unauthorized: Please login to the Red Hat Registry using your Customer Portal credentials. Further instructions can be found here: https://access.redhat.com/RegistryAuthentication

なので、ネットワーク観点ではなくイメージ周りという事がわかったので後続対応が楽でした。