<p>I have installed a local Kubernetes cluster using minikube following the instructions <a href="http://kubernetes.io/docs/getting-started-guides/minikube/" rel="noreferrer">here</a>.</p>

<p>I'm under a corporate proxy. Therefore I have set the http_proxy and https_proxy env vars. Once the cluster is started after <code>minikube start</code> command I also added the value of <code>minikube ip</code> to the no_proxy env var. However still kubectl cannot connect to the cluster.</p>

<pre><code>ubuntu@ros-2:~$ kubectl -v=7 get pods
I0105 10:31:47.773801   17607 loader.go:354] Config loaded from file /home/ubuntu/.kube/config
I0105 10:31:47.775151   17607 round_trippers.go:296] GET https://192.168.42.22:8443/api
I0105 10:31:47.778533   17607 round_trippers.go:303] Request Headers:
I0105 10:31:47.778606   17607 round_trippers.go:306]     Accept: application/json, */*
I0105 10:31:47.778676   17607 round_trippers.go:306]     User-Agent: kubectl/v1.5.1 (linux/amd64) kubernetes/82450d0
I0105 10:31:47.783069   17607 round_trippers.go:321] Response Status:  in 4 milliseconds
I0105 10:31:47.783166   17607 helpers.go:221] Connection error: Get https://192.168.42.22:8443/api: Forbidden port
F0105 10:31:47.783181   17607 helpers.go:116] Unable to connect to the server: Forbidden port
</code></pre>

<p>I'm assuming this is because of kubectl not being aware of the no_proxy settings. A simple curl to the cluster goes through fine.</p>

<pre><code>ubuntu@ros-2:~$ curl -v -k https://192.168.42.22:8443/api
* Hostname was NOT found in DNS cache
*   Trying 192.168.42.22...
* Connected to 192.168.42.22 (192.168.42.22) port 8443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Server key exchange (12):
* SSLv3, TLS handshake, Request CERT (13):
* SSLv3, TLS handshake, Server finished (14):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS handshake, Client key exchange (16):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSLv3, TLS change cipher, Client hello (1):
* SSLv3, TLS handshake, Finished (20):
* SSL connection using ECDHE-RSA-AES128-GCM-SHA256
* Server certificate:
*        subject: CN=minikube
*        start date: 2017-01-04 16:04:47 GMT
*        expire date: 2018-01-04 16:04:47 GMT
*        issuer: CN=minikubeCA
*        SSL certificate verify result: unable to get local issuer certificate (20), continuing anyway.
&gt; GET /api HTTP/1.1
&gt; User-Agent: curl/7.35.0
&gt; Host: 192.168.42.22:8443
&gt; Accept: */*
&gt;
&lt; HTTP/1.1 401 Unauthorized
&lt; Content-Type: text/plain; charset=utf-8
&lt; X-Content-Type-Options: nosniff
&lt; Date: Thu, 05 Jan 2017 10:33:45 GMT
&lt; Content-Length: 13
&lt;
Unauthorized
* Connection #0 to host 192.168.42.22 left intact
</code></pre>

<p>Any ideas on how to fix this?</p>

<p>Fixed this. The fix was to have the no_proxy details in NO_PROXY as well.</p>

<pre><code>export NO_PROXY=$no_proxy,$(minikube ip)
</code></pre>

<p><a href="https://github.com/kubernetes/minikube/issues/530" rel="noreferrer">Relevant thread</a>. Hope this will be useful to someone.</p>
