1. ホーム
  2. ドッカー

kubernetesの後に参加した作業ノードが "NotReady "状態である。

2022-02-27 17:50:40

問題:マスターで参加したばかりのノードの状態を確認するとSTATUS: NotReadyと表示される

[root@k8s-master jenkins-yaml]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 2d1h v1.15.2
k8s-node1 Ready <none> 2d1h v1.15.2
k8s-node2 NotReady <none> 11m v1.15.2


トラブルシューティングです。エラー行 No networks found in /etc/cni/net.d からは、おそらくネットワーク設定の問題で、Flannelのインストールプロセスに問題があるのではないかと推測されます。

ノード上のログを確認する

root@k8s-node2 ~]# journalctl -f -u kubelet
-- Logs begin at a 2019-10-28 16:09:21 CST. --
Oct 28 16:50:48 k8s-node2 kubelet[14216]: W1028 16:50:48.984435 14216 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
Oct 28 16:50:49 k8s-node2 kubelet[14216]: E1028 16:50:49.506102 14216 kubelet.go:2169] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Oct 28 16:50:53 k8s-node2 kubelet[14216]: W1028 16:50:53.984746 14216 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
Oct 28 16:50:54 k8s-node2 kubelet[14216]: E1028 16:50:54.507916 14216 kubelet.go:2169] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Oct 28 16:50:58 k8s-node2 kubelet[14216]: W1028 16:50:58.985254 14216 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
Oct 28 16:50:59 k8s-node2 kubelet[14216]: E1028 16:50:59.509542 14216 kubelet.go:2169] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Oct 28 16:51:03 k8s-node2 kubelet[14216]: W1028 16:51:03.985612 14216 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
Oct 28 16:51:04 k8s-node2 kubelet[14216]: E1028 16:51:04.518004 14216 kubelet.go:2169] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized
Oct 28 16:51:08 k8s-node2 kubelet[14216]: W1028 16:51:08.985934 14216 cni.go:213] Unable to update cni config: No networks found in /etc/cni/net.d
Oct 28 16:51:09 k8s-node2 kubelet[14216]: E1028 16:51:09.520076 14216 kubelet.go:2169] Container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized


 マスター上のポッドをチェックすると、フランネルイメージのダウンロードに失敗していることがわかりました。

[root@k8s-master jenkins-yaml]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-bccdc95cf-dzgz8 1/1 Running 0 2d1h
coredns-bccdc95cf-xfp4s 1/1 Running 0 2d1h
etcd-k8s-master 1/1 Running 0 2d1h
kube-apiserver-k8s-master 1/1 Running 0 2d1h
kube-controller-manager-k8s-master 1/1 Running 0 2d1h
kube-flannel-ds-amd64-c769s 1/1 Running 0 2d1h
kube-flannel-ds-amd64-lphkb 1/1 Running 0 2d1h
kube-flannel-ds-amd64-vv9m5 0/1 Init:ErrImagePull 0 10m
kube-proxy-8bw84 1/1 Running 0 2d1h
kube-proxy-s9v8g 1/1 Running 0 10m
kube-proxy-ttwcg 1/1 Running 0 2d1h
kube-scheduler-k8s-master 1/1 Running 0 2d1h
kuboard-7bb8d57995-5qth2 1/1 Running 0 2d1h


解決策

明らかにノードがネットワークイメージのダウンロードに失敗したため、ノード上で手動でフランネルイメージを引き出すことは可能でしょうか?

[root@k8s-node2 ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
registry.aliyuncs.com/google_containers/kube-proxy v1.15.2 167bbf6c9338 2 months ago 82.4MB
registry.aliyuncs.com/google_containers/pause 3.1 da86e6ba6ca1 22 months ago 742kB
[root@k8s-node2 ~]# 
[root@k8s-node2 ~]# 
[root@k8s-node2 ~]# docker pull quay.io/coreos/flannel:v0.11.0-amd64
v0.11.0-amd64: Pulling from coreos/flannel
cd784148e348: Already exists 
04ac94e9255c: Pull complete 
e10b013543eb: Pull complete 
005e31e443b1: Pull complete 
74f794f05817: Pull complete 
Digest: sha256:7806805c93b20a168d0bbbd25c6a213f00ac58a511c47e8fa6409543528a204e
Status: Image is up to date for quay.io/coreos/flannel:v0.11.0-amd64



イメージをダウンロードしたら、masterに戻り、Podの状態を確認する

[root@k8s-master jenkins-yaml]# kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-bccdc95cf-dzgz8 1/1 Running 0 2d1h
coredns-bccdc95cf-xfp4s 1/1 Running 0 2d1h
etcd-k8s-master 1/1 Running 0 2d1h
kube-apiserver-k8s-master 1/1 Running 0 2d1h
kube-controller-manager-k8s-master 1/1 Running 0 2d1h
kube-flannel-ds-amd64-c769s 1/1 Running 0 2d1h
kube-flannel-ds-amd64-lphkb 1/1 Running 0 2d1h
kube-flannel-ds-amd64-vv9m5 1/1 Running 0 11m
kube-proxy-8bw84 1/1 Running 0 2d1h
kube-proxy-s9v8g 1/1 Running 0 11m
kube-proxy-ttwcg 1/1 Running 0 2d1h
kube-scheduler-k8s-master 1/1 Running 0 2d1h
kuboard-7bb8d57995-5qth2 1/1 Running 0 2d1h


ok ネットワークが立ち上がったので、ノードの状態をもう一度確認します。

[root@k8s-master jenkins-yaml]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 2d1h v1.15.2
k8s-node1 Ready <none> 2d1h v1.15.2
k8s-node2 Ready <none> 11m v1.15.2


問題解決