[解決済み】"ImagePullBackOff "をデバッグするにはどうしたらいいですか?
質問
今までデプロイできていた画像が突然デプロイできなくなりました。以下のようなポッドステータスが表示されます。
[root@webdev2 origin]# oc get pods
NAME READY STATUS RESTARTS AGE
arix-3-yjq9w 0/1 ImagePullBackOff 0 10m
docker-registry-2-vqstm 1/1 Running 0 2d
router-1-kvjxq 1/1 Running 0 2d
アプリケーションが起動しないだけです。ポッドはコンテナを実行しようとしていません。イベント・ページから、私は
Back-off pulling image "172.30.84.25:5000/default/arix@sha256:d326
. のタグで画像を引っ張ってこれることを確認しました。
docker pull
.
最後のコンテナのログも確認しました。何らかの理由で閉じられていました。ポッドは少なくとも再起動を試みるべきだと思います。
デバッグのためのアイデアが尽きてしまいました。もっと確認できることはありますか?
解決方法を教えてください。
を使用すると、' ポッドを記述する ' 構文
OpenShiftの場合使用します。
oc describe pod <pod-id>
vanilla Kubernetesの場合。
kubectl describe pod <pod-id>
出力のイベントを調べます。
私の場合、次のように表示されます。
Back-off pulling image unreachableserver/nginx:1.14.22222
この場合、画像
unreachableserver/nginx:1.14.22222
は、Docker レジストリ unreachableserver が存在しないため、インターネットから引き抜くことができず、イメージ
nginx:1.14.22222
は存在しない。
注:興味のあるイベントが表示されず、ポッドがしばらく(60分以上と思われる)「ImagePullBackOff」状態になっている場合、ポッドを削除して新しいポッドのイベントを確認する必要があります。
OpenShiftで使用する場合。
oc delete pod <pod-id>
oc get pods
oc get pod <new-pod-id>
vanilla Kubernetesの場合。
kubectl delete pod <pod-id>
kubectl get pods
kubectl get pod <new-pod-id>
サンプル出力です。
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 32s default-scheduler Successfully assigned rk/nginx-deployment-6c879b5f64-2xrmt to aks-agentpool-x
Normal Pulling 17s (x2 over 30s) kubelet Pulling image "unreachableserver/nginx:1.14.22222"
Warning Failed 16s (x2 over 29s) kubelet Failed to pull image "unreachableserver/nginx:1.14.22222": rpc error: code = Unknown desc = Error response from daemon: pull access denied for unreachableserver/nginx, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
Warning Failed 16s (x2 over 29s) kubelet Error: ErrImagePull
Normal BackOff 5s (x2 over 28s) kubelet Back-off pulling image "unreachableserver/nginx:1.14.22222"
Warning Failed 5s (x2 over 28s) kubelet Error: ImagePullBackOff
デバッグの追加手順
- docker イメージとタグを手動でコンピュータに取り込んでみてください。
- kubectl/oc get pods -o wide」とやってノードを特定する。
- docker イメージを引き出せないノードに (可能であれば) ssh でログインします。
- pingを実行して、ノードがdockerレジストリのDNSを解決できることを確認します。
- ノード上で手動でドッカーイメージをプルしてみる
- プライベートレジストリを使用している場合は シークレット が存在し、その秘密が正しいことを確認します。また、秘密は同じネームスペースにある必要があります。ありがとうございます。 スウェンツェル
- レジストリによっては、IPアドレスのアクセスを制限するファイアウォールを備えている場合があります。ファイアウォールがプルをブロックしている場合があります。
- CIによっては、一時的なdocker secretでデプロイメントを作成するものがあります。そのため、シークレットは数日後に失効します(本番の失敗を想定しているのでしょう...)
関連
-
[解決済み] no endpoints available for service \"kubernetes-dashboard"
-
[解決済み] kubernetes UnexpectedAdmissionError ロールアウト後。
-
kubenetes: ポッドにバインドされていないPersistentVolumeClaimsがあります。
-
kubernate が nginx-ingress-controller をデプロイし、ingress ポリシーを定義する。
-
[解決済み] kubernetesのPodが "CrashLoopBackOff "でクラッシュし続けるのですが、ログが見つかりません。
-
[解決済み] kubernetesのpodでbusyboxにcurlをインストールすることは可能ですか?
-
[解決済み] MinikubeでローカルのDockerイメージを使用するには?
-
[解決済み】gcloudとminikubeの間でkubectlのクラスタを切り替える方法
-
[解決済み] Kubernetesでconfigmapが更新されたらPodを再起動する?
-
[解決済み】kubectl apply vs kubectl create?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Kubernetes: kubectl run: コマンドが見つかりません。
-
[解決済み] Kubernetesです。kubectl configからクラスタとコンテキストを削除するにはどうすればいいですか?
-
[解決済み] kubernetes UnexpectedAdmissionError ロールアウト後。
-
[解決済み] Istio Ingressで "no healthy upstream "が発生する。
-
[解決済み] Kubernetes ReplicaFailure FailedCreate でもイベントなし
-
[解決済み] Helmを以前のリリースにロールバックする
-
[解決済み] ヘッドレスサービスとは何か、何をするのか、何を達成するのか、そしてその正当な使用例とは何か?
-
[解決済み] Pod内のコンテナを再起動する
-
[解決済み】"ImagePullBackOff "をデバッグするにはどうしたらいいですか?
-
[解決済み】gcloudとminikubeの間でkubectlのクラスタを切り替える方法