title: Minikube does not start, kubectl connection to server was refused
body: <p>Scouring stack overflow solutions for similar problems did not resolve my issue, so hoping to share what I'm currently experiencing to get help debugging this.</p>
  
  <p>So a small preface; I initially installed minikube/kubectl a couple days back. I went ahead and tried following the minikube tutorial today and am now experiencing issues. I'm following the <a href="https://kubernetes.io/docs/getting-started-guides/minikube/#quickstart" rel="nofollow noreferrer">minikube getting started guide</a>.</p>
  
  <p>I am on MacOS. My versions:</p>
  
  <p>$ kubectl version</p>
  
  <pre><code>Client Version: version.Info{Major:"1", Minor:"10", GitVersion:"v1.10.2", GitCommit:"81753b10df112992bf51bbc2c2f85208aad78335", GitTreeState:"clean", BuildDate:"2018-04-27T09:22:21Z", GoVersion:"go1.9.3", Compiler:"gc", Platform:"darwin/amd64"}
  Unable to connect to the server: net/http: TLS handshake timeout
  </code></pre>
  
  <p>$ minikube version</p>
  
  <pre><code>minikube version: v0.26.1
  </code></pre>
  
  <p>$ vboxmanage --version</p>
  
  <pre><code>5.1.20r114629
  </code></pre>
  
  <p>The following are a string of commands I've tried to check responses..</p>
  
  <hr>
  
  <p>$ minikube start</p>
  
  <pre><code>Starting VM...
  Getting VM IP address...
  Moving files into cluster...
  E0503 11:08:18.654428   20197 start.go:234] Error updating cluster:  downloading binaries: transferring kubeadm file: &amp;{BaseAsset:{data:[] reader:0xc4200861a8 Length:0 AssetName:/Users/philipyoo/.minikube/cache/v1.10.0/kubeadm TargetDir:/usr/bin TargetName:kubeadm Permissions:0641}}: Error running scp command: sudo scp -t /usr/bin output: : wait: remote command exited without exit status or exit signal
  </code></pre>
  
  <hr>
  
  <p>$ minikube status</p>
  
  <pre><code>cluster: Running
  kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.103
  </code></pre>
  
  <h3>Edit:</h3>
  
  <p>I don't know what happened, but checking the status again returned "Misconfigured". I ran the recommended command <code>$ minikube update-context</code> and now the <code>$ minikube ip</code> points to "172.17.0.1". Pinging this IP returns request timeouts, 100% packet loss. Double-checked context and I'm still using "minikube" both for context and cluster:</p>
  
  <p>$ kubectl config get-cluster</p>
  
  <p>$ kubectl config get-context</p>
  
  <hr>
  
  <p>$ kubectl get pods</p>
  
  <pre><code>The connection to the server 192.168.99.103:8443 was refused - did you specify the right host or port?
  </code></pre>
  
  <hr>
  
  <p>Reading github issues, I ran into this one: <a href="https://github.com/kubernetes/kubernetes/issues/44665#issuecomment-295216655" rel="nofollow noreferrer">kubernetes#44665</a>. So...</p>
  
  <p>$ ls /etc/kubernetes</p>
  
  <pre><code>ls: /etc/kubernetes: No such file or directory
  </code></pre>
  
  <hr>
  
  <h3>Only the last few entries</h3>
  
  <p>$ minikube logs</p>
  
  <pre><code>May 03 18:10:48 minikube kubelet[3405]: E0503 18:10:47.933251    3405 event.go:209] Unable to write event: 'Patch https://192.168.99.103:8443/api/v1/namespaces/default/events/minikube.152b315ce3475a80: dial tcp 192.168.99.103:8443: getsockopt: connection refused' (may retry after sleeping)
  May 03 18:10:49 minikube kubelet[3405]: E0503 18:10:49.160920    3405 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/kubelet.go:465: Failed to list *v1.Service: Get https://192.168.99.103:8443/api/v1/services?limit=500&amp;resourceVersion=0: dial tcp 192.168.99.103:8443: getsockopt: connection refused
  May 03 18:10:51 minikube kubelet[3405]: E0503 18:10:51.670344    3405 reflector.go:205] k8s.io/kubernetes/pkg/kubelet/config/apiserver.go:47: Failed to list *v1.Pod: Get https://192.168.99.103:8443/api/v1/pods?fieldSelector=spec.nodeName%3Dminikube&amp;limit=500&amp;resourceVersion=0: dial tcp 192.168.99.103:8443: getsockopt: connection refused
  May 03 18:10:53 minikube kubelet[3405]: W0503 18:10:53.017289    3405 status_manager.go:459] Failed to get status for pod "kube-controller-manager-minikube_kube-system(c801aa20d5b60df68810fccc384efdd5)": Get https://192.168.99.103:8443/api/v1/namespaces/kube-system/pods/kube-controller-manager-minikube: dial tcp 192.168.99.103:8443: getsockopt: connection refused
  May 03 18:10:53 minikube kubelet[3405]: E0503 18:10:52.595134    3405 rkt.go:65] detectRktContainers: listRunningPods failed: rpc error: code = Unavailable desc = grpc: the connection is unavailable
  </code></pre>
  
  <hr>
  
  <p>I'm not exactly sure how to ping an https url, but if I ping the ip</p>
  
  <p>$ kube ping 192.168.99.103</p>
  
  <pre><code>PING 192.168.99.103 (192.168.99.103): 56 data bytes
  64 bytes from 192.168.99.103: icmp_seq=0 ttl=64 time=4.632 ms
  64 bytes from 192.168.99.103: icmp_seq=1 ttl=64 time=0.363 ms
  64 bytes from 192.168.99.103: icmp_seq=2 ttl=64 time=0.826 ms
  ^C
  --- 192.168.99.103 ping statistics ---
  3 packets transmitted, 3 packets received, 0.0% packet loss
  round-trip min/avg/max/stddev = 0.363/1.940/4.632/1.913 ms
  </code></pre>
  
  <hr>
  
  <p>Looking at kube config file...
  $ cat <code>~/.kube/config</code></p>
  
  <pre><code>apiVersion: v1
  clusters:
  - cluster:
      insecure-skip-tls-verify: true
      server: https://localhost:6443
    name: docker-for-desktop-cluster
  - cluster:
      certificate-authority: /Users/philipyoo/.minikube/ca.crt
      server: https://192.168.99.103:8443
    name: minikube
  contexts:
  - context:
      cluster: docker-for-desktop-cluster
      user: docker-for-desktop
    name: docker-for-desktop
  - context:
      cluster: minikube
      user: minikube
    name: minikube
  current-context: minikube
  kind: Config
  preferences: {}
  users:
  - name: docker-for-desktop
    user:
      client-certificate-data: &lt;removed&gt;
      client-key-data: &lt;removed&gt;
  - name: minikube
    user:
      client-certificate: /Users/philipyoo/.minikube/client.crt
      client-key: /Users/philipyoo/.minikube/client.key
  </code></pre>
  
  <p>And to make sure my key/crts are there:</p>
  
  <p>$ ls ~/.minikube</p>
  
  <pre><code>addons/              ca.pem*              client.key           machines/            proxy-client.key
  apiserver.crt        cache/               config/              profiles/
  apiserver.key        cert.pem*            files/               proxy-client-ca.crt
  ca.crt               certs/               key.pem*             proxy-client-ca.key
  ca.key               client.crt           logs/                proxy-client.crt
  </code></pre>
  
  <hr>
  
  <p>Any help in debugging is super appreciated!</p>