[英]expose Istio-gateway on port 80
我正在運行一個帶有 1 個主節點和 3 個工作節點的裸機 Kubernetes 集群。 我在內部部署了一堆服務,將 Istio 作為入口網關。
一切正常,因為我可以使用入口網關 NodePort 從外部訪問我的服務。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
istio-ingressgateway LoadBalancer 10.106.9.2 <pending> 15021:32402/TCP,80:31106/TCP,443:31791/TCP 2d23h
istiod ClusterIP 10.107.220.130 <none> 15010/TCP,15012/TCP,443/TCP,15014/TCP 2d23h
在我們的例子中是端口31106
。
問題是,我不希望我的客戶在端口 31106 上訪問我的服務。這對用戶不友好。 那么有沒有辦法將端口 80 暴露給外部?
換句話說,我希望他們能夠輸入http://example.com/而不是輸入http://example.com:31106/
任何解決方案都可以提供幫助。
基於官方文檔:
如果設置了
EXTERNAL-IP
值,則您的環境具有可用於入口網關的外部負載均衡器。 如果EXTERNAL-IP
值為<none>
(或永久為<pending>
),則您的環境不會為入口網關提供外部負載均衡器。 在這種情況下,您可以使用服務的節點端口訪問網關。
這與David Maze在評論中所寫的一致:
LoadBalancer 類型的服務將創建該負載均衡器,但前提是 Kubernetes 知道如何; 也許查找
metallb
來實現它。 除非服務被刪除和重新創建,否則NodePort
端口號將保持穩定,在這種情況下,這意味着批量卸載並重新安裝 Istio。
在您的情況下,您需要使用NodePort
訪問網關。 然后就可以配置istio了。 一切都在這個文檔中一步一步地描述。 需要選擇NodePort
對應的指令,然后根據集群提供者設置ingress IP。 您還可以在文檔中找到示例 yaml 文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.