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.