Hi there, all:
I’m new to rancher, passably well versed on docker. I’ve read most of the rancher documentation, and I’m still unable to answer a nagging question that I have about HA.
I understand that you an configure a service to be global-- meaning that it runs on all hosts. And i also understand that rancher will automatically integrate with route 53 to publish host names for services that are exposed on each host.
What I do not understand, though, is how people achieve multi-host ( multi-AZ) HA with this setup.
Consider, for example, that i have 3 hosts running, and all of them are running my same stack. Each host might be reachable on the host ip via myapp.my-host.mydomain.com. My goal in doing this is to get multi-AZ reliability.
But how do i present one face to the customer, since now I have three hosts? It seems to me there are really only two options:
(1) Use an DNS server to list all three hosts. This works, but its kind of annoying because this external DNS doesnt know about the rancher lifecycle: i have to manually remove these entries as i add copies of my stack ( or shut them down ).
(2) Point all users to one host using a load balancer, which sends traffic to the other three hosts running the stack. This has the benefit that it can be rancher managed, but the drawback that it is a single point of failure.
Are there other ways I’m not considering? Were I go to option 1, can rancher manage a single route53 dns alias that collectively points to all copies of my stacks across the hosts? Or, with option 2, is there a way to mitigate the single-point-of failure problem for the entry point router/lb?
Any help would be appreciated! I feel like I must be missing something: rancher has a ton of features, but I have not seen a treatment of this particular topic.
Thanks in advance for the help!