Question

I am looking into using CoreOS at work and for a couple of projects where I want no single point of failure. CoreOS and Docker looks promising, and I can have hipache running talking to an ambassador container talking to the service. Basically, it can work.

But what about the shared public IP? How is that problem supposed to be solved? I can't find any good documentation on this. http://www.keepalived.org/ looks like something that would solve this problem. But is it the right tool in this situation?

Am I missing something here? Why isn't people talking more about this problem?

Was it helpful?

Solution

There are a few different methods of taking care of this. If you're using a cloud provider (EC2 / OpenStack / Google Compute Engine) there is the concept of a floating IP which can be moved via an API call. This gets rid of having to use things like VRRP directly.

In the long run this is best handled by utilizing DNS entries with a short TTL. Using that method also allows you the greater flexibility of having location aware applications (where DNS in different regions can route to the closest location), easy transition to IPv6, and failover across physical locations without needing to maintain your own internal routing infrastructure.

OTHER TIPS

If you are using keepalived just add a startup service with the floating ip in your cloud-init so config in every node of the coreos cluster

  - name: local-paas-ip.service
    command: start
    content: |
    [Unit]
    Description=Receive traffic from keepalived floating ip

    [Service]
    ExecStart=/usr/bin/sudo /usr/bin/ip addr add XXX.XXX.XXX.XXX dev lo:1

I have have the same question/doubts about if this is the right option but I need something working now.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top