Turn up the Heat with LBaaS v2 Neela Shah, Senior Software Engineer, @neela_shah Mark Vanderwiel, Senior Software Engineer, @MarkRVanderwiel
Agenda Load Balancing as a Service V2 Heat Resources Horizon Dashboard DevStack How-To Heat Templates Considerations Questions Refs
Load Balancing!
Load Balancing as a Service (LBaaS) Version 1 Part of neutron base project Limited fixed design Deprecated in Liberty Version 2 Experimental in Kilo Stable in Liberty Heat Support added in Mitaka Separate neutron-lbaas project Pluggable driver design
LBaaS V2 Heat Resources LoadBalancer Listener Pool Member Pool Health Monitor Pool Listener
LBaaS V2 Heat Resources New resource namespace for V2 OS::Neutron::LBaaS:: No overlap, reuse or interact with V1 resources Template version 2016-04-08 New template constraints
LBaaS V2 Heat Resources OS::Neutron::LBaaS::LoadBalancer Directs traffic between pools of servers Has a Virtual IP address (VIP) Template constraint: neutron.lbaas.loadbalancer OS::Neutron::LBaaS::Listener Represents a listening endpoint for the VIP Has a protocol (TCP, HTTP, HTTPS, Terminated HTTP) Has a port Template constraint: neutron.lbaas.listener
LBaaS V2 Heat Resources OS::Neutron::LBaaS::Pool Represent a group of servers Defines a subnet on which servers reside Defines a load balancing algorithm ROUND_ROBIN LEAST_CONNECTIONS SOURCE_IP Template constraint: neutron.lbaas.pool OS::Neutron::LBaaS::PoolMember Represents a server as an IP address and port Not necessarily an OS::Nova::Server
LBaaS V2 Heat Resources OS::Neutron::LBaaS::HealthMonitor Monitors health of servers in a pool Has a type (Ping, TCP, HTTP, HTTPS) Has configurable HTTP(s) request methods Has configurable delay, timeout and retries
DevStack How-To for LBaaS V2 Use neutron-lbaas project devstack plugin enable_plugin neutron-lbaas https://git.openstack.org/openstack/neutron-lbaas ENABLED_SERVICES+=q-lbaasv2 Use Namespace service provider instead of Octavia NEUTRON_LBAAS_SERVICE_PROVIDERV2=LOADBALANCERV2:Haproxy:neutron_lbaas.driv ers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default [Optional] Use Barbican for HTTPS certificate support enable_plugin barbican https://git.openstack.org/openstack/barbican [Optional] Use neutron-lbaas-dashboard devstack plugin enable_plugin neutron-lbaas-dashboard https://git.openstack.org/openstack/neutron- lbaas-dashboard
Heat Template for LBaaS V2 Heat scenario example heat_integrationtests/scenario/test_autoscaling_lbv2.py Uses Heat::AutoScalingGroup Creates simple web servers Shows scale up/down for load balancer server pool heat-templates project example hot/lbaasv2/lb_group.yaml Use single template to help explain resource relationships Show all load balancer resources
Considerations LBaaS V2 Pluggable drivers Octavia OpenStack CLI Octavia, VMware, Brocade, Radware, A10 Networks, Kemp Technologies, NetScaler Octavia L7 – Context based routing Pool Sharing Active/Stand-By, Anti-Affinity Certificate Rotation APIs Cascade Delete, Get-Me-A-LB Future Active/Active Amphora Container support OpenStack CLI Started in Mitaka
Considerations Heat resource hierarchy Solution ANY time ANY resource under a LoadBalancer is added, updated, or deleted, the LoadBalancer goes into a PENDING_UPDATE state No further actions can occur while LoadBalancer is PENDING_UPDATE Heat wants to try to do things in parallel Only one action can happen at a time Solution Try, fail, wait Rinse, repeat “Better to ask forgiveness than permission”
Considerations Migration from V1 Coexistance with V1 Manual for Neutron objects Manual for Heat resources and templates Coexistance with V1 Nothing tested No recommendations at this time
Summary LBaaS V1 LBaaS V2 Going, going, gone! Nothing new happening here LBaaS V2 Ready to go Integrations with Heat and Horizon Multiple drivers New features coming, like L7 Plan ahead and well for transition
References Heat Resources LBaaS Related OpenStack projects http://docs.openstack.org/developer/heat/template_guide/openstack.html#ope nstack-resource-types LBaaS Related OpenStack projects neutron-lbaas, octavia, neutron-lbaas-dashboard Presentations http://www.slideshare.net/mestery/openstack-neutron-tutorial Starting on slide 56 https://www.openstack.org/summit/tokyo-2015/videos/presentation/load- balancing-as-a-service-liberty-and-beyond API Doc http://developer.openstack.org/api-ref-networking-v2-ext.html
Thank You