web-dev-qa-db-ja.com

Kubernetes-ポッドはContainerCreatingステータスのままです

私はKubernetesのすべてのことに慣れていないので、まだ学ぶべきことがたくさんあります。

2ノードのKubernetesクラスターを作成し、両方のノード(マスターとワーカー)が作業を行う準備ができていることを確認します。

[monkey@k8s-dp1 nginx-test]# kubectl get nodes
NAME      STATUS    ROLES     AGE       VERSION
k8s-dp1   Ready     master    2h        v1.9.1
k8s-dp2   Ready     <none>    2h        v1.9.1

また、すべてのKubernetesポッドは大丈夫です:

[monkey@k8s-dp1 nginx-test]# kubectl get pods --all-namespaces
NAMESPACE     NAME                              READY     STATUS    RESTARTS   AGE
kube-system   etcd-k8s-dp1                      1/1       Running   0          2h
kube-system   kube-apiserver-k8s-dp1            1/1       Running   0          2h
kube-system   kube-controller-manager-k8s-dp1   1/1       Running   0          2h
kube-system   kube-dns-86cc76f8d-9jh2w          3/3       Running   0          2h
kube-system   kube-proxy-65mtx                  1/1       Running   1          2h
kube-system   kube-proxy-wkkdm                  1/1       Running   0          2h
kube-system   kube-scheduler-k8s-dp1            1/1       Running   0          2h
kube-system   weave-net-6sbbn                   2/2       Running   0          2h
kube-system   weave-net-hdv9b                   2/2       Running   3          2h

ただし、クラスターに新しい展開を作成しようとすると、展開は作成されますが、そのポッドは適切なRUNNING状態になりません。例えば.

[monkey@k8s-dp1 nginx-test]# kubectl apply -f https://k8s.io/docs/tasks/run-application/deployment.yaml
deployment "nginx-deployment" created

[monkey@k8s-dp1 nginx-test]# kubectl get pods --all-namespaces
NAMESPACE     NAME                                READY     STATUS              RESTARTS   AGE
default       nginx-deployment-569477d6d8-f42pz   0/1       ContainerCreating   0          5s
default       nginx-deployment-569477d6d8-spjqk   0/1       ContainerCreating   0          5s
kube-system   etcd-k8s-dp1                        1/1       Running             0          3h
kube-system   kube-apiserver-k8s-dp1              1/1       Running             0          3h
kube-system   kube-controller-manager-k8s-dp1     1/1       Running             0          3h
kube-system   kube-dns-86cc76f8d-9jh2w            3/3       Running             0          3h
kube-system   kube-proxy-65mtx                    1/1       Running             1          2h
kube-system   kube-proxy-wkkdm                    1/1       Running             0          3h
kube-system   kube-scheduler-k8s-dp1              1/1       Running             0          3h
kube-system   weave-net-6sbbn                     2/2       Running             0          2h
kube-system   weave-net-hdv9b                     2/2       Running             3          2h

問題が何であるかを理解する方法はわかりませんが、たとえばkubectl get evを実行すると、次の疑わしいイベントが表示されます。

<invalid>   <invalid>    1         nginx-deployment-569477d6d8-f42pz.15087c66386edf5d   Pod
             Warning   FailedCreatePodSandBox   kubelet, k8s-dp2        Failed create pod sandbox.

しかし、ここからどこに行くべきかわかりません。また、docker imagesにnginxドッカーイメージ自体が表示されないこともわかります。

問題の詳細を調べるにはどうすればよいですか? kubernetesのセットアップに基本的なものが欠けていますか?

---新しい情報---

それが役立つ場合の背景情報について...

Kubernetesノードは、Windows 10 hyper-vでホストされているCentOS 7 VM上で実行されています。

---新しい情報---

kubectl describe podsを実行すると、次の警告が表示されます。

Warning  NetworkNotReady         1m                             kubelet, k8s-dp2  network is not ready: [runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized]

---新しい情報---

Kubernetesを実行しているHyper-v VMを1日の勤務時間が過ぎた夜にオフにし、今朝オフィスに戻ったときに、Kubernetes VMの電源を再び入れて、約15分間コマンドを実行しました。

kubectl get pods --all-namespacesは、昨日と同じnginxポッドに対してまだContainerCreatingを表示していましたが、現在、コマンドはnginxポッドを含むRunningとしてすべてのポッドを表示しています...マスターノードとワーカーノードの両方のVMを完全に再起動すると、問題は解決しました。

今、もう一度完全な再起動を行ったところ、すべてのポッドが実行中として表示されています。

6
Going Bananas

KubernetesマスターノードとKubernetesワーカーノードを実行している両方のVMを完全に再起動すると、PodはすべてRunningとして表示されます(注:最初の再起動後、問題のPodには約15〜20分かかりましたRunning状態に移行し、その後の再起動時に、問題のポッドがRunning状態に移行するのが比較的速くなりました... 3〜5分)。

5
Going Bananas

kubectl describe podを使用すると、すべてのイベントが表示されます。場合によっては、展開がまだリモートからdockerイメージをプルしているため、ステータスはContainerCreatingとして表示されたままになります。

4
Anuj

つかいます kubectl describe pod <name>詳細情報を見る

3
Lev Kuznetsov

systemctl restart kubelet.service

1
user2311194