Summary
In this chapter, we first explored troubleshooting in general and saw why it is an important concept. We looked at several aspects for troubleshooting applications effectively, including identifying the problem, adding tests to prevent the chances of the problem occurring again, documenting the solution to tackle it easily if it occurs again, using monitoring tools, and logging more efficiently to understand the underlying issues quickly.
Later, we moved to troubleshooting in Kubernetes. We explained some key concepts such as the Pod life cycle. We went through the many different conditions and states that a Pod can have. We also saw what each of these conditions and states mean and what issues they indicate. After that, we continued with the auto recovery topic. We introduced two health checks in Kubernetes, liveness and readiness probes, and we also practiced utilizing them through an exercise.
We then continued by creating a termination log from an application to make...