오픈스택에서 로드밸런서 생성하는거 기록해보기~
간단히 말해서 들어오는 트래픽을 여러 서버로 나눠주는 역할
오픈스택에서는 Octavia컴포넌트가 로드밸런서 기능을 제공한다.
오픈스택의 로드밸런서는 단일 리소스가 아니라 여러 구성 요소가 유기적으로 연결되어 동작한다.
하나의 트래픽이 로드밸런서를 거쳐 백엔드까지 도달하기 위해 거치는 경로
[Floating IP]
↓
[Load Balancer]
↓
[Listener]
↓
[Pool]
↙ ↘
[Member 1] [Member 2]
오픈스택에서 제공하는 로드밸런서 서비스 구성요소
Neutron의 확장 형태였던 LBaaS가 독립 프로젝트로 분리되어, 더 유연하고 강력한 로드밸런싱 기능 제공
POST /v2.0/lbaas/loadbalancers
Content-Type: application/json
X-Auth-Token: <token>
{
"loadbalancer": {
"name": "my-lb",
"vip_subnet_id": "<SUBNET_ID>",
"provider": "octavia"
}
}
-> 응답 : 로드밸런서 id, vip_address, provisioning_status
POST /v2.0/lbaas/listeners
X-Auth-Token: <token>
{
"listener": {
"name": "http-listener",
"protocol": "HTTP",
"protocol_port": 80,
"loadbalancer_id": "<LB_ID>"
}
}
POST /v2.0/lbaas/pools
X-Auth-Token: <token>
{
"pool": {
"name": "web-pool",
"protocol": "HTTP",
"lb_algorithm": "ROUND_ROBIN",
"listener_id": "<LISTENER_ID>"
}
}
POST /v2.0/lbaas/pools/<POOL_ID>/members
X-Auth-Token: <token>
{
"member": {
"address": "<INSTANCE_IP>",
"protocol_port": 80,
"subnet_id": "<SUBNET_ID>"
}
}