(O+P)ut

アウトプット



(O+P)ut

エンジニアのアウトプット

【Kubernetes】ErrImageNeverPull/ErrImagePullへの対応

スポンサーリンク

事象

複数ノードの環境でDeploymentを起動するもpodが以下エラーで起動しない。

kubectl get pod
NAME   READY   STATUS ...
nginx-xx   0/1   ErrImageNeverPull

尚、ローカルのImageから取得するために以下を記載している。

imagePullPolicy: Never
環境情報
  • kubectl v1.15.1

原因/対応策

Pod起動先のWorkerNodeに該当のイメージがない。
よって共用レジストリーに配置してイメージを指定するかWorkerNodeにイメージを展開する。

以下、解説です。

解説

YAMLファイルに「imagePullPolicy: IfNotPresent」や「imagePullPolicy: Never」を記載した場合はローカルにあるイメージからPodを展開します。

ここで、イメージを以下のように記載しているとPodが展開されているNodeのイメージを探しに行きます。

image: nginx

つまりDockerDesktopのようなMasterとWorkerが同一であれば起きにくい事象ですが、MasterとWorkerが分かれている場合は注意が必要です。

具体的には起動に失敗しているPodの展開先をkubectl get pod -o=wideで確認し、そのNodeにイメージを配置する必要があります。イメージの移動は以下を参考ください。

以上、同様の事象の方の参考になれば幸いです。