활성 컨트롤러 노드에서 명령줄 인터페이스 사용하여 LBaaS를 구성할 수 있습니다.

LBaaS 수신기는 HTTP, TCP 또는 종료된 HTTPS를 사용할 수 있습니다. 종료된 HTTPS 수신기는 들어오는 연결에 대해 TLS를 종료하고 이러한 수신기의 TLS 인증서와 키는 Barbican에 저장됩니다. 종료된 HTTPS 수신기를 생성하려면 클라우드 관리자에게 문의하여 프로젝트의 암호에 대한 액세스 권한을 barbican 사용자에게 부여하도록 ACL을 구성해야 하는지 여부를 확인하십시오.

사전 요구 사항

  • 네트워크에 공용 서브넷 및 라우터를 생성합니다. NSX Data Center for vSphere 배포의 경우 라우터 유형이 exclusive여야 합니다.

    참고:

    테넌트 서브넷에 로드 밸런서를 생성할 수 있지만 부동 IP 주소를 할당해야 합니다.

  • 하나 이상의 클라이언트와 둘 이상의 서버 인스턴스를 구성합니다.

프로시저

  1. OpenStack 관리 서버viouser로 로그인합니다.
  2. 컨트롤러 노드에 viouser로 로그인합니다.
  3. 사용자 계정에 대한 자격 증명 파일을 로드합니다.
    source user-credentials.rc
  4. 종료된 HTTPS 수신기를 생성하고 ACL을 구성해야 하는 경우에는 인증서, 키 및 TLS 컨테이너에 대한 액세스 권한을 barbican 사용자에게 부여합니다.
    openstack acl user add -u barbican-uuid object-name

    프로젝트의 인증서, 키 및 컨테이너마다 이 명령을 한 번씩 실행합니다.

    openstack user list 명령을 실행하면 barbican 사용자의 UUID를 찾을 수 있습니다. openstack secret list 명령을 실행하면 인증서, 키 및 컨테이너 이름을 찾을 수 있습니다.

  5. 로드 밸런서를 생성합니다.
    neutron lbaas-loadbalancer-create --name lb-name lb-subnet-id

    지정된 서브넷의 멤버만 LBaaS 풀에 추가할 수 있습니다.

  6. 새 로드 밸런서에 대한 수신기를 생성합니다.
    neutron lbaas-listener-create --loadbalancer lb-name --protocol {HTTP | TCP | TERMINATED_HTTPS} --protocol-port port-num --name listener-name [--default-tls-container=tls-container-uuid]

    TERMINATED_HTTPS를 프로토콜로 지정하는 경우에는 TLS 컨테이너의 ID도 제공해야 합니다.

  7. LBaaS 풀을 생성합니다.
    neutron lbaas-pool-create --lb-algorithm lb-method --listener listener-name --protocol {TCP | HTTP} --name pool-name

    --lb-algorithm 매개 변수는 다음 값을 수락합니다.

    인수

    설명

    LEAST_CONNECTIONS

    연결 수가 가장 적은 서버로 새 클라이언트 요청이 전송됩니다.

    ROUND_ROBIN

    각 서버에 할당된 가중치에 따라 순서대로 서버가 사용됩니다.

    SOURCE_IP

    동일한 소스 IP 주소에서 시작된 모든 연결이 동일한 풀 멤버에 의해 처리됩니다.

  8. 생성한 LBaaS 풀에 서버 인스턴스를 둘 이상 추가합니다.
    neutron lbaas-member-create --subnet lb-subnet-id --address server1-ip --protocol-port 80 pool-name
    neutron lbaas-member-create --subnet lb-subnet-id --address server2-ip --protocol-port 80 pool-name
  9. 상태 모니터를 설정합니다.
    neutron lbaas-healthmonitor-create --delay delay-seconds --type {HTTP | TCP | PING} --max-retries number --timeout timeout-seconds --pool pool-name

    매개 변수

    설명

    --delay

    멤버에게 프로브를 보내는 시간(초) 간격을 입력합니다.

    --type

    HTTP, TCP 또는 PING를 지정합니다.

    --max-retries

    멤버 상태를 INACTIVE로 변경하기 전에 허용되는 연결 실패 수를 입력합니다.

    --timeout

    시간 초과되기 전에 연결이 설정될 때까지 모니터가 대기할 시간(초)을 입력합니다.

    시간 제한 값은 지연 값보다 작아야 합니다.

    --pool

    생성한 LBaaS 풀을 지정합니다.

  10. 테넌트 서브넷에 로드 밸런서 생성한 경우에는 부동 IP 주소를 로드 밸런서와 연결합니다.
  11. (선택 사항) 테스트 요청을 보내 LBaaS 구성을 검증합니다.
    1. OpenStack 관리 서버viouser로 로그인합니다.
    2. 테스트 index.html 파일을 생성합니다.
    3. 동일한 디렉토리에서 웹 서버를 시작합니다.
      sudo python -m SimpleHTTPServer 80
    4. 클라이언트 인스턴스에 로그인합니다.
    5. wget 명령을 실행하고 풀에서 서버 간에 요청이 올바르게 로드 밸런싱되고 있는지 확인합니다.
      • TLS 없이 로드 밸런싱하려면 다음 명령을 실행합니다.

        wget -O - http://mgmt-server-ip
      • TLS를 사용하여 로드 밸런싱하려면 다음 명령을 실행합니다.

        wget -O - https://mgmt-server-ip