Lesson 2: Updating the Kubechaos App
How do you update a running application without breaking it? In this lesson, we'll explore redeployment in Kubernetes by applying changes to both the application image and specification.
Step 1: Customise the Application
Open image/app.js and find the suprises variable (line 7).
This is a JavaScript array where each element is a string with HTML content:
const surprises = [
`<h2>🎯 Click the target!</h2>
<div style="font-size:100px;cursor:pointer;" onclick="alert('You hit it! 🎉')">🎯</div>`,
`<h2>😂 Joke of the moment</h2>
<p>Why did the dolphin get a job in Kubernetes?<br>Because it already knew how to work in pods.</p>`,
// ... more entries
];
Your tasks:
- Add 2-3 of you own surprises with jokes or other HTML content
- Remove the original surprise elements
- Finally, locate the "KubeChaos @ RSECon25!" title and replace it with "<your-name> @ RSECon25!"
⚠️ JavaScript Array Syntax:
- Each element is wrapped in backticks
\(multi-line strings)- Elements are separated by commas
Building the New Image
Once you've made your changes, build a new container image with a v2 tag:
minikube image build -t local/kubechaos:v2 image
Verify your new image was created:
minikube image ls
You should see both local/kubechaos:v1 and
local/kubechaos:v2 listed.
Step 2: Update and Redeploy
Now let's update your deployment to use the new image.
Update the manifest
Open deployment/manifests.yaml and update the image tag used by the container:
spec:
containers:
- name: app
image: local/kubechaos:v2 # Changed from v1
Make sure to save the file.
Redeploy the Application:
Apply your changes to the cluster:
kubectl apply -f deployment/manifests.yaml
Check when the deployment is complete:
kubectl rollout status deployment kubechaos
💡 If we had simply modified and rebuilt the
v1image, it would have been sufficient to restart the deployment (kubectl rollout restart deploy kubechaos). Since we changed the manifest, however, a redeployment is necessary.
Test Your Changes
Return to the browser window/URL with the running application - on refresh you should now see your own jokes and custom title!
If you closed the browser window, you can get the service URL from
minikube service kubechaos-svc --urlas before.
📚 Further Reading
- Deployments in the official Kubernetes documentation
- 42 Kubernetes Projects for hands-on learning