我正在尝试在Windows计算机上的公司代理后面启动minikube。我正在使用以下启动命令
minikube start --alsologtostderr --vm-driver="hyperv" --docker-env http_proxy=http://proxyabc.uk.sample.com:3128 --docker-env https_proxy=http://proxyabc.uk.sample.com:3128 --docker-env "NO_PROXY=localhost,127.0.0.1,192.168.211.157:8443"
minikube版本= 0.28.0
kubectl版本= 1.9.2
我还尝试在命令前设置no proxy变量
设置NO_PROXY =“ $ NO_PROXY,192.168.211.158 / 8443”
但是每次我运行“ minikube start”命令时,都会出现以下消息
错误启动集群:等待取消标记主节点的超时:获取节点minikube:获取https://192.168.211.155:8443/api/v1/nodes/minikube:禁止
我已经在
尝试过解决方案https://github.com/kubernetes/minikube/issues/2706 https://github.com/kubernetes/minikube/issues/2363
答案 0 :(得分:1)
set NO_PROXY="$NO_PROXY,192.168.211.158/8443"
该斜杠不是端口,它是CIDR,它定义了应从代理中排除多少个IP。单独地,您似乎以某种方式将冒号包含在提供给--docker-env
的冒号中,我认为这也是错误的。
此外,您的$NO_PROXY,
命令中的set
语法也是不正确的,因为这是引用环境变量的unix-y方式-您要小心set NO_PROXY="%NO_PROXY%,...
,因为除非您已经有一个名为NO_PROXY
的变量,则set
将扩展为读取set NO_PROXY=",192.168.etcetc"
,我不确定该变量的合法语法。
答案 1 :(得分:0)
我在工作Mac上遇到问题,但是原理相似。该文档很容易遵循,可以使MiniKube指向公司代理,但是它希望您是经过身份验证的用户。就我而言,我在本地计算机上运行tinyproxy,该计算机侦听端口8888,然后通过端口3128上的cntlm发送发往外界的任何内容。为此,MiniKube必须与我的mac(其主机)进行通信使用10.0.2.2地址,如下所示:
--docker-env HTTP_PROXY=http://10.0.2.2:8888 --docker-env HTTPS_PROXY=http://10.0.2.2:8888
我在minikube中的docker pull命令上也遇到了“ x509:由未知权限签名的证书”的问题,我使用--insecure-registry
参数解决了该问题。我的整个minikube启动命令如下所示,[最终]对我有用:
minikube start --docker-env HTTP_PROXY=http://10.0.2.2:8888 --docker-env HTTPS_PROXY=http://10.0.2.2:8888 --docker-env NO_PROXY=10.0.2.2,192.168.99.100 --insecure-registry="k8s.gcr.io"