6.8.6. 내부 로드 밸런서를 사용하도록 Ingress 컨트롤러 구성

클라우드 플랫폼에서 Ingress 컨트롤러를 생성할 때 Ingress 컨트롤러는 기본적으로 퍼블릭 클라우드 로드 밸런서에 의해 게시됩니다. 관리자는 내부 클라우드 로드 밸런서를 사용하는 Ingress 컨트롤러를 생성할 수 있습니다.

주의

클라우드 공급자가 Microsoft Azure인 경우 노드를 가리키는 퍼블릭 로드 밸런서가 하나 이상 있어야 합니다. 그렇지 않으면 모든 노드의 인터넷 연결이 끊어집니다.

중요

IngressController오브젝트의 scope를 변경하려면, 해당 IngressController 오브젝트를 삭제한 후 다시 생성해야 합니다. CR(사용자 정의 리소스)을 생성한 후에는 .spec.endpointPublishingStrategy.loadBalancer.scope 매개변수를 변경할 수 없습니다.

그림 6.2. LoadBalancer 다이어그램

OpenShift Container Platform Ingress LoadBalancerService 끝점 게시 전략

앞의 그래픽에서는 OpenShift Container Platform Ingress LoadBalancerService 끝점 게시 전략과 관련된 다음 개념을 보여줍니다.

  • OpenShift Ingress 컨트롤러 로드 밸런서를 사용하여 클라우드 공급자 로드 밸런서를 사용하거나 내부적으로 로드 밸런싱을 로드할 수 있습니다.
  • 그래픽에 표시된 클러스터에 표시된 것처럼 로드 밸런서의 단일 IP 주소와 더 친숙한 포트(예: 8080 및 4200)를 사용할 수 있습니다.
  • 외부 로드 밸런서의 트래픽은 다운 노드 인스턴스에 표시된 대로 Pod에 전달되고 로드 밸런서에 의해 관리됩니다. 구현 세부 사항은 Kubernetes 서비스 설명서를 참조하십시오.

사전 요구 사항

  • OpenShift CLI(oc)를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 로그인합니다.

프로세스

  1. 다음 예제와 같이 <name>-ingress-controller.yam 파일에 IngressController CR(사용자 정의 리소스)을 생성합니다.

    apiVersion: operator.openshift.io/v1
    kind: IngressController
    metadata:
      namespace: openshift-ingress-operator
      name: <name> 1
    spec:
      domain: <domain> 2
      endpointPublishingStrategy:
        type: LoadBalancerService
        loadBalancer:
          scope: Internal 3
    1
    <name>IngressController 오브젝트의 이름으로 변경합니다.
    2
    컨트롤러가 게시한 애플리케이션의 domain을 지정합니다.
    3
    내부 로드 밸런서를 사용하려면 Internal 값을 지정합니다.
  2. 다음 명령을 실행하여 이전 단계에서 정의된 Ingress 컨트롤러를 생성합니다.

    $ oc create -f <name>-ingress-controller.yaml 1
    1
    <name>IngressController 오브젝트의 이름으로 변경합니다.
  3. 선택 사항: 다음 명령을 실행하여 Ingress 컨트롤러가 생성되었는지 확인합니다.

    $ oc --all-namespaces=true get ingresscontrollers