You can also use a Virtual IP solution to implement something similar to your option 2, but with automatic failover.
We use this in our deployments without Rancher, and I have been testing a rancher compatible version developed mainly by a fellow forum member. Basically one or more hosts share one or more external IPs, and if the host goes down, another one is elected as the “answering”/“active” host.
If you are on Amazon it may be easiest to just use an ELB, but in our case its a colo so we like this approach better…
Here is the discussion with links to the github repo, etc… Rancher + Keepalived