minikube配置使用代理
如何通過 VPN 或 HTTP/HTTPS 代理使用 minikube
minikube 需要通過 HTTP、HTTPS 和 DNS 協(xié)議訪問互聯(lián)網(wǎng)。
代理
如果需要使用 HTTP 代理訪問 Internet,則可能需要使用環(huán)境變量將代理連接信息傳遞給 minikube 和 Docker:
- HTTP_PROXY - 您的 HTTP 代理的 URL
- HTTPS_PROXY - HTTPS 代理的 URL
- NO_PROXY - 不應(yīng)通過代理的主機(jī)的逗號分隔列表。
這里的 NO_PROXY 變量很重要:如果不設(shè)置它,minikube 可能無法訪問 VM 內(nèi)的資源。minikube 使用兩個(gè) IP 范圍,不應(yīng)通過代理:
- 192.168.59.0/24:由 minikube VM 使用。可通過以下方式為某些管理程序配置--host-only-cidr
- 192.168.39.0/24:由 minikube kvm2 驅(qū)動(dòng)程序使用。
- 192.168.49.0/24:由 minikube docker 驅(qū)動(dòng)程序的第一個(gè)集群使用。
- 10.96.0.0/12:由服務(wù)集群 IP 使用。可配置通過 --service-cluster-ip-range
一個(gè)重要的注意事項(xiàng):如果非 Kubernetes 應(yīng)用程序(例如 Firefox 或 Chrome)需要 NO_PROXY,您可能需要專門將 minikube IP 添加到逗號分隔的列表中,因?yàn)樗鼈兛赡懿焕斫?IP 范圍(#3827)。
示例用法
macOS 和 Linux
export HTTP_PROXY=http://<proxy hostname:port> export HTTPS_PROXY=https://<proxy hostname:port> export NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.39.0/24minikube start復(fù)制
要使導(dǎo)出的變量永久化,請考慮將聲明添加到 ~/.bashrc 或存儲(chǔ)用戶設(shè)置的環(huán)境變量的任何位置。
視窗
set HTTP_PROXY=http://<proxy hostname:port> set HTTPS_PROXY=https://<proxy hostname:port> set NO_PROXY=localhost,127.0.0.1,10.96.0.0/12,192.168.59.0/24,192.168.39.0/24minikube start復(fù)制
要永久設(shè)置這些環(huán)境變量,請考慮將它們添加到您的系統(tǒng)設(shè)置中或使用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 <host>:<port>: connect: connection refused復(fù)制
此錯(cuò)誤表示HTTPS_PROXY 或HTTP_PROXY 定義的host:port 組合不正確,或者代理不可用。
無法拉圖像…Client.Timeout 在等待標(biāo)題時(shí)超出
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)復(fù)制
此錯(cuò)誤表示在 VM 中運(yùn)行的容器運(yùn)行時(shí)無法訪問 Internet。驗(yàn)證您是否將適當(dāng)?shù)闹祩鬟f給--docker-env HTTPS_PROXY。
x509:由未知機(jī)構(gòu)簽署的證書
[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復(fù)制
這是因?yàn)?minikube VM 卡在一個(gè)代理之后,該代理重寫 HTTPS 響應(yīng)以包含其自己的 TLS 證書。該解決方案是將代理證書安裝到被復(fù)制到虛擬機(jī)在啟動(dòng)時(shí)的位置,以便可以進(jìn)行驗(yàn)證。
向您的 IT 部門索取相應(yīng)的 PEM 文件,并將其添加到:
~/.minikube/files/etc/ssl/certs或者
~/.minikube/certs然后運(yùn)行minikube delete和minikube start。
下載二進(jìn)制文件:proxyconnect tcp:tls:收到長度為 20527 的超大記錄
提供的值HTTPS_PROXY可能不正確。驗(yàn)證此值是否指向 HTTP 代理而不是 HTTPS 代理。
虛擬專用網(wǎng)
minikube 需要從主機(jī)訪問以下 IP 范圍:
- 192.168.59.0/24:由 minikube VM 使用。可通過以下方式為某些管理程序配置--host-only-cidr
- 192.168.39.0/24:由 minikube kvm2 驅(qū)動(dòng)程序使用。
- 10.96.0.0/12:由服務(wù)集群 IP 使用。可配置通過 --service-cluster-ip-range
不幸的是,許多 VPN 配置通過加密隧道將數(shù)據(jù)包路由到這些目的地,而不是允許數(shù)據(jù)包進(jìn)入 minikube 虛擬機(jī)。
可能的解決方法
參考鏈接:https://minikube.sigs.k8s.io/docs/handbook/vpn_and_proxy/
總結(jié)
以上是生活随笔為你收集整理的minikube配置使用代理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 本地kubectl客户端连接远程K8S集
- 下一篇: k8s serviceaccount p