Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
site-1.0.0
site-2.0.0
Dockerfile-1.0.0
Dockerfile-2.0.0
Makefile
README.rst
kube-api-service.yaml
kube-demo-api.yaml

README.rst

Recreate

Demo shows the recreate deployment strategy with Kubernetes.

Prereq

Get the images to docker hub:

make docker_deploy

Notice: You need to change DOCKER_PROJECT_ID in Makefile.

Demo

Notice: it causes downtime.

minikube start
kubectl config use-context minikube

kubectl apply -f kube-api-service.yaml

# deployment
kubectl apply -f kube-demo-api.yaml

# notice, it takes longer time due to the initialDelaySeconds
kubectl get po

# get the port our service is exposed on by minikube
export SVC_PORT=$(kubectl get service demo-api --output='jsonpath="{.spec.ports[0].nodePort}"' | tr -d '"')

# check whether it is correct:
curl $(minikube ip):${SVC_PORT}
# run curl in an endless loop to
# see the changes from the user perspective:
watch -n0.3 -x curl -s $(minikube ip):${SVC_PORT}

# observe
watch -n0.3 -x kubectl get po

# let's get from 1.0.0 to 2.0.0
kubectl set image  deployment/demo-api app=wojciech11/api-status:2.0.0


# notice: beacause of the initialDelaySeconds readiness and liveness probes
# we need to wait longer

Notice:

We would also change the version in kube-demo-api.yaml to 2.0.0 and use kube apply -f kube-demo-api.yaml.

You can’t perform that action at this time.