수신 요청의 소스 IP 주소를 기반으로 로드 밸런서 트래픽을 허용하고 로컬 포드 트래픽만 허용하도록 LoadBalancer 유형의 Kubernetes 서비스를 구성할 수 있습니다.

최소 요구 사항

다음과 같은 최소 요구 사항을 충족하는 Tanzu Kubernetes 클러스터에서 LoadBalancer 유형의 Kubernetes 서비스와 함께 externalTrafficPolicyLoadBalancerSourceRanges 기능을 사용할 수 있습니다.
구성 요소 최소 요구 사항 추가 정보
vCenter Server 및 ESXi vSphere 7.0 업데이트 2 릴리스 정보를 참조하십시오.
감독자 클러스터 v1.19.1+vmware.2-vsc0.0.8-17610687 vSphere 네임스페이스 업데이트를 수행하여 감독자 클러스터 업데이트의 내용을 참조하십시오.
로드 밸런서

NSX-T Data Center v3.1

vSphere with Tanzu에 대한 네트워킹의 내용을 참조하십시오.
Tanzu Kubernetes 릴리스 최신 Tanzu Kubernetes 릴리스 중 하나입니다. 업데이트를 위한 Tanzu Kubernetes 클러스터 호환성 확인의 내용을 참조하십시오.

로컬 트래픽 정책 및 소스 IP 범위에 대한 지원 정보

NSX-T Data Center 네트워킹을 사용하는 경우에는 외부 트래픽 정책 및 로드 밸런서 소스 IP 범위를 허용하도록 LoadBalancer 유형의 Kubernetes 서비스를 구성할 수 있습니다. externalTrafficPolicy 기능을 사용하면 포드 트래픽을 로컬 노드로 제한할 수 있습니다. LoadBalancerSourceRange 기능을 사용하면 허용하거나 차단할 소스 IP 주소를 지정할 수 있습니다.

로컬 트래픽 전용 서비스 예

다음 로드 밸런서 서비스 규격은 externalTrafficPolicy 매개 변수가 Local로 설정된 로드 밸런서 인스턴스를 구성합니다. 그 결과 포드 트래픽은 로컬 포드가 실행 중인 노드로만 라우팅됩니다.

apiVersion: v1
kind: Service
metadata:
  name: local-only
spec:
  selector:
    app: testApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  externalTrafficPolicy: Local
  type: LoadBalancer

이 기능은 NSX-T 상태 점검 모니터를 사용하여 작동합니다. NSX-T 관리 측면에서 이 기능의 내부 작업을 알고 있어야 합니다.

NSX-T 상태 점검 모니터는 LoadBalancer 유형의 서비스에 해당하는 서버 풀에 대해 kube-proxy가 할당한 Kubernetes 상태 점검 NodePort를 감시합니다. NSX-T 상태 점검 모니터는 HTTP GET 요청을 대상 상태 점검 NodePort로 전송합니다. 노드의 kube-proxy는 실행 중인 로컬 포드가 없는 경우 HTTP 상태 코드 500을 반환합니다. 로컬 포드가 없는 노드는 NSX-T에 의해 DOWN으로 표시되고 NSX Manager에 표시됩니다. 트래픽은 로컬 포드가 실행 중인 노드로만 라우팅됩니다.

소스 IP 범위를 기반으로 트래픽을 허용하는 서비스 예

다음 로드 밸런서 서비스 규격은 허용되는 소스 IP CIDR 어레이로 loadBalancerSourceRanges 매개 변수를 구성합니다. 이러한 소스 IP 범위에서 발생하는 인바운드 요청만 허용되며, 다른 모든 인바운드 트래픽은 삭제됩니다.

apiVersion: v1
kind: Service
metadata:
  name: allow-based-on-source-IPs
spec:
  selector:
    app: testApp
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  loadBalancerSourceRanges:
  - 10.0.0.0/24
  - 10.1.0.0/24
  type: LoadBalancer