k8s ingress는 클라이언트 클라이언트의 실제 IP를 얻습니다.

배경

Kubernetes에서 클라이언트의 실제 IP 주소를 얻는 것은 일반적인 요구 사항입니다. 이는 로드 밸런싱 아키텍처에서 원래 요청의 소스 IP 주소가 로드 밸런서의 IP 주소로 대체되기 때문입니다.

클라이언트의 실제 IP를 얻기 위한 요구 배경에는 다음 사항이 포함됩니다.

  1. 보안: 클라이언트 IP를 기반으로 한 액세스 제어 및 인증 권한 부여는 시스템 보안을 향상시킬 수 있습니다.
  2. 로깅 및 감사: 실제 IP를 로깅하면 모니터링, 문제 해결 및 규정 준수 감사에 도움이 됩니다.
  3. 통계 및 분석: 사용자 출신 지역 및 행동을 이해하면 비즈니스 의사 결정 및 리소스 할당 최적화에 유용한 데이터 지원을 제공할 수 있습니다.
  4. 사기 방지 및 위험 평가: 실제 IP를 기반으로 하는 사기 탐지, 위험 평가 또는 지리적 위치 관련 기능은 정확성과 신뢰성을 향상시킬 수 있습니다.
    Kubernetes Ingress 및 관련 구성 요소를 올바르게 구성하면 원래 요청의 실제 IP가 백엔드 서비스에 올바르게 전달되어 위의 요구 사항을 충족하고 보다 정확하고 안전하며 안정적인 서비스를 제공할 수 있습니다.

구성 방법

Alibaba Cloud ack 클러스터에 설치된 ingress-nginx를 예로 들어 보겠습니다.

방법 1 명령줄 추가 방법

1. ingress-nginx-controller configmap 구성 파일 이름 가져오기

[root@K8SMASTER01 ~]# kubectl get -n kube-system deployment ack-ingress-nginx-controller -oyaml|grep configmap
        - --configmap=$(POD_NAMESPACE)/ack-ingress-nginx-controller

2. ingress-nginx-controller의 configmap 구성 파일 편집

아래와 같이 레벨을 추가하기 위해 구성 파일에 매개변수를 추가합니다.

compute-full-forwarded-for = true
전달된 헤더 = X-Forwarded-For
use-forwarded-headers =true

kubectl edit -n kube-system cm ack-ingress-nginx-controller

여기에 이미지 설명 삽입
저장하고 종료하면 포드를 다시 시작하지 않고 즉시 적용됩니다.

방법 2 콘솔 추가

1. ingress-nginx-controller의 yaml 파일을 봅니다.
여기에 이미지 설명 삽입
2. k8s 클러스터 콘솔 구성 항목 옵션으로 이동합니다
여기에 이미지 설명 삽입
. 3. 다음 구성을 추가하고 저장을 클릭합니다.
여기에 이미지 설명 삽입

추천

출처blog.csdn.net/Habo_/article/details/132106530