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?
Am I missing something here? Why isn’t people talking more about this problem?
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.