您好,登錄后才能下訂單哦!
K8S中訪問pod如何獲取客戶端真實IP,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
保留客戶端源 IP
因為對于這個特性的代碼實現的關系,目標容器看到的源 IP 不是客戶端的源 IP。如需要保留客戶端源 IP, 可以配置一下這些服務的 spec 字段(GCE/GKE 環境中可支持):
service.spec.externalTrafficPolicy - 如果這個服務需要將外部流量路由到 本地節點或者集群級別的端點,那么需要指明該參數。存在兩種選項:”Cluster”(默認)和 “Local”。 “Cluster” 隱藏源 IP 地址,可能會導致第二跳(second hop)到其他節點,但是全局負載效果較好。”Local” 保留客戶端源 IP 地址,避免 LoadBalancer 和 NodePort 類型服務的第二跳,但是可能會導致負載不平衡。
service.spec.healthCheckNodePort - 定義服務的 healthCheckNodePort (數字端口號)。 如果沒有聲明,服務 API 后端會用分配的 nodePort 創建 healthCheckNodePort。如果客戶端 指定了 nodePort,則會使用用戶自定義值。這只有當類型被設置成 “LoadBalancer” 并且 externalTrafficPolicy 被設置成 “Local” 時,才會生效。
http://docs.kubernetes.org.cn/759.html
注意如果Serivce 是ClusterIP 類型,那么需要對Ingress-controller-slb 的service 增加:
externalTrafficPolicy:Local
關于K8S中訪問pod如何獲取客戶端真實IP問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。