VMware Integrated OpenStack 4.0은 LBaaS v2.0을 지원합니다. 기본적으로 LBaaS v2.0은 VMware Integrated OpenStack 설치 또는 업그레이드 프로세스를 완료한 후 사용하도록 설정합니다.
이 태스크 정보
이 태스크는 상태 모니터 생성을 포함하며 LBaaS 서버 인스턴스가 포함된 LBaaS 풀과 이 모니터를 연결합니다. 상태 모니터는 인스턴스가 지정된 프로토콜-포트에서 계속 실행되고 있는지 확인하는 Neutron 서비스입니다.
필수 조건
VMware Integrated OpenStack은 LBaaS v1.0을 지원하지 않습니다.
이 작업은 NSX를 사용하여 배포된 VMware Integrated OpenStack에만 적용됩니다.
프로시저
- SSH를 사용하여 VMware Integrated OpenStack Manager에 로그인합니다.
- 루트 사용자로 전환합니다.
sudo su -
- VMware Integrated OpenStack Manager에서 SSH를 사용하여 Neutron 노드에 로그인합니다.
- 루트 사용자로 전환합니다.
sudo su -
- 단독 라우터를 생성합니다.
neutron router-create --router_type=exclusive <router name>
- 새 라우터에 서브넷을 연결합니다.
neutron net-create <network name> neutron subnet-create <network name> <CIDR value> --name <subnet name> neutron router-interface-add <router name or id> <subnet name or id>
- 로드 밸런서를 생성합니다.
이 단계에는 로드 밸런서 생성, 수신기 생성 및 로드 밸런서 풀 생성이 포함됩니다.
- 로드 밸런싱 VIP 서브넷을 지정하여 로드 밸런서를 생성합니다.
neutron lbaas-loadbalancer-create --name LOAD_BALANCER_1_NAME <vip-subnet-id>
매개 변수
설명
name
새 로드 밸런서에 대한 이름을 제공합니다.
vip-subnet-id
새 로드 밸런서에 대한 VIP 서브넷을 지정합니다. 이 서브넷의 멤버만 풀에 추가할 수 있습니다.
- 새 로드 밸런서에 대한 수신기를 생성합니다.
neutron lbaas-listener-create \ --loadbalancer LOAD_BALANCER_1_NAME \ --protocol <protocol type> \ --protocol-port <protocol port> --name LISTENER_1_NAME
매개 변수
설명
loadbalancer
앞의 하위 단계에서 생성한 로드 밸런서를 지정합니다.
protocol type
수신기에 대한 프로토콜 유형을 지정합니다.
TCP
HTTP
HTTPS
protocol port
프로토콜 포트를 지정합니다.
name
새 수신기에 대한 이름을 제공합니다.
- LBaaS 풀을 생성합니다.
neutron lbaas-pool-create \ --lb-algorithm <load balancing method> \ --listener LISTENER_1_NAME \ --protocol <protocol type> \ --name LB_POOL_1
매개 변수
설명
lb-algorithm
로드 밸런싱 방법 지정:
IP_HASH
각 패킷의 소스 및 대상 IP 주소의 해시에 기반하여 서버를 선택합니다.
LEAST_CONN
서버에 이미 있는 연결 수에 기반하여 여러 서버에 클라이언트 요청을 분산합니다. 새 연결은 연결 수가 가장 적은 서버로 전송됩니다.
ROUND_ROBIN
각 서버에 할당된 가중치 순서대로 서버가 사용됩니다. 서버의 처리 시간이 고루 분산된 상태를 유지하는 경우 가장 유연하고 공정한 알고리즘입니다.
URI
물음표 앞부분에 있는 URI의 왼쪽 부분을 해시 처리한 후 실행 중인 서버의 총 가중치로 나눕니다. 결과에 따라 요청을 받을 서버가 지정되고, 모든 서버가 사용 가능한 상태를 유지하는 한 항상 요청이 동일한 서버에 전달되도록 보장합니다.
listener
앞의 하위 단계에서 생성한 수신기를 지정합니다.
protocol
풀의 멤버가 사용할 프로토콜을 지정합니다.
TCP
HTTP
HTTPS
name
새 풀에 대한 이름을 제공합니다.
- 로드 밸런싱 VIP 서브넷을 지정하여 로드 밸런서를 생성합니다.
- 서버 및 클라이언트에 대한 인스턴스를 생성합니다.
nova boot --image <image-uuid> --flavor <flavor> <server 1 name> nova boot --image <image-uuid> --flavor <flavor> <server 2 name> nova boot --image <image-uuid> --flavor 1 <client name>
- 생성한 LBaaS 풀에 서버 인스턴스를 추가합니다.
neutron lbaas-member-create \ --subnet <subnet-id> --address <server 1 IP> \ --protocol-port 80 <pool name> neutron lbaas-member-create \ --subnet <subnet-id> --address <server 2 IP> \ --protocol-port 80 <pool name>
- 상태 모니터를 설정합니다.
neutron lbaas-healthmonitor-create \ --delay DELAY_IN_SECONDS --type [HTTP | TCP] --max-retries NUMBER \ --timeout TIMEOUT_IN_SECONDS --pool LBAAS_POOL
매개 변수
설명
delay
멤버에게 프로브를 보내는 시간 간격(초)
type
미리 정의된 상태 모니터 유형 중 하나입니다. HTTP 또는 TCP를 지정합니다.
max-retries
멤버 상태를 비활성으로 변경하기 전에 허용되는 연결 실패 수입니다.
timeout
시간 초과되기 전에 연결이 설정될 때까지 모니터가 대기할 최대 시간(초)입니다.
참고:시간 제한 값은 지연 값보다 작아야 합니다.
pool
모니터링할 LBaaS 풀을 지정합니다.
- (선택 사항) 테스트 요청을 보내 LBaaS 구성을 검증합니다.
- 테스트 index.html 파일을 생성합니다.
- 같은 디렉토리에서 간단한 요청을 실행합니다.
# sudo python -m SimpleHTTPServer 80
- 클라이언트 인스턴스에 로그인합니다.
- wget 명령을 실행하여 풀에서 두 서버 간에 요청이 올바르게 로드 밸런싱되었는지 확인합니다.
# wget -O - http://<vip-ip>