網關訪問保留源IP
更新時間 2023-12-05 15:11:37
最近更新時間: 2023-12-05 15:11:37
分享文章
本節主要介紹網關訪問保留源IP
操作場景
服務通過網關訪問時,默認情況下,目標容器中看到的不是客戶端的源IP,如果需要保留源IP,請參考本節指導操作。
配置方法
請在CCE控制臺“服務發現”頁面,istio-system命名空間下,更新服務所關聯的網關服務,將服務親和改成“節點級別”。前提是已開啟ELB的獲取客戶端IP功能(當前為默認開啟)。
externalTrafficPolicy:表示此Service是否希望將外部流量路由到節點本地或集群范圍的端點。有兩個可用選項:Cluster(默認)和Local。Cluster隱藏了客戶端IP,可能導致第二跳到另一個節點,但具有良好的整體負載分布。Local保留客戶端源IP并避免LoadBalancer和NodePort類型服務的第二跳,但存在潛在的不均衡流量傳播風險。
驗證方式
結合httpbin鏡像在“x-forward-for”字段中可以看到源IP,httpbin是一個HTTP Request & Response Service,可以向他發送請求,他將會按照指定的規則將請求返回。httpbin鏡像可在SWR中搜索。使用httpbin鏡像進行驗證時請確保集群已開通網格。
- 登錄ASM應用服務網格控制臺,選擇一個可用的測試網格并單擊進入。
- 選擇左側“網格配置”查看其關聯的集群。
- 單擊集群名稱進入集群詳情頁,單擊對應集群右上角第三個圖標“工作負載”進入“工作負載”頁簽。
- 配置工作負載的信息。
- 單擊右下角“確定”完成服務創建。
- 單擊右下角“創建工作負載”完成工作負載創建。
- 在集群詳情頁選擇左側“服務發現”頁簽,可在服務列表中查看到所創建的httpbin服務。
- 返回ASM應用服務網格,選擇左側“服務管理”頁簽,在服務管理中可查看到httpbin的配置診斷顯示為異常。
- 單擊此服務配置診斷中的“處理”按鈕,按照彈出“配置診斷”頁面對應的修復指導進行修復。
- 選擇左側“網關管理”頁簽,單擊右上角“添加網關”,在彈出“添加網關”頁面輸入配置信息。
- 單擊“確定”完成網關添加。
- 選擇左側“服務管理”頁簽,可以在“訪問地址”查看到所創建路由的外部訪問地址。
- 單擊之前添加路由時設置映射的外部訪問地址,可以在“x-forward-for”字段中查看網關獲取的IP為容器段IP。
- 返回集群詳情頁,選擇左側導航欄“服務發現”,更改服務所關聯的網關服務的配置。方法如下:
- 下拉上方“命名空間”列表選擇“istio-system”。
- 展開服務后方“更多”選項,單擊“更新”,在彈出“更新服務”頁面將“服務親和”更改為“節點級別”,單擊“確定”。
- 返回13中訪問的外部地址并刷新,若設置之后“x-forward-for”字段中顯示的網關獲取IP的結果為本機源IP,則完成驗證。