2.5.4. 로드 밸런서 서비스 생성
들어오는 트래픽을 효율적으로 배포하고 OpenShift Container Platform에서 애플리케이션의 고가용성을 보장하려면 로드 밸런서 서비스를 생성합니다.
사전 요구 사항
- 노출하려는 프로젝트와 서비스가 존재하는지 확인합니다.
- 클라우드 공급자는 로드 밸런서를 지원합니다.
프로세스
- OpenShift Container Platform 4에 로그인합니다.
노출하려는 서비스가 있는 프로젝트를 로드합니다.
명령 예
$ oc project project1컨트롤 플레인 노드에서 텍스트 파일을 열고 다음 텍스트를 파일에 붙여넣습니다. 필요에 따라 파일을 편집합니다.
로드 밸런서 구성 파일 샘플
apiVersion: v1 kind: Service metadata: name: egress-2 spec: ports: - name: db port: 3306 loadBalancerIP: loadBalancerSourceRanges: - 10.0.0.0/8 - 192.168.0.0/16 type: LoadBalancer selector: name: mysql다음과 같습니다.
metadata.name- 로드 밸런서 서비스에 대한 설명이 포함된 이름을 지정합니다.
ports.port- 노출하려는 서비스가 수신 대기 중인 것과 동일한 포트를 지정합니다.
loadBalancerSourceRanges- 로드 밸런서를 통한 트래픽을 제한하는 특정 IP 주소 목록을 지정합니다. 클라우드 공급자가 기능을 지원하지 않는 경우 매개변수는 무시됩니다.
type-
Loadbalancer를 유형으로 지정합니다. selector.name서비스 이름을 지정합니다.
참고로드 밸런서를 통한 트래픽을 특정 IP 주소로 제한하려면
spec.endpointPublishingStrategy.loadBalancer.allowedSourceRangesIngress Controller 매개변수를 사용합니다.loadBalancerSourceRanges매개변수를 설정하지 마십시오.
- 파일을 저장하고 종료합니다.
다음 명령을 실행하여 서비스를 생성합니다.
$ oc create -f <file_name>예를 들면 다음과 같습니다.
$ oc create -f mysql-lb.yaml새 서비스를 보려면 다음 명령을 실행합니다.
$ 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 주소가 자동으로 할당됩니다.
마스터에서
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)]>