Kubernetes中 獲取真實請求IP


本來以為獲取請求者的ip,直接從請求頭獲取“X-Forwarded-For”字段就可以了,沒想到,獲取的是一個K8S的容器地址。

原因:

負載均衡默認的externalTrafficPolicy配置為Cluster。此路由模式會隱藏真實客戶IP,但是能實現Pod級別的負載均衡。

解決辦法:

路由策略externalTrafficPolicy設置為Local;
kind: Service
metadata:
  name: example-service
spec:
  selector:
    app: example
  ports:
    - port: 8765
      targetPort: 9376
  externalTrafficPolicy: Local
  type: LoadBalancer

解決辦法的缺點:

無法實現Pod級別的負載均衡,只能在Node級別實現負載均衡。

參考:

從service的externalTrafficPolicy到podAntiAffinity
preserving-the-client-source-ip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM