On 10/01/2014 07:08 PM, Angus Lees wrote:
On Wed, 1 Oct 2014 09:05:23 PM Fox, Kevin M wrote:
Has anyone figured out a way of having a floating ip like feature with
docker so that you can have rabbitmq, mysql, or ceph mon's at fixed ip's
and be able to migrate them around from physical host to physical host and
still have them at fixed locations that you can easily put in static config
This is part of the additional functionality kubernetes adds on top of docker.

kubernetes uses a "proxy" on every host which knows about all the published
"services".  The services share a port space (ie: every service has to have a
unique port assigned), and the proxies know where to forward requests to find
one of the backends for that service.

docker communicates parameters via environment variables and has a few
standard environment variables that are used for "links" to other containers.
Kubernetes also uses these link env variables but points them at the proxies
instead of directly to the other containers.  Since oslo.config can't look up
environment variables directly (that's something I'd like to add), I have a
simple shell one-liner that expands environment variables in the relevant
config files before starting the openstack server.

As a concrete example: I configure a keystone service in my kubernetes config
and in my static config files I use values like:

    identity_uri = http://$ENV[KEYSTONE_PORT_5000_TCP_ADDR]:

docker/kubernetes sets those env variables to refer to the proxy on the local
host and the port number from my service config - this information is static
for the lifetime of that docker instance.  The proxy will reroute the requests
dynamically to wherever the actual instances are running right now.

I hope that's enough detail - I encourage you to read the kubernetes docs
since they have diagrams, etc that will make it much clearer than the above.
Really nice explanation.



  - Gus

Maybe iptables rules? Maybe adding another bridge? Maybe just disabling the
docker network stack all together and binding the service to a fixed,
static address on the host?

Also, I ran across:
http://jperrin.github.io/centos/2014/09/25/centos-docker-and-systemd/ and
it does seem to work. I was able to get openssh-server and keystone to work
in the same container without needing to write custom start/stop scripts.
This kind of setup would make a nova compute container much, much easier.

From: Steven Dake [sd...@redhat.com]
Sent: Wednesday, October 01, 2014 8:04 AM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [kolla] Kolla Blueprints

On 09/30/2014 09:55 AM, Chmouel Boudjnah wrote:

On Tue, Sep 30, 2014 at 6:41 PM, Steven Dake
<sd...@redhat.com<mailto:sd...@redhat.com>> wrote:

I've done a first round of prioritization.  I think key things we need
people to step up for are nova and rabbitmq containers.

For the developers, please take a moment to pick a specific blueprint to
work on.  If your already working on something, this hsould help to prevent
duplicate work :)

As I understand in the current implementations[1]  the containers are
configured with a mix of shell scripts using crudini and other shell
command. Is it the way to configure the containers? and is a deployment
tool like Ansible (or others) is something that is planned to be used in
the future?



I am not really sure what the best solution to configure the containers.  It
is clear to me the current shell scripts are fragile in nature and do not
handle container restart properly.  The idea of using Puppet or Ansible as
a CM tool has been discussed with no resolution.  At the moment, I'm
satisified with a somewhat hacky solution if we can get the containers


[1] from https://github.com/jlabocki/superhappyfunshow/

OpenStack-dev mailing list

OpenStack-dev mailing list

Reply via email to