Book Image

Hands-On Kubernetes on Azure - Second Edition

By : Nills Franssens, Shivakumar Gopalakrishnan, Gunther Lenz
Book Image

Hands-On Kubernetes on Azure - Second Edition

By: Nills Franssens, Shivakumar Gopalakrishnan, Gunther Lenz

Overview of this book

From managing versioning efficiently to improving security and portability, technologies such as Kubernetes and Docker have greatly helped cloud deployments and application development. Starting with an introduction to Docker, Kubernetes, and Azure Kubernetes Service (AKS), this book will guide you through deploying an AKS cluster in different ways. You’ll then explore the Azure portal by deploying a sample guestbook application on AKS and installing complex Kubernetes apps using Helm. With the help of real-world examples, you'll also get to grips with scaling your application and cluster. As you advance, you'll understand how to overcome common challenges in AKS and secure your application with HTTPS and Azure AD (Active Directory). Finally, you’ll explore serverless functions such as HTTP triggered Azure functions and queue triggered functions. By the end of this Kubernetes book, you’ll be well-versed with the fundamentals of Azure Kubernetes Service and be able to deploy containerized workloads on Microsoft Azure with minimal management overhead.
Table of Contents (16 chapters)
1
Section 1: The Basics
4
Section 2: Deploying on AKS
10
Section 3: Leveraging advanced Azure PaaS services
15
Index

Fixing storage mount issues

Earlier in this chapter, you noticed how the guestbook application lost data when the Redis master was moved to another node. This happened because that sample application didn't use any persistent storage. In this section, we'll cover an example of how PVCs can be used to prevent data loss when Kubernetes moves a Pod to another node. We will show you a common error that occurs when Kubernetes moves Pods with PVCs attached, and we will show you how to fix this.

For this, we will reuse the WordPress example from the previous chapter. Before we start, let's make sure that the cluster is in a clean state:

kubectl get all

This shows us just the one Kubernetes service, as shown in Figure 5.14:

Executing the kubectl get all command generates an output showing only one Kubernetes service running for now.
Figure 5.14: You should only have the Kubernetes service running for now

Let's also ensure that both nodes are running and Ready:

kubectl get nodes

This should show us both nodes in a Ready state, as shown...