Unable to connect to the server: dial tcp i/o time out

3/13/2018

When i run the kubectl version command , I get the following error message.

kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-15T21:07:38Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"linux/amd64"}
Unable to connect to the server: dial tcp 192.168.99.100:8443: i/o timeout

How do I resolve this?

-- IT_novice
kubernetes

9 Answers

5/8/2020

If you are using azure and have recently changed your password try this:

az account clear
az login

After logging in successfully:

az aks get-credentials --name project_name --resource-group resource_group_name

Now when you run

kubectl get nodes

you should see something. Also, make sure you are using the correct kubectl context.

-- Arthur Costa
Source: StackOverflow

9/6/2019

i checked the firewall port and it was closed, i opened it and it started working.

-- Parthasarathi Sahu
Source: StackOverflow

4/2/2020

Was facing the same problem with accessing GKE master from Google Cloud Shell.

Then I followed this GCloud doc to solve it.

  1. Open GCloud Shell

  2. Get External IP of the current GCloud Shell with:

    dig +short myip.opendns.com @resolver1.opendns.com

  3. Add this External IP into the "Master authorized networks" section of the GKE cluster - with a CIDR suffix of /32

After that, running kubectl get nodes from the GCloud Shell worked right away.

-- Rakib
Source: StackOverflow

3/13/2018

You can get relevant information about the client-server status by using the following command.

kubectl config view 

Now you can update or set k8s context accordingly with the following command.

kubectl config use-context kubernetes

you can do further action on kubeconfig file. the following command will provide you with all necessary information.

kubectl config --help
-- Suresh Vishnoi
Source: StackOverflow

4/13/2019

If you use minikube then you should run, kubectl config use-context minikube If you use latest docker for desktop that comes with kubernetes then you should run, kubectl config use-context docker-for-desktop

-- Khalid
Source: StackOverflow

5/21/2019

You have to run first

minikube start

on your terminal. This will do following things for you:

 Restarting existing virtualbox VM for "minikube" ...
⌛  Waiting for SSH access ...
  "minikube" IP address is 192.168.99.100
  Configuring Docker as the container runtime ...
  Version of container runtime is 18.06.3-ce
⌛  Waiting for image downloads to complete ...
✨  Preparing Kubernetes environment ...
  Pulling images required by Kubernetes v1.14.1 ...
  Relaunching Kubernetes v1.14.1 using kubeadm ... 
⌛  Waiting for pods: apiserver proxy etcd scheduler controller dns
  Updating kube-proxy configuration ...
  Verifying component health ......
  kubectl is now configured to use "minikube"
  Done! Thank you for using minikube!
-- Venu Gopal Tewari
Source: StackOverflow

10/27/2019

I was facing the same issue on Ubuntu 18.04.1 LTS.

The solution provided here worked for me.

Just putting the same data here:

  1. Get current cluster name and Zone:

    gcloud container clusters list

  2. Configure Kubernetes to use your current cluster:

    gcloud container clusters get-credentials [cluster name] --zone [zone]

Hope it helps.

-- asim
Source: StackOverflow

10/2/2019

I got similar problem when I run

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Unable to connect to the server: dial tcp 192.168.99.100:8443: i/o timeout

And here's how I tried and finally worked.

I installed Docker Desktop on Mac (Version 2.0.0.3) firstly. Then I installed the kubectl with command

$ brew install kubectl
.....
==> Pouring kubernetes-cli-1.16.0.high_sierra.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink bin/kubectl
Target /usr/local/bin/kubectl
already exists. You may want to remove it:
  rm '/usr/local/bin/kubectl'

To force the link and overwrite all conflicting files:
  brew link --overwrite kubernetes-cli

To list all files that would be deleted:
  brew link --overwrite --dry-run kubernetes-cli

Possible conflicting files are:
/usr/local/bin/kubectl -> /Applications/Docker.app/Contents/Resources/bin/kubectl
.....

That doesn't matter, we have already got the kubectl. Then I install minikube with command

$ brew cask install minikube
...
==> Linking Binary 'minikube-darwin-amd64' to '/usr/local/bin/minikube'.
  minikube was successfully installed!

start minikube first time (VirtualBox not installed)

$ minikube start
  minikube v1.4.0 on Darwin 10.13.6
  Downloading VM boot image ...
    > minikube-v1.4.0.iso.sha256: 65 B / 65 B [--------------] 100.00% ? p/s 0s
    > minikube-v1.4.0.iso: 135.73 MiB / 135.73 MiB [-] 100.00% 7.75 MiB p/s 18s
  Creating virtualbox VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
  Retriable failure: create: precreate: VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path
...
  Unable to start VM
❌  Error: [VBOX_NOT_FOUND] create: precreate: VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path
  Suggestion: Install VirtualBox, or select an alternative value for --vm-driver
  Documentation: https://minikube.sigs.k8s.io/docs/start/
⁉️   Related issues:
    ▪ https://github.com/kubernetes/minikube/issues/3784

Install VirtualBox, then start minikube second time (VirtualBox installed)

$ minikube start
  13:37:01.006849   35511 cache_images.go:79] CacheImage kubernetesui/dashboard:v2.0.0-beta4 -> /Users/kaka.go/.minikube/cache/images/kubernetesui/dashboard_v2.0.0-beta4 failed: read tcp 10.49.52.206:50350->104.18.125.25:443: read: operation timed out
  Preparing Kubernetes v1.16.0 on Docker 18.09.9 ...
E1002 13:37:33.632298   35511 start.go:706] Error caching images:  Caching images for kubeadm: caching images: caching image /Users/kaka.go/.minikube/cache/images/kubernetesui/dashboard_v2.0.0-beta4: read tcp 10.49.52.206:50350->104.18.125.25:443: read: operation timed out
Unable to load cached images: loading cached images: loading image /Users/kaka.go/.minikube/cache/images/kubernetesui/dashboard_v2.0.0-beta4: stat /Users/kaka.go/.minikube/cache/images/kubernetesui/dashboard_v2.0.0-beta4: no such file or directoryminikube v1.4.0 on Darwin 10.13.6
  Creating virtualbox VM (CPUs=2, Memory=2000MB, Disk=20000MB) ...
E1002 
  Downloading kubeadm v1.16.0
  Downloading kubelet v1.16.0
  Pulling images ...
  Launching Kubernetes ... 

  Error starting cluster: timed out waiting to elevate kube-system RBAC privileges: Temporary Error: creating clusterrolebinding: Post https://192.168.99.100:8443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings: dial tcp 192.168.99.100:8443: i/o timeout

  Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
  https://github.com/kubernetes/minikube/issues/new/choose
Problems detected in kube-addon-manager [b17d460ddbab]:
    error: no objects passeINFO:d  == Kuto apberneply
    error: no objectNsF Op:a == Kubernetssed tes ado appdon ely

start minikube 3rd time

$ minikube start
  minikube v1.4.0 on Darwin 10.13.6
  Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.
  Using the running virtualbox "minikube" VM ...
⌛  Waiting for the host to be provisioned ...
  Preparing Kubernetes v1.16.0 on Docker 18.09.9 ...
  Relaunching Kubernetes using kubeadm ... 

! still got stuck on Relaunching

I enable Kubernetes config in Docker Preferences setting, restart my Mac and switch the Kubernetes context to docker-for-desktop.

Oh, the kubectl version works this time, but with the context docker-for-desktop

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:25:46Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"linux/amd64"}

start minikube 4th time (after restart system maybe)

$ minikube start
  minikube v1.4.0 on Darwin 10.13.6
  Tip: Use 'minikube start -p <name>' to create a new cluster, or 'minikube delete' to delete this one.
  Starting existing virtualbox VM for "minikube" ...
⌛  Waiting for the host to be provisioned ...
  Preparing Kubernetes v1.16.0 on Docker 18.09.9 ...
  Relaunching Kubernetes using kubeadm ... 
⌛  Waiting for: apiserver proxy etcd scheduler controller dns
  Done! kubectl is now configured to use "minikube"

Finally, it works with minikube context...

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.11", GitCommit:"637c7e288581ee40ab4ca210618a89a555b6e7e9", GitTreeState:"clean", BuildDate:"2018-11-26T14:38:32Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.0", GitCommit:"2bd9643cee5b3b3a5ecbd3af49d09018f0773c77", GitTreeState:"clean", BuildDate:"2019-09-18T14:27:17Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
-- gokaka
Source: StackOverflow

1/29/2020

I had the same issue when I tried use kubrnetes installed with Docker. It turned out that it was not enbled by default. enter image description here

First I enabled kubrnetes in Docker options and then I changed context for docker-for-desktop

kubectl config get-contexts
kubectl config use-context docker-for-desktop

It solved the issue.

-- Krzysztof Madej
Source: StackOverflow