728x90
목차
1. externalTrafficPolicy란?
externalTrafficPolicy는 외부에서 접근하는 트래픽이 클러스터 내부로 전달되는 방식을 결정하는 옵션이다. 이 설정은 주로 NodePort 또는 LoadBalancer 타입의 서비스에서 사용되며, 외부 트래픽을 클러스터의 각 노드에 어떻게 분산할지를 지정한다.
Local : 트래픽을 수신한 노드의 IP로 접근 가능
Cluster: 모든 노드에서 수신 가능하며, 서비스의 엔드포인트를 가진 모든 Pod로 분산
kubectl edit svc ingress-nginx-controller -n ingress-nginx
# 로컬로 설정하면 파드가 할당된 노드 IP로만 인그레스 접근이 가능하다.
externalTrafficPolicy: Local
# 클러스터로 설정하면 마스터노드~모든 워커노드 IP에서 인그레스 접근이 가능하다.
externalTrafficPolicy: Cluster
2. externalTrafficPolicy의 두 가지 설정 예시
2.1 externalTrafficPolicy: Local
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: default
spec:
type: LoadBalancer
externalTrafficPolicy: Local
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
Local 옵션을 선택하면, Pod가 실제로 할당된 노드에서만 트래픽을 수신할 수 있다. 이 설정은 클러스터 내 특정 노드에 할당된 Pod에서만 트래픽을 처리하도록 제한하고, 다음과 같은 특성이 있다:
트래픽 제한: 요청을 받은 노드에 해당 Pod가 할당되지 않은 경우 트래픽은 전달되지 않는다.
원본 IP 유지: 요청을 전달할 때 외부 클라이언트의 IP 주소가 그대로 유지된다.
로드 밸런서 비용 절감: 불필요한 로드 밸런서 비용을 줄일 수 있다.
2.2 externalTrafficPolicy: Cluster
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: default
spec:
type: LoadBalancer
externalTrafficPolicy: Cluster
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 8080
Cluster 옵션을 선택하면 모든 노드에서 외부 트래픽을 수신할 수 있다. 트래픽은 클러스터의 모든 노드에서 받아들이고, 각 노드는 트래픽을 해당 서비스의 Pod로 전달한다.
트래픽 분산 : 모든 노드에서 트래픽을 받아들여, 클러스터 전체에서 트래픽이 적절히 분산된다.
원본 IP 손실 : 트래픽이 클러스터 내부에서 라우팅될 때 원본 IP 주소가 손실될 수 있다.
유연한 확장성: 여러 노드에서 트래픽을 받아들이므로 확장성이 높다.
728x90
'최근 포스팅 TOP10' 카테고리의 다른 글
[쿠버네티스] kubectl 명령어 사용자 권한 설정 방법 (0) | 2025.01.08 |
---|---|
[쿠버네티스] Ubuntu 22.04 쿠버네티스 설치 방법 (0) | 2025.01.06 |
[쿠버네티스] ingress-nginx 설치 (0) | 2024.11.14 |
[머신러닝] 쿠버네티스 트리톤 서버에서 onnx API 호출 시 413 Request Entity Too Large 이슈 해결하기 (0) | 2024.10.02 |
[머신러닝] 쿠버네티스에서 pytorch 모델 Triton서버를 활용해서 서빙하기(model.pt) (0) | 2024.10.02 |