본문 바로가기
K8S

[Kubernetes] externalTrafficPolicy와 internalTrafficPolicy

by Rainbound-IT 2024. 12. 21.
반응형

externalTrafficPolicy와 internalTrafficPolicy는 Kubernetes에서 서비스(Service) 리소스를 정의할 때 사용되는 두 가지 중요한 설정입니다. 이들은 트래픽 라우팅 방식을 지정하여 클러스터 외부와 내부 간의 네트워크 흐름을 어떻게 처리할지를 결정합니다.

1. externalTrafficPolicy

externalTrafficPolicy는 클러스터 외부에서 유입되는 트래픽을 처리하는 방법을 정의합니다. 이 설정은 LoadBalancerNodePort 서비스 유형에 대해 사용됩니다.

  • Cluster (기본값):
    • 트래픽이 클러스터의 모든 노드에 라우팅됩니다.
    • 로드밸런서가 들어오는 트래픽을 여러 파드로 분배할 때 클러스터 내 모든 노드에서 파드로 전달되는 방식입니다. 이 경우, 클라이언트의 원본 IP 주소는 로드밸런서가 선택한 노드의 IP로 변경됩니다.
    • 원본 IP가 변경되므로, 클라이언트의 IP 주소를 로깅하거나 추적하는 데 문제가 생길 수 있습니다.
  • Local:
    • 트래픽은 로드밸런서가 라우팅할 수 있는 로컬 노드로만 전달됩니다. 즉, 트래픽은 파드가 실제로 실행 중인 노드로만 라우팅됩니다.
    • 클라이언트의 원본 IP 주소를 그대로 유지할 수 있어, 원본 IP가 필요한 경우 유용합니다.
    • 그러나 클러스터 내에 적절한 노드가 없으면 트래픽이 전달되지 않습니다.

2. internalTrafficPolicy

internalTrafficPolicy는 Kubernetes 1.24 이상에서 도입된 기능으로, 클러스터 내에서 내부 트래픽을 어떻게 처리할지 정의합니다. 이는 LoadBalancer 서비스 유형에 대해서만 적용됩니다.

  • Cluster (기본값):
    • 트래픽이 클러스터 내의 모든 노드에서 서비스로 라우팅됩니다.
    • 클러스터 내에서 서비스의 엔드포인트가 여러 노드에 분산되어 트래픽을 라우팅합니다.
  • Local:
    • 트래픽은 로컬 노드로만 라우팅됩니다. 즉, 클러스터 내의 특정 노드에서만 트래픽이 서비스 파드로 전달됩니다.
    • 이 설정은 파드가 실제로 실행 중인 노드로만 트래픽을 제한하려는 경우 유용합니다.

요약

  • externalTrafficPolicy: 외부에서 들어오는 트래픽의 라우팅 방식을 설정합니다. Cluster는 클러스터의 모든 노드로, Local은 로컬 노드로만 라우팅합니다.
  • internalTrafficPolicy: 클러스터 내에서 내부 트래픽이 어떻게 라우팅될지 설정합니다. Cluster는 모든 노드로, Local은 로컬 노드로만 트래픽을 라우팅합니다. externalTrafficPolicy와 internalTrafficPolicy
반응형

댓글