k8s(kubernetes)サービスがダッシュボードをデプロイすると、ImagePullBackOff / CrashLoopBackOffソリューションが表示されます

サービスをデプロイする際のイメージプルプロセス中に表示されます
ここに画像の説明を挿入。ImagePullBackOffkubectldescribepods kubernetes-dashboard-975499656-krwl7 -n kube-system
を使用して、ポッドの詳細表示ます

Events:
  Type     Reason     Age                    From                Message
  ----     ------     ----                   ----                -------
  Normal   Scheduled  4m38s                  default-scheduler   Successfully assigned kube-system/kubernetes-dashboard-975499656-krwl7 to k8s-node2
  Normal   Pulling    2m32s (x4 over 4m38s)  kubelet, k8s-node2  Pulling image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1"
  Warning  Failed     2m16s (x4 over 4m22s)  kubelet, k8s-node2  Failed to pull image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1": rpc error: code = Unknown desc = Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
  Warning  Failed     2m16s (x4 over 4m22s)  kubelet, k8s-node2  Error: ErrImagePull
  Normal   BackOff    112s (x6 over 4m22s)   kubelet, k8s-node2  Back-off pulling image "k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1"
  Warning  Failed     99s (x7 over 4m22s)    kubelet, k8s-node2  Error: ImagePullBackOff

分析:外部ミラーリングのプルは少し遅いです、これが頻繁に発生するときはネットワークが良くありません、ダウンロードミラーに進むことができます良い
解決策が必要です
ミラー国内ソースを交換してください、検索は画像をダウンロードする必要があります
①エディターファイル/etc/docker/daemon.jsonが追加され"registry-mirrors":["https://docker.mirrors.ustc.edu.cn"]
ここに画像の説明を挿入
、構成ファイルロードされ、dockerが再起動されて有効になります

systemctl daemon-reload 
systemctl restart docker

②必要なミラーを検索し
## Linuxファイアウォール(iptables)インターセプトログ分析
ます。例:k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1③指定されたミラーを
ここに画像の説明を挿入
プルする④タグは、構成ファイルk8s.gcr.io/kubernetes-dashboard-amd64:v1で必要なミラー名です。 .10.1

docker tag loveone/kubernetes-dashboard-amd64:v1.10.1 k8s.gcr.io/kubernetes-dashboard-amd64:v1.10.1

ここに画像の説明を挿入ここに画像の説明を挿入再試行してください(スケジューラーがランダムにノードデプロイメントを選択したため、ノードはショートデプロイで動作しているため、この操作を実行する各ノードが望ましいことに注意してください)
再デプロイメントの完了後
kubectl delete -f kubernetes-dashboard.yaml
kubectl apply -f kubernetes-dashboard.yamlまたはkubectl create -f kubernetes-dashboard.yaml --save-config
エラーとして表示されます
ここに画像の説明を挿入

kubectl logs kubernetes-dashboard-975499656-xlx5b -n kube-system 
  • ポッドログを次のように表示
    しますサーバーからのエラー:https://192.168.40.131:10250 / containerLogs / kube-system / kubernetes-dashboard-975499656-xlx5b / kubernetes-dashboard:dial tcp 192.168.40.131:10250:connect:noホストへのルート
  • 分析:サービスがデプロイされたときに、ノード131のポート10250への接続が拒否されたことがわかります。これは、ファイアウォールが原因である可能性があります。
  • 解決策:
    ①サービスポートが占有されているかどうか、起動しているかどうか
    ここに画像の説明を挿入を確認します;
    !ご覧のとおり、ポートは正常に起動しています; ②telnetテストポート(ここではマスターマシンをテストします)
    ここに画像の説明を挿入
    はどこにもありません
    ③ファイアウォールノードのステータスを表示します1
    ここに画像の説明を挿入本当にファイアウォールが原因です。
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ここに画像の説明を挿入
    ポートを再試行すると機能します。
    ここに画像の説明を挿入
    再展開は
    ここに画像の説明を挿入成功します。

おすすめ

転載: blog.csdn.net/qq_38774492/article/details/108118660