-
Notifications
You must be signed in to change notification settings - Fork 48
Network Load Balancer and Driver API
ByoungSeob Kim edited this page May 12, 2022
·
34 revisions
- CB-Spider Network Load Balancer(NLB) Specification V0.1
- Version 0.1: Driver 개발용
- 사용자는 VPC 내의 VM을 향한 입력 스트림 부하 분산(Load Balancing)을 관리하기 위해서
- 특정 VPC에 소속되는 Network Load Balancer(NLB)를 생성 및 구성할 수 있다.
- NLB는 Public 타입과 Internal 타입을 선택하여 생성할 수 있다.
- Public Type(default): 외부 인터넷을 통한 사용자의 클라이언트 스트림에 대한 부하 분산 지원
- Internal Type: 내부 VM 간의 스트림에 대한 부하 분산 지원
- V0.1: Public Type 제공 중심으로 추진
- NLB는 Region 범위와 Global 범위의 운영을 선택하여 생성할 수 있다.
- Regional NLB(default): 단일 Region에서 운영되는 NLB
- Global NLB: 멀티 Region에서 운영되는 NLB
- v0.1: Regional NLB 제공 중심으로 추진
[CB-Spider Network Load Balancer Overview]
[CB-Spider Network Load Balancer Components]
- NLB는 그림과 같이 프론트엔드(Frontend) 영역과 백엔드(Backend) 영역으로 구분되며, 주요 구성 요소는 다음과 같다.
-
- Client의 입력 스트림을 수신할 사용자를 위한 서비스 IP이며,
- 하나의 NLB는 하나의 서비스 IP를 포함하며, 자동 생성 및 관리된다.
- ※ 서비스 IP의 DNS Name 지원: 추후 고려
- 서비스 리스너는 Client의 요청 및 입력 스트림을 수신하여 백엔드 영역의 서비스 그룹으로 전달한다.
- 선택 가능한 프로토콜은 TCP 및 UDP이며, 1-65535 범위의 값으로 서비스 포트 설정이 가능하다.
- 하나의 NLB는 복수 개의 서비스 리스너 추가가 가능하며,
- 동일한 NLB의 리스너는 동일한 서비스 그룹으로 라우팅이 가능하다.
-
- 서비스 그룹은 동일한 서비스를 제공하는 VM들의 집합이며, 서비스 VM은 추가 삭제가 가능하다.
- 선택 가능한 프로토콜은 TCP, UDP, HTTP 및 HTTPS이며,
- 서비스 그룹은 하나의 전용 서비스 포트를 설정할 수 있다.
- 그룹 내의 서비스 VM들은 동일한 포트 번호를 통해서 서비스 제공이 가능하다.
- 하나의 NLB는 하나의 서비스 그룹만을 포함한다.
- 하나의 서비스 그룹은 하나의 헬스 체크기를 포함한다.
- 선택 가능한 프로토콜은 TCP, HTTP 및 HTTPS이며,
- VM의 건강 상태를 체크하기 위한 VM의 서비스 포트를 활용하거나
- 별도의 헬스 체크 전용 포트를 활용하도록 설정할 수 있다.
- 각 VM의 서비스 포트 및 헬스 체크용 포트는 사용자에 의해 사전에 준비되어야 한다.
- 헬스 체크기는 상태 체크 주기 및 타임 아웃 등을 설정할 수 있으며,
- 수집된 서비스 VM들의 헬스 상태 정보를 제공한다.
- 지원 여부 등 추후 고려
-
[CB-Spider Network Load Balancer Operation Flow]
- NLB 주요 동작 흐름은 다음과 같다.
- ① Client -> Frontend
- Client는 TCP 또는 UDP 프로토콜 기반으로 Frontend Service IP 및 Service Listener 포트를 통해서 서비스 접근을 요청한다.
- ② Frontend -> Backend
- Service Listener에 의해 수신된 사용자 요청은 TCP, UDP, HTTP 또는 HTTPS 기반으로 Service Group 포트로 라우팅 된다.
- ③ Service VM Scheduling
- Service Group에 포함된 Service VM들 중 Healthy 상태의 VM으로 Client 요청 및 입력 스트림을 라우팅 한다.
- ※ Health Checking
- 헬스 체크기는 주기적으로 서비스 그룹에 포함된 VM 서비스의 Health 상태를 파악하고 제공한다.
- ① Client -> Frontend
-
Source Tree
-
Driver API Spec
-
Install & Start Guide
-
Features & Usage
-
- AdminWeb Tool Guide
- CLI Tool Guide
- REST API Guide
- NLI Guide
-
Design
-
Developer Guide
-
Cloud Driver Developer Guide
- Cloud Driver Developer Guide-WIP
- VM SSH Key Development Guide-WIP
- VM User Development Guide
- What is the CSP SDK API Version of drivers
- Region Zone Info and Driver API
- Price Info and Driver API
- (StartVM TerminateVM) API Call Counts and Waiting
- StartVM and TerminateVM Main Flow of drivers
- VM Root Disk Configuration Guide
- Security Group Rules and Driver API
- Network Load Balancer and Driver API
- VM Snapshot, MyImage and Disk Overview
- Kubernetes and Driver API(PMKS, K8S)
- Tag and Cloud Driver API
- AnyCall API Extension Guide
-
Test Reports
- v0.2.8-for-espresso-release
- v0.3.0-espresso-release
- Azure:Terminating VM
- cb-user@VM: ssh login, sudo run
- v0.3.14 test for SG Source
- v0.4.0-cafemocha-release
- Test via REST API Gateway
- Test Reports of v0.4.11 (IID2 initial Version)
- Test Reports of v0.4.12 (Register & Unregister existing Resources)
- Test Reports for v0.6.0 Release
- How to ...
- How to Use Alibaba ECS i1.* Instance Types
- How to provision GPU VMs
- How to Resolve the 'Failed to Connect to Database' Error
- How to test CB Spider with Mock Driver
- How to install CB Spider on WSL2 under 공유기/사설망
- How to install CB Spider on macOS
- How to run CB Spider Container on macOS
- How to install OpenStack on a VM for CB Spider Testing
- How to get Azure available Regions
- How to profile memory usage in Golang
- Deprecated:How to install protoc and plugins
- [For Cloud-Migrator]