kubectl behind a proxy

匿名 (未验证) 提交于 2019-12-03 01:20:02

问题:

I have installed a local Kubernetes cluster using minikube following the instructions here.

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

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 

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.

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. > GET /api HTTP/1.1 > User-Agent: curl/7.35.0 > Host: 192.168.42.22:8443 > Accept: */* > < HTTP/1.1 401 Unauthorized < Content-Type: text/plain; charset=utf-8 < X-Content-Type-Options: nosniff < Date: Thu, 05 Jan 2017 10:33:45 GMT < Content-Length: 13 < Unauthorized * Connection #0 to host 192.168.42.22 left intact 

Any ideas on how to fix this?

回答1:

Fixed this. The fix was to have the no_proxy details in NO_PROXY as well.

export NO_PROXY=$no_proxy,$(minikube ip) 

Relevant thread. Hope this will be useful to someone.



标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!