'How to fix issue of 'Unable to connect to the server: EOF' Kubernetes - Kubectl

When I try any kubectl command, it always returns:

Unable to connect to the server: EOF

I followed these tutorials:

https://kubernetes.io/docs/tasks/tools/install-kubectl/

https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/

But they have not helped me. According to the first link, by default, kubectl configuration is located at

~/.kube/config

But in that path I don't have anything. I don't know if this is causing the issue.

Other thing is when I try to check the kubectl configuration:

M:.kube candres$ kubectl cluster-info
Kubernetes master is running at http://localhost:8080

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
Unable to connect to the server: EOF
M:.kube candres$ kubectl cluster-info dump
Unable to connect to the server: EOF

The versions I have installed are:

Kubernetes - kubectl

M:.kube candres$ kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.3", GitCommit:"X", GitTreeState:"clean", BuildDate:"2018-02-09T21:51:06Z", GoVersion:"go1.9.4", Compiler:"gc", Platform:"darwin/amd64"}
Unable to connect to the server: EOF

Minikube

M:.kube candres$ minikube version
minikube version: v0.25.0

Docker:

M:.kube candres$ docker version
Client:
 Version:   17.12.0-ce
 API version:   1.35
 Go version:    go1.9.2
 Git commit:    X
 Built: Wed Dec 27 20:03:51 2017
 OS/Arch:   darwin/amd64

Server:
 Engine:
  Version:  17.12.0-ce
  API version:  1.35 (minimum version 1.12)
  Go version:   go1.9.2
  Git commit:   X
  Built:    Wed Dec 27 20:12:29 2017
  OS/Arch:  linux/amd64
  Experimental: true

Does anyone know how to resolve this?



Solution 1:[1]

After Minikube is started, kubectl is configured automatically.

minikube start
Starting local Kubernetes cluster...
Kubernetes is available at https://192.168.99.100:8443.
Kubectl is now configured to use the cluster.

You can verify and validate the cluster and context with following commands.

kubectl config view

Solution 2:[2]

I also had this issue. Be sure to check your config file that is generated by minikube. This file can most likely be found ~/.kube/config. Make sure that you are referencing the right cluster name in the current context you are using. You can see what context you are currently using by: kubectl get current-context. The important thing is that you understand why you are getting this error and as @Suresh Vishnoi stated, kubectl doesn't know about k8s api-server.

Solution 3:[3]

Just updating Kubectl version to latest version resolve my problem.

Solution 4:[4]

If you get a message like this:

You appear to be using a proxy, but your NO_PROXY environment does not include the minikube IP (www.xxx.yyy.zzz).

Then set your environment variable NO_PROXY to the address given before running kubectl. This is probably configurable somewhere, but that's a short quick solution.

Solution 5:[5]

reset kubeadm via force

reset kubeadm -f

and then copy config file again

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

at last

kubectl init

Solution 6:[6]

here the steps to my solution

  1. Install minikube:

brew install minikube

  1. Start minikube

minikube start

  1. check again and ?

kubectl version --short

Client Version: v1.16.6-beta.0

Server Version: v1.22.2

Solution 7:[7]

I'm using wsl. So it helps me to synchronize time between windows and linux console.

sudo hwclock --hctosys 

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 ghitesh
Solution 2 Nappstir
Solution 3 Mudit Nagpal
Solution 4 Ken
Solution 5 Suraj Rao
Solution 6 Junior Vieira
Solution 7 Vlad Pavlovski