19.3. RHOSP Octavia를 사용하여 수신 트래픽 스케일링
Octavia 로드 밸런서를 사용하여 Kuryr를 사용하는 클러스터에서 Ingress 컨트롤러를 스케일링할 수 있습니다.
사전 요구 사항
- OpenShift Container Platform 클러스터는 Kuryr을 사용합니다.
- RHOSP 배포에서 Octavia를 사용할 수 있습니다.
프로세스
현재 내부 라우터 서비스를 복사하려면 명령줄에서 다음을 입력합니다.
$ oc -n openshift-ingress get svc router-internal-default -o yaml > external_router.yaml
파일
external_router.yaml
에서metadata.name
및spec.type
의 값을LoadBalancer
로 변경합니다.라우터 파일 예
apiVersion: v1 kind: Service metadata: labels: ingresscontroller.operator.openshift.io/owning-ingresscontroller: default name: router-external-default 1 namespace: openshift-ingress spec: ports: - name: http port: 80 protocol: TCP targetPort: http - name: https port: 443 protocol: TCP targetPort: https - name: metrics port: 1936 protocol: TCP targetPort: 1936 selector: ingresscontroller.operator.openshift.io/deployment-ingresscontroller: default sessionAffinity: None type: LoadBalancer 2
로드 밸런싱에 적합하지 않은 타임 스탬프 및 기타 정보를 삭제할 수 있습니다.
명령줄에서
external_router.yaml
파일의 서비스를 생성합니다.$ oc apply -f external_router.yaml
서비스의 외부 IP 주소가 로드 밸런서와 연결된 항목과 동일한지 확인합니다.
명령줄에서 서비스의 외부 IP 주소를 검색합니다.
$ oc -n openshift-ingress get svc
출력 예
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE router-external-default LoadBalancer 172.30.235.33 10.46.22.161 80:30112/TCP,443:32359/TCP,1936:30317/TCP 3m38s router-internal-default ClusterIP 172.30.115.123 <none> 80/TCP,443/TCP,1936/TCP 22h
로드 밸런서의 IP 주소를 검색합니다.
$ openstack loadbalancer list | grep router-external
출력 예
| 21bf6afe-b498-4a16-a958-3229e83c002c | openshift-ingress/router-external-default | 66f3816acf1b431691b8d132cc9d793c | 172.30.235.33 | ACTIVE | octavia |
이전 단계에서 검색한 주소가 유동 IP 목록에서 서로 연결되어 있는지 확인합니다.
$ openstack floating ip list | grep 172.30.235.33
출력 예
| e2f80e97-8266-4b69-8636-e58bacf1879e | 10.46.22.161 | 172.30.235.33 | 655e7122-806a-4e0a-a104-220c6e17bda6 | a565e55a-99e7-4d15-b4df-f9d7ee8c9deb | 66f3816acf1b431691b8d132cc9d793c |
이제 EXTERNAL-IP
값을 새 Ingress 주소로 사용할 수 있습니다.
Kuryr가 Octavia Amphora 드라이버를 사용하는 경우 모든 트래픽은 단일 Amphora VM(가상 머신)을 통해 라우팅됩니다.
병목 현상을 완화할 수 있는 추가 로드 밸런서를 생성하기 위해 이 절차를 반복할 수 있습니다.