26
votes

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?

3
Hi @Carlos, It's quite an odd behaviour that one of the command kubectl cluster-info is working. However, others are not working. Could you please run following command kubectl config view which will list all of the clusters and contexts.Suresh Vishnoi
btw, Port number for API Server is 8443 or 443. Why the port number is 8080 ?Suresh Vishnoi
Hi @SureshVishnoi! When I run that command, that return: M:.kube candres$ kubectl config view apiVersion: v1 clusters: [] contexts: [] current-context: "" kind: Config preferences: {} users: [] With regard about the port, I dont know why this use port 8080!Carlos Andres
It means kubectl does not know about k8s API server. IF it does not know about the api server. It won't be able to do anythingSuresh Vishnoi
As you are using minikube , As far as I know, Minikube configure kubeconfig file automatically. So You can restart the minikube. You can run minikube status to verify it.Suresh Vishnoi

3 Answers

14
votes

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
3
votes

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.

0
votes

Just updating Kubectl version to latest version resolve my problem.