logo

How to put a Database in Kubernetes

2021-10-14

Authors:   Jeffrey Carpenter


Summary

The presentation discusses the steps to put databases and stateful workloads onto Kubernetes, using Kubernetes primitives for stateful data and the persistent volume subsystem. The speaker demystifies databases and explains how they are just an application with compute, network, and storage needs. The presentation also emphasizes the importance of finding an operator for popular databases.
  • 70% of people using Kubernetes have at least some stateful workflows
  • 90% think Kubernetes is ready for stateful workloads
  • Steps to put databases on Kubernetes: understand Kubernetes primitives, pick a storage provider, pick a database, find an operator
  • Kubernetes primitives for compute, network, and storage
  • Persistent volume subsystem for mounting volumes of various types
  • Importance of finding an operator for popular databases
The speaker shares a personal anecdote about being a junior developer and being afraid of databases, but then realizing that they are just an application with compute, network, and storage needs like any other application.

Abstract

The idea of running a stateful workload in Kubernetes can be intimidating, especially if you haven’t done it before. How do you deploy a database? Where is the actual storage? How is the storage mapped to the database or application that uses it? In this talk, we’ll demystify the deployment of databases and stateful workloads in K8s by showing that databases are just applications composed of compute, network and storage. We can deploy them like any other Kubernetes application and take advantage of resources that K8s provides including Storage Classes, Persistent Volumes, Persistent Volume Claims, and Stateful Sets. We will demonstrate how to make it all work by deploying a relational database (MySQL) and a NoSQL database (Apache Cassandra).

Materials:

Post a comment