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_cluster
|
||||
using_calico_instead_of_ovs
|
||||
using_odl_instead_of_ovs
|
||||
ironic
|
||||
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