Shared IP in CoreOS

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?

  • Cannot set up Kubernetes local cluster via Docker
  • Journalctl : add _SYSTEMD_UNIT field into log printout
  • Do I need a private docker registry?
  • How to build a sidecar container for passing files from a machine outside of the Kubernetes cluster?
  • COREOS error on Bare Metal Server (unix socket /var/run/docker.sock does not exist)
  • Automating microservices load balancing / scaling
  • Am I missing something here? Why isn’t people talking more about this problem?

  • How can I make an overlay network in docker without using docker-machine commands
  • How does docker use CPU cores from its host operating system?
  • Check data replication in zookeeper ensemble
  • Proper handling of request_uri in double nginx reverse proxy?
  • Invoke Docker Remote API using Java
  • Configuring external access to the GAE app under the google/cloud-sdk docker container
  • 2 Solutions collect form web for “Shared IP in CoreOS”

    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.

    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.

    Docker will be the best open platform for developers and sysadmins to build, ship, and run distributed applications.