Book Image

Cloud Native with Kubernetes

By : Alexander Raul
Book Image

Cloud Native with Kubernetes

By: Alexander Raul

Overview of this book

Kubernetes is a modern cloud native container orchestration tool and one of the most popular open source projects worldwide. In addition to the technology being powerful and highly flexible, Kubernetes engineers are in high demand across the industry. This book is a comprehensive guide to deploying, securing, and operating modern cloud native applications on Kubernetes. From the fundamentals to Kubernetes best practices, the book covers essential aspects of configuring applications. You’ll even explore real-world techniques for running clusters in production, tips for setting up observability for cluster resources, and valuable troubleshooting techniques. Finally, you’ll learn how to extend and customize Kubernetes, as well as gaining tips for deploying service meshes, serverless tooling, and more on your cluster. By the end of this Kubernetes book, you’ll be equipped with the tools you need to confidently run and extend modern applications on Kubernetes.
Table of Contents (22 chapters)
1
Section 1: Setting Up Kubernetes
5
Section 2: Configuring and Deploying Applications on Kubernetes
11
Section 3: Running Kubernetes in Production
16
Section 4: Extending Kubernetes

Troubleshooting applications on Kubernetes

A perfectly running Kubernetes cluster may still have application issues to debug. These could be due to bugs in the application itself, or due to misconfigurations in the Kubernetes resources that make up the application. As with troubleshooting the cluster, we will dive into these concepts by using a case study.

Case study 1 – Service not responding

We're going to break this section down into troubleshooting at various levels of the Kubernetes stack, starting with higher-level components, then ending with a deep dive into Pod and container debugging.

Let's assume that we have configured our application app-1 to respond to requests via a NodePort Service, on port 32688. The application listens on port 80.

We can try to access our application via a curl request on one of our Nodes. The command will look as follows:

curl http://10.213.2.1:32688

The output of the curl command if it fails will look like...