2.6. AWS에서 수신 클러스터 트래픽 구성
OpenShift Container Platform에서는 클러스터에서 실행되는 서비스와 클러스터 외부에서 통신할 수 있습니다. 이 방법은 AWS(Amazon Web Services), 특히 NLB(Network Load Balancer) 또는 Classic Load Balancer(CLB)의 로드 밸런서를 사용합니다. 두 유형의 로드 밸런서 모두 클라이언트의 IP 주소를 노드로 전달할 수 있지만 CLB에는 OpenShift Container Platform에서 자동으로 활성화하는 프록시 프로토콜 지원이 필요합니다.
NLB를 사용하도록 Ingress 컨트롤러를 구성하는 방법은 다음 두 가지가 있습니다.
-
현재 CLB를 사용하고 있는 Ingress 컨트롤러를 강제로 교체합니다. 이렇게 하면
IngressController오브젝트가 삭제되고 새 DNS 레코드가 전파되고 NLB가 프로비저닝되는 동안 중단이 발생합니다. -
CLB를 사용하여 NLB를 사용하는 기존 Ingress 컨트롤러를 편집한 다음 NLB를 사용합니다. 이렇게 하면
IngressController오브젝트를 삭제하고 다시 생성할 필요 없이 로드 밸런서가 변경됩니다.
두 방법 모두 NLB에서 CLB로 전환하는 데 사용할 수 있습니다.
새 AWS 또는 기존 AWS 클러스터에서 이러한 로드 밸런서를 구성할 수 있습니다.
2.6.1. AWS에서 Classic Load Balancer 시간 초과 구성 링크 복사링크가 클립보드에 복사되었습니다!
OpenShift Container Platform에서 장기 실행 프로세스에 대한 연결이 중단되는 것을 방지하려면 특정 경로 또는 Ingress 컨트롤러에 대한 사용자 정의 시간 초과 기간을 구성합니다.
안정적인 네트워크 트래픽을 유지하려면 이러한 설정이 Amazon Web Services Classic Load Balancer(CLB) 기본 시간 제한 60초인지 확인합니다.
CLB의 시간 초과 기간이 경로 시간 초과 또는 Ingress 컨트롤러 시간 초과보다 짧은 경우 로드 밸런서에서 연결을 조기에 종료할 수 있습니다. 경로와 CLB의 시간 초과 기간을 모두 늘려 이 문제를 방지할 수 있습니다.
2.6.1.1. 경로 시간 초과 구성 링크 복사링크가 클립보드에 복사되었습니다!
SLA(Service Level Availability) 목적에 필요한 낮은 시간 초과 또는 백엔드가 느린 경우 높은 시간 초과가 필요한 서비스가 있는 경우 기존 경로에 대한 기본 시간 초과를 구성할 수 있습니다.
OpenShift Container Platform 클러스터 앞에 사용자 관리 외부 로드 밸런서를 구성한 경우 사용자 관리 외부 로드 밸런서의 시간 초과 값이 경로의 시간 초과 값보다 높습니다. 이 구성으로 인해 클러스터가 사용하는 네트워크를 통한 네트워크 정체 문제가 발생하지 않습니다.
사전 요구 사항
- 실행 중인 클러스터에 Ingress 컨트롤러를 배포했습니다.
프로세스
oc annotate명령을 사용하여 경로에 시간 초과를 추가합니다.$ oc annotate route <route_name> \ --overwrite haproxy.router.openshift.io/timeout=<timeout><time_unit><
timeout>: 지원되는 시간 단위는 마이크로초(us), 밀리초(ms), 초(s), 분(m), 시간(h) 또는 일(d)입니다.다음 예제는 이름이
myroute인 경로에서 2초의 시간 초과를 설정합니다.$ oc annotate route myroute --overwrite haproxy.router.openshift.io/timeout=2s
2.6.1.2. Classic Load Balancer 시간 제한 구성 링크 복사링크가 클립보드에 복사되었습니다!
Classic Load Balancer(CLB)의 기본 시간 초과를 구성하여 유휴 연결을 확장할 수 있습니다.
사전 요구 사항
- 실행 중인 클러스터에 배포된 Ingress 컨트롤러가 있어야 합니다.
프로세스
다음 명령을 실행하여 기본
ingresscontroller에 대해 Amazon Web Services 연결 유휴 시간 제한 시간을 5분으로 설정합니다.$ oc -n openshift-ingress-operator patch ingresscontroller/default \ --type=merge --patch='{"spec":{"endpointPublishingStrategy": \ {"type":"LoadBalancerService", "loadBalancer": \ {"scope":"External", "providerParameters":{"type":"AWS", "aws": \ {"type":"Classic", "classicLoadBalancer": \ {"connectionIdleTimeout":"5m"}}}}}}}'선택 사항: 다음 명령을 실행하여 시간 초과의 기본값을 복원합니다.
$ oc -n openshift-ingress-operator patch ingresscontroller/default \ --type=merge --patch='{"spec":{"endpointPublishingStrategy": \ {"loadBalancer":{"providerParameters":{"aws":{"classicLoadBalancer": \ {"connectionIdleTimeout":null}}}}}}}'참고현재 범위가 이미 설정되어 있지 않으면 연결 시간 초과 값을 변경할 때
scope필드를 지정해야 합니다.범위필드를 설정할 때 기본 시간 초과 값을 복원하는 경우 다시 수행할 필요가 없습니다.