shettyg / ovn-docker Goto Github PK
View Code? Open in Web Editor NEWProvide network virtualization to Docker via OVN.
License: Apache License 2.0
Provide network virtualization to Docker via OVN.
License: Apache License 2.0
OVN plugin for OpenStack already does it, so the same libraries can be used.
I'm using etcd, docker v17.03.0-ce, openvSwitch v2.5.2, and ubuntu-4.2.0-42-generic.
I followed the instructions on
https://github.com/shettyg/ovn-docker/blob/master/docs/docker.rst
I installed and started openvSwitch as per instructions given here
http://openvswitch.org/support/dist-docs-2.5/INSTALL.md.html
I have 2 node, one has $CENTRAL_IP and the other has $HOST_IP
I started etcd and typed etcdctl cluster-health to confirm that the cluster is healthy.
Then I started docker daemon on host_machine by
docker daemon --cluster-store=consul://127.0.0.1:2379 \ --cluster-advertise=$HOST_IP:0
(2379 is the port when I started etcd)
On the central node (with IP $CENTRAL_IP), I executed the following two commands:
ovs-appctl -t ovsdb-server ovsdb-server/add-remote ptcp:6640
/usr/local/share/openvswitch/scripts/ovn-ctl start_northd
On the other machine where I use docker, I exectued
ovs-vsctl set Open_vSwitch . external_ids:ovn-remote="tcp:$CENTRAL_IP:6640"
external_ids:ovn-encap-ip=$LOCAL_IP external_ids:ovn-encap-type="geneve"
Fiinally, I started the ovn-controller by executing the command
/usr/local/share/openvswitch/scripts/ovn-ctl start_controller
(Also, I inserted vport-geneve.ko module from ovs kernel and type lsmod to confirm geneve is supported)
Then I installed Flask module using pip and start the Open vSwitch driver
ovn-docker-overlay-driver --detach
So far, everything works fine.
When I type
docker network create -d openvswitch --subnet=172.19.1.0/24 ovs-br1
It shows
Error response from daemon: legacy plugin: plugin not found
Seems ovn-docker-overlay-driver is not correctly started?
I've working on it for several days and it does depress me...sad...
thank you for your time
Hello, I'm a student from South Korea.
I want to build ovn-docker environments. So I followed your documents. But in ovn-docker/backend.md, I faced some error messages about module. When I typed 'insmod ./datapath/linux/openvswitch.ko', insmod error occured.
Following is a error messages.
root@ubuntu:~/ovs/datapath/linux# insmod openvswitch.ko
insmod: ERROR: could not insert module openvswitch.ko: Unknown symbol in module
Could you tell me how to solve this problem?
Additionally, I want to get some guide for building ovn-docker environment in my host. I already read official guide in ovs repository. However, I couldn't understand exactly. Finally, I try it again using your vagrant files.
Taking a look at the overlay.md documentation, and for this step -
ovn-controller --pidfile --detach -vconsole:off --log-file
I don't find an ovn-controller file in the source - been missed when checking in the repo?
When 'ovn-integrate nics-to-bridge eth0' is called inside the VM, the newly created 'breth0' can have a different mac than that of 'eth0' for macs created by libvirt. So we need to set:
ovs-vsctl set bridge breth0 other_config:hwaddr="fa:16:3e:0c:31:31"
This way, remote apis and local calls can work without exporting as an env variable.
I am using docker (version 1.10.3) with OVS (version 2.5.90) on RHEL 7.2.
I followed all the instructions on
https://github.com/shettyg/ovn-docker/blob/master/docs/INSTALL.Docker.md
I have 3 nodes (one with IP $CENTRAL_IP and 2 others where I will spawn containers with IP $LOCAL_IP). I started docker daemon on all 3 nodes with consul as the distributed key-value store.
I first compiled openvswitch as per instructions given here (I am on RHEL 7.2)
https://github.com/openvswitch/ovs/blob/master/INSTALL.Fedora.md
I started ovs on all nodes (3 in total) :
/usr/share/openvswitch/scripts/ovs-ctl start
On the central node (with IP $CENTRAL_IP), I executed the following two commands:
ovs-appctl -t ovsdb-server ovsdb-server/add-remote ptcp:6640
/usr/share/openvswitch/scripts/ovn-ctl start_northd
On the compute nodes (where i spawn containers) with IP $LOCAL_IP, I executed the following commands:
ovs-vsctl set Open_vSwitch . external_ids:ovn-remote="tcp:$CENTRAL_IP:6641"
external_ids:ovn-encap-ip=$LOCAL_IP external_ids:ovn-encap-type="geneve"
(note that i had to use the port 6641 and not 6640 as in your instructions: with 6640, I was getting an error while executing the docker network create command)_
After that, I started the controller and the overlay driver on the compute nodes:
/usr/share/openvswitch/scripts/ovn-ctl start_controller
ovn-docker-overlay-driver --detach
All commands worked fine. I use OVS kernel module. I could see openvswitch kernel module loaded (when i do lsmod) and all other daemons were getting started properly.
After that I could create a logical network GREEN as follows:
docker network create -d openvswitch --subnet=192.168.1.0/24 GREEN
I had two containers (container1 on compute node1, and container2 on compute node2), and i tried to connect them to this new logical network GREEN
docker network connect GREEN container1 (on compute node1)
docker network connect GREEN container2 (on compute node2)
Everything works fine till this point. However, when I try to ping container2 from container1, I get a "Destination Host Unreachable". It looks like the southbound database is not getting populated properly (output of *ovn-sbctl show * command is empty), while northbound database shows all the logical switches and ports properly.
If i create another network (lets call it RED) using overlay as the driver, and connect the same containers (after disconnecting them from network GREEN) to RED, everything works fine.
Am i missing something (I've spent about a week trying to debug this, without much luck).
Hello, my intention is to create an overlay network with ovn docker integration. I followed the instructions on two real machine (NO VM) but when i run
docker network create -d openvswitch --subnet=192.168.1.0/24 foo
on the host i have the fatal error like this:
Error response from daemon: remote: create_network: lswitch-add Fatal error executing ['ovn-nbctl', '--timeout=5', '-vconsole:off', '--db=tcp:192.168.178.20:6640', 'lswitch-add', u'fca6199e4d317eea5d0b82d5a1375b459bfb5be7de3c48d9d7211f5b1f2e2273', '--', 'set', 'Logical_Switch', u'fca6199e4d317eea5d0b82d5a1375b459bfb5be7de3c48d9d7211f5b1f2e2273', u'external_ids:subnet=192.168.1.0/24', u'external_ids:gateway_ip=192.168.1.1']
and network creation failed. Could you help me?
Currently the utility expects users to provide their openstack tenant passwords in every VM. This is useful for testing but not very convenient in real environments.
So the solution is to provide commands that will let users do part of the workflow remotely and only pass safe information to every VM.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.