Merge "Removes deprecated lbaasv2 haproxy docs"
This commit is contained in:
commit
192d644df0
|
@ -3,7 +3,7 @@ Kubernetes services networking
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
Kuryr-Kubernetes default handler for handling Kubernetes `services`_ and
|
Kuryr-Kubernetes default handler for handling Kubernetes `services`_ and
|
||||||
endpoints uses the OpenStack Neutron `LBaaS API`_ in order to have each service
|
endpoints uses the OpenStack `Octavia API`_ in order to have each service
|
||||||
be implemented in the following way:
|
be implemented in the following way:
|
||||||
|
|
||||||
* **Service**: It is translated to a single **LoadBalancer** and as many
|
* **Service**: It is translated to a single **LoadBalancer** and as many
|
||||||
|
@ -21,59 +21,32 @@ be implemented in the following way:
|
||||||
corner are implemented in plain Kubernetes networking (top-right) and in
|
corner are implemented in plain Kubernetes networking (top-right) and in
|
||||||
Kuryr's default configuration (bottom)
|
Kuryr's default configuration (bottom)
|
||||||
|
|
||||||
If you are paying attention and are familiar with the `LBaaS API`_ you probably
|
If you are paying attention and are familiar with the `Octavia API`_ you
|
||||||
noticed that we have separate pools for each exposed port in a service. This is
|
probably noticed that we have separate pools for each exposed port in a
|
||||||
probably not optimal and we would probably benefit from keeping a single
|
service. This is probably not optimal and we would probably benefit from
|
||||||
Neutron pool that lists each of the per port listeners. Since `LBaaS API`_
|
keeping a single Neutron pool that lists each of the per port listeners.
|
||||||
doesn't support UDP load balancing, service exported UDP ports will be ignored.
|
|
||||||
|
|
||||||
When installing you can decide to use the legacy Neutron HAProxy driver for
|
Kuryr-Kubernetes uses OpenStack Octavia as the load balancing solution for
|
||||||
LBaaSv2 or install and configure OpenStack Octavia, which as of Pike implements
|
OpenStack and to provide connectivity to the Kubernetes Services.
|
||||||
the whole API without need of the neutron-lbaas package.
|
|
||||||
|
|
||||||
It is beyond the scope of this document to explain in detail the inner workings
|
It is beyond the scope of this document to explain in detail the inner
|
||||||
of these two possible Neutron LBaaSv2 backends thus, only a brief explanation
|
workings of Openstack Octavia thus, only a brief explanation will be offered.
|
||||||
will be offered on each.
|
|
||||||
|
|
||||||
|
|
||||||
Legacy Neutron HAProxy agent
|
|
||||||
----------------------------
|
|
||||||
|
|
||||||
The requirements for running Kuryr with the legacy Neutron HAProxy agent are
|
|
||||||
the following:
|
|
||||||
|
|
||||||
* Keystone
|
|
||||||
* Neutron
|
|
||||||
* Neutron-lbaasv2 agent
|
|
||||||
|
|
||||||
As you can see, the only addition from the minimal OpenStack deployment for
|
|
||||||
Kuryr is the Neutron lbaasv2 agent.
|
|
||||||
|
|
||||||
In order to use Neutron HAProxy as the Neutron LBaaSv2 implementation you
|
|
||||||
should not only install the neutron-lbaas agent but also place this snippet in
|
|
||||||
the *[service_providers]* section of neutron.conf in your network controller
|
|
||||||
node:
|
|
||||||
|
|
||||||
.. code-block:: ini
|
|
||||||
|
|
||||||
NEUTRON_LBAAS_SERVICE_PROVIDERV2="LOADBALANCERV2:Haproxy:neutron_lbaas.drivers.haproxy.plugin_driver.HaproxyOnHostPluginDriver:default"
|
|
||||||
|
|
||||||
When Kuryr sees a service and creates a load balancer, the HAProxy agent will
|
|
||||||
spawn a HAProxy process. The HAProxy will then configure the LoadBalancer as
|
|
||||||
listeners and pools are added. Thus you should take into consideration the
|
|
||||||
memory requirements that arise from having one HAProxy process per Kubernetes
|
|
||||||
Service.
|
|
||||||
|
|
||||||
|
|
||||||
Octavia
|
Octavia
|
||||||
-------
|
-------
|
||||||
|
|
||||||
OpenStack Octavia is a new project that provides advanced Load Balancing by
|
OpenStack Octavia is a project that provides advanced Load Balancing by using
|
||||||
using pre-existing OpenStack services. The OpenStack requirements that Octavia
|
pre-existing OpenStack services. The requirements for running Kuryr with
|
||||||
adds over the Neutron HAProxy agent are:
|
OpenStack Octavia are the following:
|
||||||
|
|
||||||
* Nova
|
* Nova
|
||||||
|
* Neutron
|
||||||
* Glance
|
* Glance
|
||||||
|
* Barbican (if TLS offloading functionality is enabled)
|
||||||
|
* Keystone
|
||||||
|
* Rabbit
|
||||||
|
* MySQL
|
||||||
|
|
||||||
You can find a good explanation about the involved steps to install Octavia in
|
You can find a good explanation about the involved steps to install Octavia in
|
||||||
the `Octavia installation docs`_.
|
the `Octavia installation docs`_.
|
||||||
|
@ -787,5 +760,5 @@ Troubleshooting
|
||||||
|
|
||||||
|
|
||||||
.. _services: https://kubernetes.io/docs/concepts/services-networking/service/
|
.. _services: https://kubernetes.io/docs/concepts/services-networking/service/
|
||||||
.. _LBaaS API: https://wiki.openstack.org/wiki/Neutron/LBaaS/API_2.0
|
.. _Octavia API: https://docs.openstack.org/api-ref/load-balancer/v2/
|
||||||
.. _Octavia installation docs: https://docs.openstack.org/octavia/latest/contributor/guides/dev-quick-start.html
|
.. _Octavia installation docs: https://docs.openstack.org/octavia/latest/contributor/guides/dev-quick-start.html
|
||||||
|
|
Loading…
Reference in New Issue