web-dev-qa-db-ja.com

KubernetesがContainerCreatingでスタックしている

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

122
four43

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

155
kubectl get events --all-namespaces  --sort-by='.metadata.creationTimestamp'

イベントでより多くの情報を提供できます。

私の場合、ポッドに関連するイベントがありました:

default       13s         Warning   FailedMount               Pod          Unable to mount volumes for pod "restore-db-123-1-5f24s_default(9b7df264-2976-11ea-bb8f-42010a9a002c)": timeout expired waiting for volumes to attach or mount for pod "default"/"restore-db-123-1-5f24s". list of unmounted volumes=[nfsv]. list of unattached volumes=[nfsv default-token-hxrng]
4

私の場合、ドッカーのインターネットへのアクセスがブロックされました。プロキシを使用して解決されました( 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分間_\pause_およびContainerCreating状態のままでした。

Dockerがイメージをダウンロードしているかどうかを確認するには、次のコマンドを実行します。

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

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

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

4
Esmailian

私がこれにぶつかったのは、リソース宣言が誤って非常に小さいためです。

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

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

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