8.9.7. 내부 로드 밸런서를 사용하도록 Ingress 컨트롤러 구성
클라우드 플랫폼에서 Ingress 컨트롤러를 생성할 때 Ingress 컨트롤러는 기본적으로 퍼블릭 클라우드 로드 밸런서에 의해 게시됩니다. 관리자는 내부 클라우드 로드 밸런서를 사용하는 Ingress 컨트롤러를 생성할 수 있습니다.
클라우드 공급자가 Microsoft Azure인 경우 노드를 가리키는 퍼블릭 로드 밸런서가 하나 이상 있어야 합니다. 그렇지 않으면 모든 노드의 인터넷 연결이 끊어집니다.
IngressController 의 범위를 변경하려면 CR(사용자 정의 리소스)을 생성한 후 .spec.endpointPublishingStrategy.loadBalancer.scope 매개변수를 변경할 수 있습니다.
그림 8.1. LoadBalancer 다이어그램
이전 그림에서는 OpenShift Container Platform Ingress LoadBalancerService 끝점 게시 전략과 관련된 다음 개념을 보여줍니다.
- 클라우드 공급자 로드 밸런서를 사용하거나 내부적으로 OpenShift Ingress 컨트롤러 로드 밸런서를 사용하여 외부에서 부하를 분산할 수 있습니다.
- 그래픽에 표시된 클러스터에 표시된 대로 로드 밸런서의 단일 IP 주소와 8080 및 4200과 같은 더 친숙한 포트를 사용할 수 있습니다.
- 외부 로드 밸런서의 트래픽은 Pod에서 전달되고 다운 노드의 인스턴스에 표시된 대로 로드 밸런서에 의해 관리됩니다. 구현 세부 사항은 Kubernetes 서비스 설명서를 참조하십시오.
사전 요구 사항
-
OpenShift CLI(
oc)를 설치합니다. -
cluster-admin권한이 있는 사용자로 로그인합니다.
프로세스
다음 예제와 같이
<name>-ingress-controller.yam파일에IngressControllerCR(사용자 정의 리소스)을 생성합니다.apiVersion: operator.openshift.io/v1 kind: IngressController metadata: namespace: openshift-ingress-operator name: <name>1 spec: domain: <domain>2 endpointPublishingStrategy: type: LoadBalancerService loadBalancer: scope: Internal3 다음 명령을 실행하여 이전 단계에서 정의된 Ingress 컨트롤러를 생성합니다.
$ oc create -f <name>-ingress-controller.yaml1 - 1
<name>을IngressController오브젝트의 이름으로 변경합니다.
선택 사항: Ingress 컨트롤러가 생성되었는지 확인하려면 다음 명령을 실행합니다.
$ oc --all-namespaces=true get ingresscontrollers