From 756c2c097bc5b24bcc4bff2254279100fa52ec52 Mon Sep 17 00:00:00 2001 From: johndmulhausen Date: Thu, 18 Feb 2016 03:28:48 -0800 Subject: [PATCH] Update index.md --- v1.1/docs/user-guide/update-demo/index.md | 58 +++++++++++------------ 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/v1.1/docs/user-guide/update-demo/index.md b/v1.1/docs/user-guide/update-demo/index.md index 8c6ca797d7..9153c5739d 100644 --- a/v1.1/docs/user-guide/update-demo/index.md +++ b/v1.1/docs/user-guide/update-demo/index.md @@ -19,19 +19,17 @@ limitations under the License. --> -# Rolling update example - This example demonstrates the usage of Kubernetes to perform a [rolling update](../kubectl/kubectl_rolling-update) on a running group of [pods](/{{page.version}}/docs/user-guide/pods). See [here](../managing-deployments/#updating-your-application-without-a-service-outage) to understand why you need a rolling update. Also check [rolling update design document](https://github.com/kubernetes/kubernetes/blob/release-1.1/docs/design/simple-rolling-update.md) for more information. ### Step Zero: Prerequisites This example assumes that you have forked the repository and [turned up a Kubernetes cluster](/{{page.version}}/docs/getting-started-guides/): -```shell +```shell $ cd kubernetes $ ./cluster/kube-up.sh -``` - +``` + ### Step One: Turn up the UX for the demo You can use bash job control to run this in the background (note that you must use the default port -- 8001 -- for the following demonstration to work properly). @@ -39,41 +37,41 @@ This can sometimes spew to the output so you could also run it in a different te Kubernetes repository. Otherwise you will get "404 page not found" errors as the paths will not match. You can find more information about `kubectl proxy` [here](/{{page.version}}/docs/user-guide/kubectl/kubectl_proxy). -```shell +```shell $ kubectl proxy --www=docs/user-guide/update-demo/local/ & I0218 15:18:31.623279 67480 proxy.go:36] Starting to serve on localhost:8001 -``` - +``` + Now visit the the [demo website](http://localhost:8001/static). You won't see anything much quite yet. ### Step Two: Run the replication controller Now we will turn up two replicas of an [image](../images). They all serve on internal port 80. -```shell +```shell $ kubectl create -f docs/user-guide/update-demo/nautilus-rc.yaml -``` - +``` + After pulling the image from the Docker Hub to your worker nodes (which may take a minute or so) you'll see a couple of squares in the UI detailing the pods that are running along with the image that they are serving up. A cute little nautilus. ### Step Three: Try scaling the replication controller Now we will increase the number of replicas from two to four: -```shell +```shell $ kubectl scale rc update-demo-nautilus --replicas=4 -``` - +``` + If you go back to the [demo website](http://localhost:8001/static/index) you should eventually see four boxes, one for each pod. ### Step Four: Update the docker image We will now update the docker image to serve a different image by doing a rolling update to a new Docker image. -```shell +```shell $ kubectl rolling-update update-demo-nautilus --update-period=10s -f docs/user-guide/update-demo/kitten-rc.yaml -``` - +``` + The rolling-update command in kubectl will do 2 things: 1. Create a new [replication controller](/{{page.version}}/docs/user-guide/replication-controller) with a pod template that uses the new image (`gcr.io/google_containers/update-demo:kitten`) @@ -85,39 +83,39 @@ But if the replica count had been specified, the final replica count of the new ### Step Five: Bring down the pods -```shell +```shell $ kubectl delete rc update-demo-kitten -``` - +``` + This first stops the replication controller by turning the target number of replicas to 0 and then deletes the controller. ### Step Six: Cleanup To turn down a Kubernetes cluster: -```shell +```shell $ ./cluster/kube-down.sh -``` - +``` + Kill the proxy running in the background: After you are done running this demo make sure to kill it: -```shell +```shell $ jobs [1]+ Running ./kubectl proxy --www=local/ & $ kill %1 [1]+ Terminated: 15 ./kubectl proxy --www=local/ -``` - +``` + ### Updating the Docker images If you want to build your own docker images, you can set `$DOCKER_HUB_USER` to your Docker user id and run the included shell script. It can take a few minutes to download/upload stuff. -```shell +```shell $ export DOCKER_HUB_USER=my-docker-id $ ./docs/user-guide/update-demo/build-images.sh -``` - +``` + To use your custom docker image in the above examples, you will need to change the image name in `docs/user-guide/update-demo/nautilus-rc.yaml` and `docs/user-guide/update-demo/kitten-rc.yaml`. ### Image Copyright @@ -125,4 +123,4 @@ To use your custom docker image in the above examples, you will need to change t Note that the images included here are public domain. * [kitten](http://commons.wikimedia.org/wiki/File:Kitten-stare.jpg) -* [nautilus](http://commons.wikimedia.org/wiki/File:Nautilus_pompilius.jpg) \ No newline at end of file +* [nautilus](http://commons.wikimedia.org/wiki/File:Nautilus_pompilius.jpg)