kubeadm: Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring

Is this a BUG REPORT or FEATURE REQUEST?

BUG REPORT

Versions

kubeadm version (use kubeadm version): {Major:“1”, Minor:“13”, GitVersion:“v1.13.1”, GitCommit:“eec55b9ba98609a46fee712359c7b5b365bdd920”, GitTreeState:“clean”, BuildDate:“2018-12-13T10:36:44Z”, GoVersion:“go1.11.2”, Compiler:“gc”, Platform:“linux/amd64”}

Environment:

  • Kubernetes version (use kubectl version): {Major:“1”, Minor:“13”, GitVersion:“v1.13.1”, GitCommit:“eec55b9ba98609a46fee712359c7b5b365bdd920”, GitTreeState:“clean”, BuildDate:“2018-12-13T10:39:04Z”, GoVersion:“go1.11.2”, Compiler:“gc”, Platform:“linux/amd64”}
  • Kernel (e.g. uname -a): Linux 4.9.137-0.1.ac.218.74.329.metal1.x86_64 #1 SMP Wed Dec 5 15:11:05 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

What happened?

On doing kubeadm join, everything works successfully, however logs on worker nodes keeps showing these errors Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring

E0108 09:42:01.655993   26056 file_linux.go:61] Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring
E0108 09:42:02.656241   26056 file_linux.go:61] Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring
E0108 09:42:03.656508   26056 file_linux.go:61] Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring
E0108 09:42:04.656777   26056 file_linux.go:61] Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring
E0108 09:42:05.657077   26056 file_linux.go:61] Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring
E0108 09:42:06.657331   26056 file_linux.go:61] Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring
E0108 09:42:07.657615   26056 file_linux.go:61] Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring
E0108 09:42:08.657855   26056 file_linux.go:61] Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring
E0108 09:42:09.658086   26056 file_linux.go:61] Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring
E0108 09:42:10.658327   26056 file_linux.go:61] Unable to read config path "/etc/kubernetes/manifests": path does not exist, ignoring
....

This doesn’t affect node health. However its noise in logs. After I manually create the missing folder /etc/kubernetes/manifests, this error stops.

What you expected to happen?

I expected, kubeadm during join process to create that folder.

How to reproduce it (as minimally and precisely as possible)?

  1. Install kubeadm/kubelet/kubectl of same version 1.13.1. Doesn’t matter if its installed from binaries or from yum repos. Both have same behavior.
  2. Make sure you run kubeadm reset on all master/worker nodes. Also remove /etc/kubernetes folder, to test kubeadm bootstrap process.
  3. Run kubeadm init on master and kubeadm join on worker node.
  4. Check logs on worker node and you should see same errors as I posted above.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 2
  • Comments: 23 (13 by maintainers)

Most upvoted comments

I created “manifests” ,then reloaded the k8s servers manually ,then error stoped.

@mamer67 When you install kubelet with deb/rpm it will automatically create the /etc/kubernetes/manifests directory. https://github.com/kubernetes/release/blob/master/debian/xenial/kubelet/debian/postinst#L35

This means that kubeadm expects that directory to exist before it is run. kubeadm will not take the liberty of creating the directory for you and so you must do it manually if you have deleted it.

Please run mkdir -p /etc/kubernetes/manifests and rerun kubeadm and let us know if the issue still persists.

OK. Thanks all for your help on this. Closing this now.

@chuckha I see. Let me then test again by getting the tools using RPM. I honestly thought that folder is getting created as part of the join/bootstrap process done by kubeadm. Otherwise anyone running kubeadm from binaries will have to create that folder manually now.

@RA489 Thanks for your work above. I will try using RPM now and see.