web-dev-qa-db-ja.com

コンテナの作成時にMinikubeが動かなくなった

最近、MacでローカルにMinikubeを使用してKubernetesを学び始めました。以前は、Minikube 0.10.0を使用してローカルのKubernetesクラスターを起動し、デプロイを作成してKubernetesダッシュボードを表示することができました。

昨日、クラスターを削除して、すべてを最初からやり直そうとしました。しかし、アセットをデプロイできず、ダッシュボードを表示できません。私が見たところから、コンテナの作成中にすべてが行き詰まったようです。

私が走った後minikube start、それは報告した

Starting local Kubernetes cluster...
Kubectl is now configured to use the cluster.

私が走ったときkubectl get pods --all-namespaces、それは報告しました(STATUS列に注意してください):

kubectl get pods --all-namespaces
NAMESPACE     NAME                          READY     STATUS              RESTARTS   AGE
kube-system   kube-addon-manager-minikube   0/1       ContainerCreating   0          51s

docker psは何も表示しませんでした:

docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

minikube statusは、VMおよびクラスターが実行されていることを示しています。

minikubeVM: Running
localkube: Running

デプロイとオートスケーラーを作成しようとすると、正常に作成されたと言われました。

kubectl create -f configs
deployment "hello-minikube" created
horizontalpodautoscaler "hello-minikube-autoscaler" created

$ kubectl get pods --all-namespaces
NAMESPACE     NAME                             READY     STATUS              RESTARTS   AGE
default       hello-minikube-661011369-1pgey   0/1       ContainerCreating   0          1m
default       hello-minikube-661011369-91iyw   0/1       ContainerCreating   0          1m
kube-system   kube-addon-manager-minikube      0/1       ContainerCreating   0          21m

サービスを公開すると、それは言った:

$ kubectl expose deployment hello-minikube --type=NodePort
service "hello-minikube" exposed

$ kubectl get service
NAME             CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
hello-minikube   10.0.0.32    <nodes>       8080/TCP   6s
kubernetes       10.0.0.1     <none>        443/TCP    22m

サービスにアクセスしようとすると、次のように言われました。

curl $(minikube service hello-minikube --url)
Waiting, endpoint for service is not ready yet...

docker psはまだ何も示していません。コンテナを作成するときにすべてが行き詰まったように見えました。私はこの問題を回避するためにいくつかの他の方法を試しました:

  1. Minikube 0.11.0にアップグレードしました
  2. Virtualboxドライバーの代わりにxhyveドライバーを使用する
  3. 〜/ .minikube、〜/ .kube、クラスターなどのキャッシュされたものをすべて削除し、再試行します

それらのどれも私のために働いていません。

Kubernetesはまだ新しいので、知りたいです。

  1. この種の問題をトラブルシューティングするにはどうすればよいですか?
  2. この問題の原因は何ですか?

どんな助けでもありがたいです。ありがとう。

13
nybon

私の場合、それはネットワークの問題であることがわかりました。

ポッドのステータスは「ContainerCreating」で、コンテナの作成中に、Dockerイメージが中国ではアクセスできないgcr.ioからプルされます(GFWによってブロックされます)。以前は、たまたまVPNに接続したのでうまくいきました。

8
nybon

minikubeは試しませんでしたが、kubernetesを使用しています。提供された情報では、問題の原因を特定することは困難です。 minikubeはリソースの作成に問題はありませんが、ContainerCreatingdockerデーモン、またはkube-apidockerデーモン間の不適切な通信に関連する問題です。 kubeletに関する問題。

次のコマンドを試すことができます。

kubectl describe po POD_NAME

これにより、PODのイベントが提供されます。多分これは問題の根本的な原因への道を提供するでしょう。

kubeletのログを確認してイベントを取得することもできます。

3
srikanth peetha

Horizo​​ntalpodautoscaler(hpa)を使用するにはheapsterが必要です。そのためには、ミニクベでヒープスターを実行する必要があります。これらの種類の問題は、minikube logsでいつでもデバッグできます。また、minikube dashboardにあるダッシュボードを使用してインタラクティブにデバッグできます。

Heapsterとgrafanaを実行する手順は https://github.com/kubernetes/heapster にあります。

1
Matt Rickard

Windowsでこの問題が発生しましたが、これはNTLM proxyminikube VMを削除してから、CNTLMインストールの正しいプロキシ設定で再作成しました:

minikube start \
--docker-env http_proxy=http://10.0.2.2:3128 \
--docker-env https_proxy=http://10.0.2.2:3128 \
--docker-env no_proxy=localhost,127.0.0.1,::1,192.168.99.100

https://blog.alexellis.io/minikube-behind-proxy/ を参照してください

0
Nathan

私にとって、ContainerCreating問題が発生するまでに数分かかります。次のコマンドを実行した後:

systemctl status kube-controller-manager.service

私はこのエラーを受け取ります:

同期「default/redis-master-2229813293」が失敗してポッドを作成できませんでした:サービスアカウント「default」のAPIトークンが見つかりません。トークンが自動的に作成されてサービスアカウントに追加された後で再試行してください。

これを解決するには2つの方法があります。

  1. トークンを使用してサービスアカウントを設定する
  2. Api-serverのKUBE_ADMISSION_CONTROLServiceAccount設定を削除します
0
onebraveman