簡體   English   中英

在端口 80 上公開 Istio 網關

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM