11.2. 이그레스 서비스 배포
LoadBalancer 서비스 뒤에 있는 Pod의 송신 트래픽을 관리하기 위해 송신 서비스를 배포할 수 있습니다.
다음 예제에서는 LoadBalancer 서비스의 수신 IP 주소와 동일한 소스 IP 주소를 갖도록 송신 트래픽을 구성합니다.
사전 요구 사항
-
OpenShift CLI(
oc)를 설치합니다. -
cluster-admin권한이 있는 사용자로 로그인합니다. -
MetalLB
BGPPeer리소스를 구성했습니다.
프로세스
서비스에 필요한 IP로
IPAddressPoolCR을 만듭니다.다음 예시와 같은 내용을 포함하는
ip-addr-pool.yaml과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 IP 주소 풀에 대한 구성을 적용합니다.
oc apply -f ip-addr-pool.yaml
$ oc apply -f ip-addr-pool.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
서비스및EgressServiceCR을 만듭니다.다음 예시와 같은 내용을 포함하는
service-egress-service.yaml과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
LoadBalancer서비스는 MetalLB가example-poolIP 주소 풀에서 할당한 IP 주소를 사용합니다.- 2
- 이 예제에서는
LoadBalancerIP값을 사용하여LoadBalancer서비스의 수신 IP 주소를 송신 트래픽의 소스 IP 주소로 지정합니다. - 3
LoadBalancerIP값을 지정하면 단일 노드가LoadBalancer서비스의 트래픽을 처리합니다. 이 예에서는작업자레이블이 있는 노드만 트래픽을 처리하도록 선택할 수 있습니다. 노드가 선택되면 OVN-Kubernetes는 다음 형식으로 노드에 egress-service.k8s.ovn.org/<svc-namespace>-<svc-name>: ""레이블을 지정합니다.
참고sourceIPBy: "LoadBalancerIP"설정을 사용하는 경우BGPAdvertisement사용자 정의 리소스(CR)에서 로드 밸런서 노드를 지정해야 합니다.다음 명령을 실행하여 서비스 및 송신 서비스에 대한 구성을 적용합니다.
oc apply -f service-egress-service.yaml
$ oc apply -f service-egress-service.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
서비스를 광고하려면
BGPAdvertisementCR을 만드세요.다음 예시와 같은 내용을 포함하는
service-bgp-advertisement.yaml과 같은 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 이 예에서
EgressServiceCR은 부하 분산 장치 서비스 IP 주소를 사용하도록 송신 트래픽의 소스 IP 주소를 구성합니다. 따라서 포드에서 발생한 트래픽에 대해 동일한 반환 경로를 사용하도록 반환 트래픽에 대한 로드 밸런서 노드를 지정해야 합니다.
검증
다음 명령을 실행하여 MetalLB 서비스 뒤에서 실행되는 포드의 애플리케이션 엔드포인트에 액세스할 수 있는지 확인하세요.
curl <external_ip_address>:<port_number>
$ curl <external_ip_address>:<port_number>1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 애플리케이션 엔드포인트에 맞게 외부 IP 주소와 포트 번호를 업데이트합니다.
-
LoadBalancer서비스의 수신 IP 주소를 송신 트래픽의 소스 IP 주소로 지정한 경우tcpdump와 같은 도구를 사용하여 외부 클라이언트에서 수신된 패킷을 분석하여 이 구성을 확인합니다.