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에만 적용됩니다.

프로시저

  1. SSH를 사용하여 VMware Integrated OpenStack Manager에 로그인합니다.
  2. 루트 사용자로 전환합니다.
    sudo su -
  3. VMware Integrated OpenStack Manager에서 SSH를 사용하여 Neutron 노드에 로그인합니다.
  4. 루트 사용자로 전환합니다.
    sudo su -
  5. 단독 라우터를 생성합니다.
    neutron router-create --router_type=exclusive <router name>
  6. 새 라우터에 서브넷을 연결합니다.
    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>
  7. 로드 밸런서를 생성합니다.

    이 단계에는 로드 밸런서 생성, 수신기 생성 및 로드 밸런서 풀 생성이 포함됩니다.

    1. 로드 밸런싱 VIP 서브넷을 지정하여 로드 밸런서를 생성합니다.
      neutron lbaas-loadbalancer-create --name LOAD_BALANCER_1_NAME <vip-subnet-id>

      매개 변수

      설명

      name

      새 로드 밸런서에 대한 이름을 제공합니다.

      vip-subnet-id

      새 로드 밸런서에 대한 VIP 서브넷을 지정합니다. 이 서브넷의 멤버만 풀에 추가할 수 있습니다.

    2. 새 로드 밸런서에 대한 수신기를 생성합니다.
      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

      새 수신기에 대한 이름을 제공합니다.

    3. 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

      새 풀에 대한 이름을 제공합니다.

  8. 서버 및 클라이언트에 대한 인스턴스를 생성합니다.
    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>
  9. 생성한 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>
  10. 상태 모니터를 설정합니다.
    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 풀을 지정합니다.

  11. (선택 사항) 테스트 요청을 보내 LBaaS 구성을 검증합니다.
    1. 테스트 index.html 파일을 생성합니다.
    2. 같은 디렉토리에서 간단한 요청을 실행합니다.
      # sudo python -m SimpleHTTPServer 80
    3. 클라이언트 인스턴스에 로그인합니다.
    4. wget 명령을 실행하여 풀에서 두 서버 간에 요청이 올바르게 로드 밸런싱되었는지 확인합니다.
       # wget -O - http://<vip-ip>