KubernetesはContainerCreatingでスタックします


100

作成を実行した後、Kubernetesクラスターのポッドが「ContainerCreating」でスタックしています。なぜ動かないのかを診断するために、この操作のログを見るにはどうすればいいですか?kubectl logsコンテナは非保留状態である必要があるため、機能していないようです。


kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/…は、可能なフェーズに関するドキュメントです。残念ながら、それは含まれていませんContainerCreating...
熊Chiamiov

回答:


126

kubectl describe pods画像の取得、コンテナの開始など、ポッドに関連付けられているすべてのイベントをリストします。助けになるかもしれません。


5
コンテナがイベントなしでContainerCreatingでスタックした場合はどうなりますか?私にとって、イベントは「イベントなし」と表示されます。
ボブ

1
一部のイベントは、表示されるまでに時間がかかるようです。たとえば、ディスクをマウントしようとするタイムアウトは、イベントとして表示されるまで約2分かかります。
-jwadsa​​ck

8
秘密を使用していて、それらが見つからない場合に発生します(yamlのタイプミスや、以前に作成するのを忘れていた)。その他の考えられるほとんどすべてのエラーについては、CrashLoopbackまたはError状態になりますが、シークレットを使用するとContainerCreatingでスタックします。ポッドを説明すると、シークレットが見つからなかったというメッセージが最後に表示されますが、問題については何も。
ダニウス

ええ、通常、彼が何かを始める前にイベントはありません。
erikbwork

今朝私に起こったのは、ボリュームのhostPathのタイプミスでした。イェイスティッキーキーボード。
ジョーブロック

4

私の場合、Dockerのインターネットへのアクセスはブロックされました。プロキシを使用して解決しました(sandylssのコメントを使用):

  1. minikube stop
  2. minikube delete
  3. export http_proxy=http://user:pass@ip:port
  4. export https_proxy=http://user:pass@ip:port
  5. export no_proxy=192.168.99.0/24
  6. minikube start --logtostderr --v=0 --bootstrapper=localkube --vm-driver hyperv 
      --hyperv-virtual-switch "Primary Virtual Switch" --docker-env HTTP_PROXY=$http_proxy \
      --docker-env HTTPS_PROXY=$https_proxy --docker-env NO_PROXY=$no_proxy
    
  7. export no_proxy=$no_proxy,$(minikube ip)
  8. export NO_PROXY=$no_proxy,$(minikube ip)

次に、Dockerがインターネットにアクセスできるかどうかを確認するには、次を実行します。

$ docker pull tutum/hello-world

クラスター内(を使用してクラスターに接続minikube ssh); ダウンロードを開始したらプロセスを停止します。

2番目の問題は、インターネット接続が遅いことでした。必要なDockerイメージは100MB程度であるため、DockerコンテナーとKubernetesポッドは両方とも30分間そのままで\pauseContainerCreating状態を維持します。

dockerが画像をダウンロードしているかどうかを確認するには、次を実行します:

$ ls -l /var/lib/docker/tmp

クラスター内で、ダウンロード中の一時イメージファイルを表示します。それ以外の場合は空です。

minikubeで開発し、VPNを使用している場合、Dockerはfiddlerを介してVPNを使用できます。つまり、ドッカーはフィドラーのip:portに接続され、フィドラーはVPNに接続されます。それ以外の場合、VPNはホストとminikube VMの間で共有されません。


今日はこのバグに少し困りました。それでも何が原因なのかまだ分かりません。物事は1分間正常に機能し、次の時間にこの問題が発生しました。修正していただきありがとうございます。それは私のために働いた。
ジム

0

私がこれを見つけたのは、リソース宣言が偶然に非常に小さいためです。

リソース:制限:cpu:1000mメモリ:1024Mリクエスト:cpu:1000mメモリ:1024M

リソース:制限:cpu:1000mメモリ:1024mリクエスト:cpu:1000mメモリ:1024m

mを大文字にすると、リソースの使用に非常に大きな違いが生じます。コンテナに十分なメモリを割り当てていなかったため、ContainerCreatingで行き詰まりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.