Add docs on how to deploy OpenStack with OpenDaylight
Added design description and detailed instructions on how to deploy OpenStack with OpenDaylight SDN for networking using Fuel CCP. Depends-On: I0125075440d788437672b1980473e8a5ecffd29e Change-Id: I9103f79d27d4018e23a75a9c757f6014a1af8ad9
This commit is contained in:
parent
35b7e1f5a7
commit
41a45e5a9d
|
@ -30,6 +30,7 @@ Advanced topics
|
||||||
ceph
|
ceph
|
||||||
ceph_cluster
|
ceph_cluster
|
||||||
using_calico_instead_of_ovs
|
using_calico_instead_of_ovs
|
||||||
|
using_odl_instead_of_ovs
|
||||||
ironic
|
ironic
|
||||||
known_issues
|
known_issues
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,141 @@
|
||||||
|
.. _using_odl_instead_of_ovs:
|
||||||
|
|
||||||
|
==========================================
|
||||||
|
Using OpenDaylight instead of Open vSwitch
|
||||||
|
==========================================
|
||||||
|
|
||||||
|
This guide describes how to deploy and run OpenStack environment with
|
||||||
|
OpenDaylight ML2 Neutron plugin instead of the reference OpenVSwitch ML2 on top
|
||||||
|
of Kubernetes cluster using fuel-ccp.
|
||||||
|
|
||||||
|
Introduction
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
OpenDaylight (ODL) is a modular Open SDN platform for networks of any size and
|
||||||
|
scale. OpenStack can use OpenDaylight as its network management provider
|
||||||
|
through the Modular Layer 2 (ML2) north-bound plug-in. OpenDaylight manages
|
||||||
|
the network flows for the OpenStack compute nodes via the OVSDB south-bound
|
||||||
|
plug-in.
|
||||||
|
|
||||||
|
Deployment will look like this:
|
||||||
|
|
||||||
|
* new Docker container and service: opendaylight
|
||||||
|
* openvswitch service on nodes is configured to be managed by ODL
|
||||||
|
* neutron is configured to use ``networking-odl`` ML2 plugin.
|
||||||
|
* neutron openvswitch and l3 agent pods are removed from the deployment
|
||||||
|
topology.
|
||||||
|
|
||||||
|
What is needed to deploy CCP with ODL network plugin:
|
||||||
|
|
||||||
|
* Runnning K8s environment with ODL network plugin (for a tested,
|
||||||
|
recommended setup please check out the `QuickStart Guide`_).
|
||||||
|
* CCP installed on a machine with access to ``kube-apiserver`` (e.g. K8s
|
||||||
|
master node).
|
||||||
|
* CCP CLI config file with custom deployment topology.
|
||||||
|
|
||||||
|
Sample deployment
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
Sample CCP configuration
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Let's write CCP CLI configuration file now, make sure you have the following
|
||||||
|
in your configuration file (let's say it's ``ccp.yaml``):
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
builder:
|
||||||
|
push: True
|
||||||
|
registry:
|
||||||
|
address: "127.0.0.1:31500"
|
||||||
|
repositories:
|
||||||
|
skip_empty: True
|
||||||
|
nodes:
|
||||||
|
node1:
|
||||||
|
roles:
|
||||||
|
- db
|
||||||
|
- messaging
|
||||||
|
- controller
|
||||||
|
- openvswitch
|
||||||
|
- opendaylight
|
||||||
|
node[2-3]:
|
||||||
|
roles:
|
||||||
|
- db
|
||||||
|
- messaging
|
||||||
|
- compute
|
||||||
|
- openvswitch
|
||||||
|
roles:
|
||||||
|
db:
|
||||||
|
- galera
|
||||||
|
messaging:
|
||||||
|
- rabbitmq
|
||||||
|
controller:
|
||||||
|
- etcd
|
||||||
|
- glance-api
|
||||||
|
- glance-registry
|
||||||
|
- heat-api
|
||||||
|
- heat-engine
|
||||||
|
- horizon
|
||||||
|
- keystone
|
||||||
|
- memcached
|
||||||
|
- neutron-dhcp-agent
|
||||||
|
- neutron-metadata-agent
|
||||||
|
- neutron-server
|
||||||
|
- nova-api
|
||||||
|
- nova-conductor
|
||||||
|
- nova-consoleauth
|
||||||
|
- nova-novncproxy
|
||||||
|
- nova-scheduler
|
||||||
|
compute:
|
||||||
|
- nova-compute
|
||||||
|
- nova-libvirt
|
||||||
|
openvswitch:
|
||||||
|
- openvswitch-db
|
||||||
|
- openvswitch-vswitchd
|
||||||
|
opendaylight:
|
||||||
|
- opendaylight
|
||||||
|
configs:
|
||||||
|
private_interface: eth1
|
||||||
|
neutron:
|
||||||
|
plugin_agent: "opendaylight"
|
||||||
|
versions:
|
||||||
|
ovs_version: "2.5.1"
|
||||||
|
|
||||||
|
For the instructions for building images and deploying CCP refer to the
|
||||||
|
`QuickStart Guide`_.
|
||||||
|
|
||||||
|
To build only the opendaylight Docker image run:
|
||||||
|
::
|
||||||
|
|
||||||
|
ccp deploy --config-file ccp.yaml build -c opendaylight
|
||||||
|
|
||||||
|
To deploy only the opendaylight component run:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
ccp deploy --config-file ccp.yaml deploy -c opendaylight
|
||||||
|
|
||||||
|
Check configuration
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
To check that neutron has been configured to work with OpenDaylight, attach
|
||||||
|
to `neutron-server` container and run:
|
||||||
|
::
|
||||||
|
|
||||||
|
$ grep mechanism_drivers /etc/neutron/plugins/ml2/ml2_conf.ini
|
||||||
|
mechanism_drivers = opendaylight, logger
|
||||||
|
|
||||||
|
OpenDaylight creates only one bridge ``br-int``, with all traffic being managed by
|
||||||
|
OpenFlow, including routing and applying security group rules. To inspect flows,
|
||||||
|
attach to an `openvswitch-vswitchd` container and exec:
|
||||||
|
::
|
||||||
|
|
||||||
|
ovs-ofctl -O OpenFlow13 dump-flows br-int
|
||||||
|
|
||||||
|
To connect to OpenDaylight console run the following command in `opendaylight` container:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
/odl/bin/client
|
||||||
|
|
||||||
|
.. _QuickStart Guide: http://fuel-ccp.readthedocs.io/en/latest/quickstart.html
|
|
@ -0,0 +1,44 @@
|
||||||
|
nodes:
|
||||||
|
node1:
|
||||||
|
roles:
|
||||||
|
- db
|
||||||
|
- messaging
|
||||||
|
- controller
|
||||||
|
- openvswitch
|
||||||
|
- opendaylight
|
||||||
|
node[2-3]:
|
||||||
|
roles:
|
||||||
|
- db
|
||||||
|
- messaging
|
||||||
|
- compute
|
||||||
|
- openvswitch
|
||||||
|
roles:
|
||||||
|
db:
|
||||||
|
- galera
|
||||||
|
messaging:
|
||||||
|
- rabbitmq
|
||||||
|
controller:
|
||||||
|
- etcd
|
||||||
|
- glance-api
|
||||||
|
- glance-registry
|
||||||
|
- heat-api
|
||||||
|
- heat-engine
|
||||||
|
- horizon
|
||||||
|
- keystone
|
||||||
|
- memcached
|
||||||
|
- neutron-dhcp-agent
|
||||||
|
- neutron-metadata-agent
|
||||||
|
- neutron-server
|
||||||
|
- nova-api
|
||||||
|
- nova-conductor
|
||||||
|
- nova-consoleauth
|
||||||
|
- nova-novncproxy
|
||||||
|
- nova-scheduler
|
||||||
|
compute:
|
||||||
|
- nova-compute
|
||||||
|
- nova-libvirt
|
||||||
|
openvswitch:
|
||||||
|
- openvswitch-db
|
||||||
|
- openvswitch-vswitchd
|
||||||
|
opendaylight:
|
||||||
|
- opendaylight
|
Loading…
Reference in New Issue