[英]Istio ingress gateway on wsl2 docker desktop
我正在嘗試使用 wsl2 和 docker 桌面在我的本地運行 bookinfo 示例。 我在嘗試通過網關訪問 productpage 服務時遇到問題,因為連接被拒絕。 我不確定我是否錯過了什么。 這是我在互聯網上搜索了很多之后所做的
Name: bookinfo-gateway
Namespace: default
Labels: <none>
Annotations: <none>
API Version: networking.istio.io/v1beta1
Kind: Gateway
Metadata:
Creation Timestamp: 2021-06-06T20:47:18Z
Generation: 1
Managed Fields:
API Version: networking.istio.io/v1alpha3
Fields Type: FieldsV1
fieldsV1:
f:metadata:
f:annotations:
.:
f:kubectl.kubernetes.io/last-applied-configuration:
f:spec:
.:
f:selector:
.:
f:istio:
f:servers:
Manager: kubectl-client-side-apply
Operation: Update
Time: 2021-06-06T20:47:18Z
Resource Version: 2053564
Self Link: /apis/networking.istio.io/v1beta1/namespaces/default/gateways/bookinfo-gateway
UID: aa390a1d-2e34-4599-a1ec-50ad7aa9bdc6
Spec:
Selector:
Istio: ingressgateway
Servers:
Hosts:
*
Port:
Name: http
Number: 80
Protocol: HTTP
Events: <none>
istio-ingressgateway 可以在 80 上通過 localhost 暴露給外部(不確定如何在 istio 安裝期間對其進行配置),據我所知 bookinfo-gateway kubectl get svc istio-ingressgateway -n istio 將使用它-系統
按照說明中的確定入口 IP 和端口部分。
我的 INGRESS_HOST=127.0.0.1 和 INGRESS_PORT 是 80
* Trying 127.0.0.1:80...
* TCP_NODELAY set
* connect to 127.0.0.1 port 80 failed: Connection refused
* Failed to connect to 127.0.0.1 port 80: Connection refused
* Closing connection 0
在瀏覽器上嘗試這個http://127.0.0.1/productpage ,返回 404。這個 404 是否意味着網關有點啟動但虛擬服務不起作用?
進一步的問題是否相關。 我有點困惑 wsl2 現在是如何工作的。 看起來 windows 瀏覽器上的 localhost 和 wsl2 終端不是一回事,盡管我知道從 windows 到 wsl2 服務器有某種轉發(我可以從 /etc/resolv.conf.906E69BA52B8B8 獲取它的 ZA12A3079E14CED46E69BA52B8.1AZ 如果相同,為什么一個返回連接被拒絕,另一個返回 404
在 windows 上,我嘗試禁用 IIS 或在端口 80 上運行的任何東西(net stop http)。 不知何故,我仍然可以看到一些東西正在監聽端口 80
netstat -aon | findstr :80
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 4
tasklist /svc /FI "PID eq 4"
Image Name PID Services
========================= ======== ============================================
System 4 N/A
我想知道這是否是導致第 7 點差異的原因? 由於 windows 在端口 80 上的另一台 http 服務器上運行?
我知道這問了很多問題。 相信很多剛接觸 istio 和 wsl2 的人可能會有類似的疑問。 希望這對其他人也有幫助。 請指教。
WSL2 本身似乎存在問題,可能與在 WSL2 中運行的本地站點無法在瀏覽器中訪問 #5298 相關聯。
您可以通過發出來解決這個問題
ip addr show
在您的 WSL 發行版中,並將127.0.0.1
/ localhost
替換為eth0
地址。 在我的情況下,它是172.21.29.254
- 所以 URL 是http://172.21.29.254/productpage
這種解決方法對我有用。
我設法讓這個工作:這就是我所做的。 Shell 進入發行版(我的是 Ubuntu 20.04 LTS)
跑:
sudo apt-get -y install socat
sudo apt update
sudo apt upgrade
exit
以上將添加 socat(我在查看 istio 日志時遇到錯誤 - 連接被拒絕)並將發行版更新為最新更新(並升級它們)
現在你必須運行一個端口轉發才能托管 localhost: 來訪問 istio 網關:
kubectl port-forward svc/istio-ingressgateway 8080:80 -n istio-system
如果您已經在使用 8080,只需將其從命令中刪除,只需使用:80 並且端口轉發將 select 一個空閑端口。
現在 go 到
http://localhost:8080/productpage
您應該點擊頁面和端口轉發應該 output
Handling connection for 8080
希望對您有所幫助... 好消息是現在我不必使用 Hyper-V 或其他集群安裝程序,如 minikube/microk8s 並使用 docker 桌面中的內置 kubernetes 和...我也在做什么。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.