Cấu hình Proxy Protocol cho Istio Ingress
Nếu bạn truy cập ứng dụng qua Istio gateway trên Managed - FPT Kubernetes Engine và cần public IP thật của end user, cấu hình Proxy Protocol như sau.
Bật Proxy Protocol
-
Thêm annotation
loadbalancer.fptcloud.com/proxy-protocol: "true"vào cấu hình service istio-ingressgateway. -
Apply 1 EnvoyFilter trong namespace
istio-system:apiVersion: networking.istio.io/v1alpha3kind: EnvoyFiltermetadata:name: proxy-protocolnamespace: istio-systemspec:configPatches:- applyTo: LISTENERpatch:operation: MERGEvalue:listener_filters:- name: envoy.filters.listener.proxy_protocoltyped_config:'@type': type.googleapis.com/envoy.extensions.filters.listener.proxy_protocol.v3.ProxyProtocolworkloadSelector:labels:istio: [lable-istio-gateway]
Với cấu hình này, log của pod istio-ingressgateway sẽ hiển thị đúng public IP nguồn của end user truy cập ứng dụng qua gateway.
ghi chú
Hướng dẫn này áp dụng cho Istio open source phiên bản 1.22 trở về trước.