Added devstack-with-lbaas-v2 installation documentation
This document explains the steps to configure Load-Balancer in kilo. Change-Id: Ic8c2f3cca80e331b7275f689051c07d863d918ea Depends-On: I64a94aeeabe6357b5ea7796e34c9306c55c9ae67
This commit is contained in:
parent
a2be5e3a2d
commit
7c57306c33
99
doc/source/guides/devstack-with-lbaas-v2.rst
Normal file
99
doc/source/guides/devstack-with-lbaas-v2.rst
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
Configure Load-Balancer in Kilo
|
||||||
|
=================================
|
||||||
|
|
||||||
|
The Kilo release of OpenStack will support Version 2 of the neutron load balancer. Until now, using OpenStack `LBaaS V2 <http://docs.openstack.org/api/openstack-network/2.0/content/lbaas_ext.html>`_ has required a good understanding of neutron and LBaaS architecture and several manual steps.
|
||||||
|
|
||||||
|
|
||||||
|
Phase 1: Create DevStack + 2 nova instances
|
||||||
|
--------------------------------------------
|
||||||
|
|
||||||
|
First, set up a vm of your choice with at least 8 GB RAM and 16 GB disk space, make sure it is updated. Install git and any other developer tools you find useful.
|
||||||
|
|
||||||
|
Install devstack
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
git clone https://git.openstack.org/openstack-dev/devstack
|
||||||
|
cd devstack
|
||||||
|
|
||||||
|
|
||||||
|
Edit your `local.conf` to look like
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
[[local|localrc]]
|
||||||
|
# Load the external LBaaS plugin.
|
||||||
|
enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas
|
||||||
|
|
||||||
|
# ===== BEGIN localrc =====
|
||||||
|
DATABASE_PASSWORD=password
|
||||||
|
ADMIN_PASSWORD=password
|
||||||
|
SERVICE_PASSWORD=password
|
||||||
|
SERVICE_TOKEN=password
|
||||||
|
RABBIT_PASSWORD=password
|
||||||
|
# Enable Logging
|
||||||
|
LOGFILE=$DEST/logs/stack.sh.log
|
||||||
|
VERBOSE=True
|
||||||
|
LOG_COLOR=True
|
||||||
|
SCREEN_LOGDIR=$DEST/logs
|
||||||
|
# Pre-requisite
|
||||||
|
ENABLED_SERVICES=rabbit,mysql,key
|
||||||
|
# Horizon
|
||||||
|
ENABLED_SERVICES+=,horizon
|
||||||
|
# Nova
|
||||||
|
ENABLED_SERVICES+=,n-api,n-crt,n-obj,n-cpu,n-cond,n-sch
|
||||||
|
IMAGE_URLS+=",https://launchpad.net/cirros/trunk/0.3.0/+download/cirros-0.3.0-x86_64-disk.img"
|
||||||
|
# Glance
|
||||||
|
ENABLED_SERVICES+=,g-api,g-reg
|
||||||
|
# Neutron
|
||||||
|
ENABLED_SERVICES+=,q-svc,q-agt,q-dhcp,q-l3,q-meta
|
||||||
|
# Enable LBaaS V2
|
||||||
|
ENABLED_SERVICES+=,q-lbaasv2
|
||||||
|
# Cinder
|
||||||
|
ENABLED_SERVICES+=,c-api,c-vol,c-sch
|
||||||
|
# Tempest
|
||||||
|
ENABLED_SERVICES+=,tempest
|
||||||
|
# ===== END localrc =====
|
||||||
|
|
||||||
|
Run stack.sh and do some sanity checks
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
./stack.sh
|
||||||
|
. ./openrc
|
||||||
|
|
||||||
|
neutron net-list # should show public and private networks
|
||||||
|
|
||||||
|
Create two nova instances that we can use as test http servers:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
#create nova instances on private network
|
||||||
|
nova boot --image $(nova image-list | awk '/ cirros-0.3.0-x86_64-disk / {print $2}') --flavor 1 --nic net-id=$(neutron net-list | awk '/ private / {print $2}') node1
|
||||||
|
nova boot --image $(nova image-list | awk '/ cirros-0.3.0-x86_64-disk / {print $2}') --flavor 1 --nic net-id=$(neutron net-list | awk '/ private / {print $2}') node2
|
||||||
|
nova list # should show the nova instances just created
|
||||||
|
|
||||||
|
#add secgroup rule to allow ssh etc..
|
||||||
|
neutron security-group-rule-create default --protocol icmp
|
||||||
|
neutron security-group-rule-create default --protocol tcp --port-range-min 22 --port-range-max 22
|
||||||
|
neutron security-group-rule-create default --protocol tcp --port-range-min 80 --port-range-max 80
|
||||||
|
|
||||||
|
Set up a simple web server on each of these instances. ssh into each instance (username 'cirros', password 'cubswin:)') and run
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
MYIP=$(ifconfig eth0|grep 'inet addr'|awk -F: '{print $2}'| awk '{print $1}')
|
||||||
|
while true; do echo -e "HTTP/1.0 200 OK\r\n\r\nWelcome to $MYIP" | sudo nc -l -p 80 ; done&
|
||||||
|
|
||||||
|
Phase 2: Create your load balancers
|
||||||
|
------------------------------------
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
neutron lbaas-loadbalancer-create --name lb1 private-subnet
|
||||||
|
neutron lbaas-listener-create --loadbalancer lb1 --protocol HTTP --protocol-port 80 --name listener1
|
||||||
|
neutron lbaas-pool-create --lb-algorithm ROUND_ROBIN --listener listener1 --protocol HTTP --name pool1
|
||||||
|
neutron lbaas-member-create --subnet private-subnet --address 10.0.0.3 --protocol-port 80 pool1
|
||||||
|
neutron lbaas-member-create --subnet private-subnet --address 10.0.0.5 --protocol-port 80 pool1
|
||||||
|
|
||||||
|
Please note here that the "10.0.0.3" and "10.0.0.5" in the above commands are the IPs of the nodes (in my test run-thru, they were actually 10.2 and 10.4), and the address of the created LB will be reported as "vip_address" from the lbaas-loadbalancer-create, and a quick test of that LB is "curl that-lb-ip", which should alternate between showing the IPs of the two nodes.
|
@ -68,6 +68,7 @@ Walk through various setups used by stackers
|
|||||||
guides/neutron
|
guides/neutron
|
||||||
guides/devstack-with-nested-kvm
|
guides/devstack-with-nested-kvm
|
||||||
guides/nova
|
guides/nova
|
||||||
|
guides/devstack-with-lbaas-v2
|
||||||
|
|
||||||
All-In-One Single VM
|
All-In-One Single VM
|
||||||
--------------------
|
--------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user