This example repo shows how you can do automated canary releases and gradual application migration between virtual machines and Kubernetes.
The example application can be run locally using Docker and Shipyard. It runs a simulated environment that consists of a Kubernetes cluster, serveral Virtual Machines and a federated Consul cluster that spans two datacenters.
Shipyard is a single binary application that allows the automation of complex environments using Docker. It is kind of like if Docker Compose and Terraform had a child.
(https://shipyard.run/docs/install)[https://shipyard.run/docs/install]
Once Shipyard is installed you can run the example using the following command:
shipyard run ./shipyard
It might take a little while to run first time as Shipyard needs to download a few Docker containers.
User: admin Pass: admin
Consul uses a self signed certificate, you will need to allow this to view the UI
(https://localhost:8501/ui/kubernetes/services)[https://localhost:8501/ui/kubernetes/services]
To access the Kubernetes CLI you can use shipyard to set the correct environment valiables
eval $(shipyard env)
You can then use kubectl
as normal
kubectl get pods
Consul is installed to the monitoring
namespace and Grafana and Prometheus in the monitoring
namespace