As a SQL Server professional, I find it extremely exciting when new features come out. For example, when Microsoft launched SQL Server 2017, you could install it on Linux. SQL Server 2019 supports availability groups on containers in a Kubernetes cluster. Also in SQL Server 2019, there is the new Big Data Clusters feature, and guess what it uses for container orchestration? You guessed it, Kubernetes.
The average SQL Server DBA might not have much experience with setting up HA/DR solution utilizing Availability Groups, let alone installing it on Linux or figuring out the ins and outs of containers and Kubernetes. But for those who like to push themselves by learning new things and securing their future, this blog post is a review of a book by my friend Nigel Poulton (b | t), titled, “The Kubernetes Book.”
The Kubernetes Book by Nigel Poulton
The 173 page book is spread over 10 chapters. I will list the chapters below with a brief description of what’s in each:
- Kubernetes Primer: This chapter starts off by going over the Kubernetes background, where it came from, the origin of the name and Kubernetes vs Docker Swarm and more. Very useful information for someone who doesn’t know a thing about Kubernetes.
- Kubernetes principles of operations: This chapter goes over the role of the master and nodes. For example, the Master is also referred to as the “Head” or “Head node” because it’s in charge of the cluster. It’s in charge of scheduling, monitoring, change implementation and more. Thus, another word for the Master is “control plane.” This chapter is by far my favorite because it goes over the foundation of understanding Kubernetes, the different types of services that run in the Master vs Nodes, and more. (I had to read it a few times)
- Installing Kubernetes: This chapter is pretty straight-forward. Nigel includes installation how-to for Docker Desktop, Minikube, Google Kubernetes Engine (GKE), Kubeadm, and KOPS on AWS.
- Working with Pods: Pod theory then hands on. The atomic unit Kubernetes is a pod. This chapter goes over the different between pods and containers, the anatomy of a pod, the pod lifecycle and more.
- Kubernetes Deployments: This chapter goes over deployment theory, how to create a deployment, perform a rolling update and perform a rollback. Another very interesting mention in this chapter is the concept of self-healing and scalability. This notion that there is a “desired state” and a “current state” and the declarative model. Another favorite chapter as it goes deeper into the whole benefit of Kubernetes.
- Kubernetes Services: This chapter goes into the many services that Kubernetes has to offer. For example, there are a handful of useful networking services like ClusterIP, NodePort, and LoadBalancer. These services can be configured to help accessing services from inside or outside the cluster. This is very hands on chapter with lots of demos.
- Kubernetes Storage: This is an important chapter as Nigel talks about the powerful storage subsystem that Kubernetes has, the difference between Presistent Volumes (PV) and Persistent Volume Claims (PVC), and more.
- Other important Kubernetes stuff: This chapter goes into what are DaemonSets, StatefulSets, Job, Cronjobs, Autoscaling.
- Threat Modeling Kubernetes: Security is always a concern. This chapter goes over the STRIDE model, securing communicatons with the API server, securing pod communication, protecting cluster data and more.
- Real World Kubernetes Security: This chapter goes into real-world security considerations, like image-related best practices.
- What next: Practice makes perfect. Nigel has a ton of other resources to go and learn. Books, videos, URLs, all listed in this chapter!
I highly recommend this book if you are looking to go down the path of learning Kubernetes. Nigel does a great job breaking everything down to a level that even someone like myself who doesn’t have any experience with this technology can digest. A big caveat, though, is you *must* use this book as an additional resource to go along with other books and videos (Nigel has a bunch, see below). If you want to learn something like Kubernetes, you must take it upon yourself to learn from a wide range of books and videos.
About the Author
Nigel Poulton (b | t) is a popular figure in the tech industry, best-known for his videos and books on container technologies. He is currently a Docker Captain and spends most of his time working with Docker and Kubernetes. Prior to working with container technologies, Nigel has done everything from changing backup tapes and resetting passwords all the way up to designing and managing large-scale solutions in some of the most demanding corporate environments in the world. Nigel is also passionate about his family, football (soccer), and cars.