highly available haproxy/keepalived percona cluster

Is there any way to deploy the following setup onto the cloud? I replicated it locally but it doesnt work on google cloud as it doesnt support virtual ip. It would be very difficult to deploy the code onto different cloud platforms without heavy modification for each platform.

Is there a better docker-compose based solution that works on different clouds?