Browse Source

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
changes/96/404196/6
Oleg Bondarev 2 years ago
parent
commit
41a45e5a9d

+ 1
- 0
doc/source/index.rst View File

@@ -30,6 +30,7 @@ Advanced topics
30 30
    ceph
31 31
    ceph_cluster
32 32
    using_calico_instead_of_ovs
33
+   using_odl_instead_of_ovs
33 34
    ironic
34 35
    known_issues
35 36
 

+ 141
- 0
doc/source/using_odl_instead_of_ovs.rst View File

@@ -0,0 +1,141 @@
1
+.. _using_odl_instead_of_ovs:
2
+
3
+==========================================
4
+Using OpenDaylight instead of Open vSwitch
5
+==========================================
6
+
7
+This guide describes how to deploy and run OpenStack environment with
8
+OpenDaylight ML2 Neutron plugin instead of the reference OpenVSwitch ML2 on top
9
+of Kubernetes cluster using fuel-ccp.
10
+
11
+Introduction
12
+~~~~~~~~~~~~
13
+
14
+OpenDaylight (ODL) is a modular Open SDN platform for networks of any size and
15
+scale. OpenStack can use OpenDaylight as its network management provider
16
+through the Modular Layer 2 (ML2) north-bound plug-in. OpenDaylight manages
17
+the network flows for the OpenStack compute nodes via the OVSDB south-bound
18
+plug-in.
19
+
20
+Deployment will look like this:
21
+
22
+* new Docker container and service: opendaylight
23
+* openvswitch service on nodes is configured to be managed by ODL
24
+* neutron is configured to use ``networking-odl`` ML2 plugin.
25
+* neutron openvswitch and l3 agent pods are removed from the deployment
26
+  topology.
27
+
28
+What is needed to deploy CCP with ODL network plugin:
29
+
30
+* Runnning K8s environment with ODL network plugin (for a tested,
31
+  recommended setup please check out the `QuickStart Guide`_).
32
+* CCP installed on a machine with access to ``kube-apiserver`` (e.g. K8s
33
+  master node).
34
+* CCP CLI config file with custom deployment topology.
35
+
36
+Sample deployment
37
+~~~~~~~~~~~~~~~~~
38
+
39
+Sample CCP configuration
40
+------------------------
41
+
42
+Let's write CCP CLI configuration file now, make sure you have the following
43
+in your configuration file (let's say it's ``ccp.yaml``):
44
+
45
+::
46
+
47
+    builder:
48
+      push: True
49
+    registry:
50
+      address: "127.0.0.1:31500"
51
+    repositories:
52
+      skip_empty: True
53
+    nodes:
54
+      node1:
55
+        roles:
56
+          - db
57
+          - messaging
58
+          - controller
59
+          - openvswitch
60
+          - opendaylight
61
+      node[2-3]:
62
+        roles:
63
+          - db
64
+          - messaging
65
+          - compute
66
+          - openvswitch
67
+    roles:
68
+      db:
69
+        - galera
70
+      messaging:
71
+        - rabbitmq
72
+      controller:
73
+        - etcd
74
+        - glance-api
75
+        - glance-registry
76
+        - heat-api
77
+        - heat-engine
78
+        - horizon
79
+        - keystone
80
+        - memcached
81
+        - neutron-dhcp-agent
82
+        - neutron-metadata-agent
83
+        - neutron-server
84
+        - nova-api
85
+        - nova-conductor
86
+        - nova-consoleauth
87
+        - nova-novncproxy
88
+        - nova-scheduler
89
+      compute:
90
+        - nova-compute
91
+        - nova-libvirt
92
+      openvswitch:
93
+        - openvswitch-db
94
+        - openvswitch-vswitchd
95
+      opendaylight:
96
+        - opendaylight
97
+    configs:
98
+        private_interface: eth1
99
+        neutron:
100
+          plugin_agent: "opendaylight"
101
+    versions:
102
+        ovs_version: "2.5.1"
103
+
104
+For the instructions for building images and deploying CCP refer to the
105
+`QuickStart Guide`_.
106
+
107
+To build only the opendaylight Docker image run:
108
+::
109
+
110
+    ccp deploy --config-file ccp.yaml build -c opendaylight
111
+
112
+To deploy only the opendaylight component run:
113
+
114
+::
115
+
116
+    ccp deploy --config-file ccp.yaml deploy -c opendaylight
117
+
118
+Check configuration
119
+-------------------
120
+
121
+To check that neutron has been configured to work with OpenDaylight, attach
122
+to `neutron-server` container and run:
123
+::
124
+
125
+    $ grep mechanism_drivers /etc/neutron/plugins/ml2/ml2_conf.ini
126
+    mechanism_drivers = opendaylight, logger
127
+
128
+OpenDaylight creates only one bridge ``br-int``, with all traffic being managed by
129
+OpenFlow, including routing and applying security group rules. To inspect flows,
130
+attach to an `openvswitch-vswitchd` container and exec:
131
+::
132
+
133
+    ovs-ofctl -O OpenFlow13 dump-flows br-int
134
+
135
+To connect to OpenDaylight console run the following command in `opendaylight` container:
136
+
137
+::
138
+
139
+    /odl/bin/client
140
+
141
+.. _QuickStart Guide: http://fuel-ccp.readthedocs.io/en/latest/quickstart.html

+ 44
- 0
etc/topology-opendaylight-example.yaml View File

@@ -0,0 +1,44 @@
1
+nodes:
2
+  node1:
3
+    roles:
4
+      - db
5
+      - messaging
6
+      - controller
7
+      - openvswitch
8
+      - opendaylight
9
+  node[2-3]:
10
+    roles:
11
+      - db
12
+      - messaging
13
+      - compute
14
+      - openvswitch
15
+roles:
16
+  db:
17
+    - galera
18
+  messaging:
19
+    - rabbitmq
20
+  controller:
21
+    - etcd
22
+    - glance-api
23
+    - glance-registry
24
+    - heat-api
25
+    - heat-engine
26
+    - horizon
27
+    - keystone
28
+    - memcached
29
+    - neutron-dhcp-agent
30
+    - neutron-metadata-agent
31
+    - neutron-server
32
+    - nova-api
33
+    - nova-conductor
34
+    - nova-consoleauth
35
+    - nova-novncproxy
36
+    - nova-scheduler
37
+  compute:
38
+    - nova-compute
39
+    - nova-libvirt
40
+  openvswitch:
41
+    - openvswitch-db
42
+    - openvswitch-vswitchd
43
+  opendaylight:
44
+    - opendaylight

Loading…
Cancel
Save