如何通过 VPN 或 HTTP/HTTPS 代理使用 minikube
minikube 需要通过 HTTP、HTTPS 和 DNS 协议访问互联网。
代理如果需要使用 HTTP 代理访问 Internet,则可能需要使用环境变量将代理连接信息传递给 minikube 和 Docker:
- HTTP_PROXY - 您的 HTTP 代理的 URL
- HTTPS_PROXY - HTTPS 代理的 URL
- NO_PROXY - 不应通过代理的主机的逗号分隔列表。
这里的 NO_PROXY 变量很重要:如果不设置它,minikube 可能无法访问 VM 内的资源。minikube 使用两个 IP 范围,不应通过代理:
- 192.168.59.0/24:由 minikube VM 使用。可通过以下方式为某些管理程序配置--host-only-cidr
- 192.168.39.0/24:由 minikube kvm2 驱动程序使用。
- 192.168.49.0/24:由 minikube docker 驱动程序的第一个集群使用。
- 10.96.0.0/12:由服务集群 IP 使用。可配置通过 --service-cluster-ip-range
一个重要的注意事项:如果非 Kubernetes 应用程序(例如 Firefox 或 Chrome)需要 NO_PROXY,您可能需要专门将 minikube IP 添加到逗号分隔的列表中,因为它们可能不理解 IP 范围(#3827)。
示例用法 macOS 和 Linuxexport HTTP_PROXY=http://export HTTPS_PROXY=https:// export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.39.0/24 minikube start
复制
要使导出的变量永久化,请考虑将声明添加到 ~/.bashrc 或存储用户设置的环境变量的任何位置。
视窗set HTTP_PROXY=http://set HTTPS_PROXY=https:// set NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.39.0/24 minikube start
复制
要永久设置这些环境变量,请考虑将它们添加到您的系统设置中或使用setx
故障排除 无法缓存 ISO… 连接被拒绝Unable to start VM: unable to cache ISO: https://storage.googleapis.com/minikube/iso/minikube.iso: failed to download: failed to download to temp file: download failed: 5 error(s) occurred: * Temporary download error: Get https://storage.googleapis.com/minikube/iso/minikube.iso: proxyconnect tcp: dial tcp: : connect: connection refused
复制
此错误表示HTTPS_PROXY 或HTTP_PROXY 定义的host:port 组合不正确,或者代理不可用。
无法拉图像…Client.Timeout 在等待标题时超出Unable to pull images, which may be OK: failed to pull image "k8s.gcr.io/kube-apiserver:v1.13.3": output: Error response from daemon: Get https://k8s.gcr.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
复制
此错误表示在 VM 中运行的容器运行时无法访问 Internet。验证您是否将适当的值传递给--docker-env HTTPS_PROXY。
x509:由未知机构签署的证书[ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-apiserver:v1.13.3: output: Error response from daemon: Get https://k8s.gcr.io/v2/: x509: certificate signed by unknown authority
复制
这是因为 minikube VM 卡在一个代理之后,该代理重写 HTTPS 响应以包含其自己的 TLS 证书。该解决方案是将代理证书安装到被复制到虚拟机在启动时的位置,以便可以进行验证。
向您的 IT 部门索取相应的 PEM 文件,并将其添加到:
~/.minikube/files/etc/ssl/certs
或者
~/.minikube/certs
然后运行minikube delete和minikube start。
下载二进制文件:proxyconnect tcp:tls:收到长度为 20527 的超大记录提供的值HTTPS_PROXY可能不正确。验证此值是否指向 HTTP 代理而不是 HTTPS 代理。
虚拟专用网minikube 需要从主机访问以下 IP 范围:
- 192.168.59.0/24:由 minikube VM 使用。可通过以下方式为某些管理程序配置--host-only-cidr
- 192.168.39.0/24:由 minikube kvm2 驱动程序使用。
- 10.96.0.0/12:由服务集群 IP 使用。可配置通过 --service-cluster-ip-range
不幸的是,许多 VPN 配置通过加密隧道将数据包路由到这些目的地,而不是允许数据包进入 minikube 虚拟机。
可能的解决方法- 如果您有访问权限,请在您的 VPN 软件中将上述 IP 范围列入白名单
- 在您的 VPN 软件中,选择类似于“使用 VPN 时允许本地 (LAN) 访问” (Cisco VPN 示例)的选项
- 您可能很幸运地为--host-only-cidr和--service-cluster-ip-range标志选择了替代值。
- 关闭 VPN
参考链接:https://minikube.sigs.k8s.io/docs/handbook/vpn_and_proxy/



