Evolution of application deployment over the past 20 years.
Configure your local and remote lab environments.
Covers the resource types that are included with Kubernetes.
•Pod
•Job
Using helm to manage Kubernetes resources
Example microservice application.
Kubernetes manifests to deploy the demo application.
Explore how custom resources can add functionality
Install additional software to enhance the deployment.
Improving the DevX when working with Kubernetes.
How to safely upgrade your clusters and nodes.
Implement CI/CD for your applications (with GitOps!)
In this lesson we'll practice troubleshooting a broken deployment using the microservices demo application from Google. A manifest with several intentional issues is provided in the course repo.
kubectl get pods
to see which pods are failing.kubectl describe pod <name>
and view logs with kubectl logs <name>
.kubectl create namespace debug-demo
kubectl -n debug-demo apply -f microservices-demo.yaml
OOMKilled
events. Increase the memory requests/limits:resources:
requests:
memory: 64Mi
limits:
memory: 128Mi
Fix the Cart Service – its liveness and readiness probes check port 8080
but the container listens on 7070
. Update both probes to use 7070
.
Fix the Redis Cart Deployment – the image tag redis:debian
does not exist. Change it to a valid tag such as redis:alpine
.
Fix the Load Generator – the CPU request of 3000m
and limit of 5000m
exceed the node capacity. Set them back to 300m
and 500m
so the pod can be scheduled.
After each update run kubectl apply -f microservices-demo.yaml
and watch the pods come up:
kubectl get pods -n debug-demo
Once every service is healthy, visiting the LoadBalancer service shows the online shop UI and confirms that all pods are running correctly. These steps demonstrate a systematic approach to debugging Kubernetes applications by inspecting pod state, events, and resource definitions.