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

Using default observability tooling

Kubernetes provides observability tooling even without adding any third-party solutions. These native Kubernetes tools form the basis of many of the more robust solutions, so they are important to discuss. Since observability includes metrics, logs, traces, and alerts, we will discuss each in turn, focusing first on the Kubernetes-native solutions. First, let's discuss metrics.

Metrics on Kubernetes

A lot of information about your applications can be gained by simply running kubectl describe pod. We can see information about our Pod's spec, what state it is in, and key issues preventing its functionality.

Let's assume we are having some trouble with our application. Specifically, the Pod is not starting. To investigate, we run kubectl describe pod. As a reminder on kubectl aliases mentioned in Chapter 1, Communicating with Kubernetes, kubectl describe pod is the same as kubectl describe pods. Here is an example output from...