oomichi / try-kubernetes

11 stars 5 forks source link

NotReady on k8s v1.16.0 #99

Closed oomichi closed 4 years ago

oomichi commented 4 years ago

v1.16.0 の k8s クラスタを再構築、ノードのStatus が NotReady のままの状態

$ kubectl get nodes
NAME         STATUS     ROLES    AGE   VERSION
k8s-cpu01    NotReady   <none>   15h   v1.16.0
k8s-master   NotReady   master   15h   v1.16.0

原因を調査し、対処する。

oomichi commented 4 years ago

まずは node の状態を確認する。

$ kubectl describe node k8s-master
...
  Ready            False   Thu, 26 Sep 2019 20:08:39 +0000   Thu, 26 Sep 2019 00:53:56 +0000   KubeletNotReady              runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:docker: network plugin is not ready: cni config uninitialized

Network plugin が Ready でないことがわかる。 network plugin は flannel を使っているので、flannel の公式サイトで k8s での適用方法を調べる。 -> bingo, flannel/issues/1178 flannel YAML の "cniVersion":"0.2.0", という行を"cniVersion":"0.3.1", で更新すればOKらしい。

oomichi commented 4 years ago

下記のように修正して適用したところ、直った

$ diff -u kube-flannel.yml.orig kube-flannel.yml
--- kube-flannel.yml.orig       2019-09-26 21:25:25.026326892 +0000
+++ kube-flannel.yml    2019-09-26 21:17:22.580102836 +0000
@@ -105,7 +105,7 @@
 data:
   cni-conf.json: |
     {
-      "cniVersion": "0.2.0",
+      "cniVersion": "0.3.1",
       "name": "cbr0",
       "plugins": [
         {