kelseyhightower / kubernetes-the-hard-way

Bootstrap Kubernetes the hard way. No scripts.
Apache License 2.0
40.53k stars 13.9k forks source link

Cannot start kubelet #275

Closed orihihsik closed 6 years ago

orihihsik commented 6 years ago

when trying to start the kubelet service, I got these messages:

$ systemctl status kubelet ● kubelet.service - Kubernetes Kubelet Loaded: loaded (/etc/systemd/system/kubelet.service; enabled; vendor preset: enabled) Active: activating (auto-restart) (Result: exit-code) since Tue 2017-12-19 08:10:32 UTC; 3s ago Docs: https://github.com/kubernetes/kubernetes Process: 25206 ExecStart=/usr/local/bin/kubelet --allow-privileged=true --anonymous-auth=false --authorization-mode=Webhook --client-ca-file=/var/lib/kubernetes/ca.pem --cloud-provider= --cluster-dns=10.32.0.10 --cluster-domain=cluster.local --container-runtime=remote --container-runtime-endpoint=unix:///var/run/cri-containerd.sock --image-pull-progress-deadline=2m --kubeconfig=/var/lib/kubelet/kubeconfig --network-plugin=cni --pod-cidr=10.200.2.0/24 --register-node=true --runtime-request-timeout=15m --tls-cert-file=/var/lib/kubelet/worker-2.pem --tls-private-key-file=/var/lib/kubelet/worker-2-key.pem --v=2 (code=exited, status=1/FAILURE) Main PID: 25206 (code=exited, status=1/FAILURE)

Dec 19 08:10:32 worker-2 kubelet[25206]: I1219 08:10:32.022193 25206 controller.go:114] kubelet config controller: starting controller Dec 19 08:10:32 worker-2 kubelet[25206]: I1219 08:10:32.022198 25206 controller.go:118] kubelet config controller: validating combination of defaults and flags Dec 19 08:10:32 worker-2 kubelet[25206]: I1219 08:10:32.033457 25206 mount_linux.go:202] Detected OS with systemd Dec 19 08:10:32 worker-2 kubelet[25206]: I1219 08:10:32.055381 25206 server.go:182] Version: v1.9.0 Dec 19 08:10:32 worker-2 kubelet[25206]: I1219 08:10:32.055423 25206 feature_gate.go:220] feature gates: &{{} map[]} Dec 19 08:10:32 worker-2 kubelet[25206]: I1219 08:10:32.055637 25206 plugins.go:101] No cloud provider specified. Dec 19 08:10:32 worker-2 kubelet[25206]: I1219 08:10:32.055649 25206 server.go:303] No cloud provider specified: "" from the config file: "" Dec 19 08:10:32 worker-2 kubelet[25206]: W1219 08:10:32.057048 25206 server.go:387] invalid kubeconfig: invalid configuration: no configuration has been provided Dec 19 08:10:32 worker-2 kubelet[25206]: error: failed to run Kubelet: no client provided, cannot use webhook authorization

frezbo commented 6 years ago

@orihihsik this issue has already been fixed in the master. Please provide the --cloud-provider= flag to the kubelet.service file

orihihsik commented 6 years ago

@frezbo I already added --cloud-provider= flag... The kubelet.service that I use is copied from 09-bootstrapping-kubernetes-workers.md

nickray commented 6 years ago

I had the same error. In my case, I had missed a step setting up the worker kubeconfig, ending up with an entry current-context: "" instead of current-context: "default". Hope this helps!

orihihsik commented 6 years ago

I recreated worker-*.kubeconfig file and it's working fine.

alexelshamouty commented 5 years ago

I had the same issue. Turns out I made a mistake in the cluster name. Very funny, has nothing to do with the cluster it self. I went back to 05-kubernetes-configuration-files.md and recreated the file, copied it again and restarted the service. And now it works.

lalitkumarbansal commented 4 years ago

Here is my /var/lib/kubelet/kubeconfig from worker-2

But still I am getting invalid file :-(

{ kubectl config set-cluster kubernetes-the-hard-way \ --certificate-authority=ca.crt \ --embed-certs=true \ --server=https://192.168.5.30:6443 \ --kubeconfig=worker-2.kubeconfig

kubectl config set-credentials system:node:worker-2 \ --client-certificate=worker-2.crt \ --client-key=worker-2.key \ --embed-certs=true \ --kubeconfig=worker-2.kubeconfig

kubectl config set-context default \ --cluster=kubernetes-the-hard-way \ --user=system:node:worker-2 \ --kubeconfig=worker-2.kubeconfig

kubectl config use-context default --kubeconfig=worker-2.kubeconfig }