개발/Kubernetes
ISTIO 환경에서 Pod가 Client IP를 가져올 수 없을 때
피클s
2022. 8. 8. 11:00
목차
1. 환경
Master Node : EKS
Plugin : ISTIO 1.14.2
2. 현상
Server 컨테이너에서 Request의 Header로부터 Client의 IP주소를 기록하고 싶었으나 127.0.0.6 과 같은 내부 IP만 기록되었습니다.
3. 원인
ISTIO 환경에서는 Pod에 출입하는 네트워크를 ISTIO가 관리합니다.
이때 X-Forward-For와 같은 헤더를 ISTIO가 덮어씌우기 때문에 이와같은 현상이 일어났습니다.
4. 해결방법
Pod의 annotations에 "sidecar.istio.io/interceptionMode: TPROXY"를 추가해주면 됩니다.
예시)
apiVersion: apps/v1
kind: Deployment
metadata:
name: server-deploy
spec:
selector:
matchLabels:
app: server
template:
metadata:
labels:
app: server
annotations:
sidecar.istio.io/interceptionMode: TPROXY
spec:
containers:
- name: server
image: nginx