GoogleCloudPlatform/kubernetes — pull request #3174 by a-robinson (2014-12-30 18:40:25+00:00)
Title: Modify kube-push for GCE to bring down the existing master VM and completely replace it with a new one

This makes upgrades less likely to break in weird ways and adds support for easily upgrading underlying components on the master like the guest OS or etcd.

To do this, we reserve the IP address of the master after it's created and store all dynamically created files on a persistent disk (PD). Then, kube-push consists of swapping the PD and reserved IP address over to a new VM with the desired components on it.

This has been tested to pass the /validate endpoint after upgrading between a few different recent commit versions.