17.4.5. 로드 밸런서 서비스 생성

다음 절차에 따라 로드 밸런서 서비스를 생성합니다.

사전 요구 사항

  • 노출하려는 프로젝트와 서비스가 존재하는지 확인합니다.

프로세스

로드 밸런서 서비스를 생성하려면 다음을 수행합니다.

  1. OpenShift Container Platform 4에 로그인합니다.
  2. 노출하려는 서비스가 있는 프로젝트를 로드합니다.

    $ oc project project1
  3. 필요한 경우 컨트롤 플레인 노드 (마스터 노드라고도 함)에서 텍스트 파일을 열고 다음 텍스트를 붙여넣어 파일을 편집합니다.

    로드 밸런서 구성 파일 샘플

    apiVersion: v1
    kind: Service
    metadata:
      name: egress-2 1
    spec:
      ports:
      - name: db
        port: 3306 2
      loadBalancerIP:
      loadBalancerSourceRanges: 3
      - 10.0.0.0/8
      - 192.168.0.0/16
      type: LoadBalancer 4
      selector:
        name: mysql 5

    1
    로드 밸런서 서비스를 설명하는 이름을 입력합니다.
    2
    노출하려는 서비스가 수신 대기 중인 포트와 동일한 포트를 입력합니다.
    3
    로드 밸런서를 통한 트래픽을 제한하려면 특정 IP 주소 목록을 입력합니다. cloud-provider가 이 기능을 지원하지 않는 경우 이 필드는 무시됩니다.
    4
    유형으로 Loadbalancer를 입력합니다.
    5
    서비스 이름을 입력합니다.
    참고

    로드 밸런서를 통한 트래픽을 특정 IP 주소로 제한하려면 loadBalancerSourceRanges 필드를 설정하지 않고 service.beta.kubernetes.io/load-balancer-source-ranges 주석을 사용하는 것이 좋습니다. 주석을 사용하면 향후 릴리스에서 구현될 OpenShift API로 더 쉽게 마이그레이션할 수 있습니다.

  4. 파일을 저장하고 종료합니다.
  5. 다음 명령을 실행하여 서비스를 생성합니다.

    $ oc create -f <file-name>

    예를 들면 다음과 같습니다.

    $ oc create -f mysql-lb.yaml
  6. 새 서비스를 보려면 다음 명령을 실행합니다.

    $ oc get svc

    출력 예

    NAME       TYPE           CLUSTER-IP      EXTERNAL-IP                             PORT(S)          AGE
    egress-2   LoadBalancer   172.30.22.226   ad42f5d8b303045-487804948.example.com   3306:30357/TCP   15m

    활성화된 클라우드 공급자가 있는 경우 서비스에 외부 IP 주소가 자동으로 할당됩니다.

  7. 마스터에서 cURL과 같은 도구를 사용하여 공개 IP 주소로 서비스에 도달할 수 있는지 확인합니다.

    $ curl <public-ip>:<port>

    예를 들면 다음과 같습니다.

    $ curl 172.29.121.74:3306

    이 섹션의 예제에서는 클라이언트 애플리케이션이 필요한 MySQL 서비스를 사용합니다. 패킷이 잘못됨이라는 메시지가 포함된 문자열이 표시되면 서비스에 연결된 것입니다.

    MySQL 클라이언트가 있는 경우 표준 CLI 명령으로 로그인하십시오.

    $ mysql -h 172.30.131.89 -u admin -p

    출력 예

    Enter password:
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    
    MySQL [(none)]>