In 2017, Microsoft introduced “SQL Server on Linux.” In 2019, you can configure Availability Groups to run on Kubernetes cluster. Another very interesting feature in SQL Serve 2019 is called Big Data Clusters (read the MS white paper here). The more I read about these new features the more I realize how *important* Kubernetes is becoming.
Now, I am not an expert (far from it) when it comes to containers and Kubernetes. I’m just a regular SQL DBA (maybe like yourself :) who is fascinated when new technologies come out. Especially when that new technology can help streamline my work.
The goal is to always work smart, not hard!
In my previous blog post titled, “What Are Docker Containers“, I broke down the concepts of containers. This time I will attempt to break down the concepts behind Kubernetes. I will try to keep it as simple as possible. I also reviewed Nigel Poulton’s “The Kubernetes Book” in case you want to check it out.
The name Kubernetes is from Greek word for helmsman or pilot. In some cases you might see Kubernetes abbreviated to just “K8s” by replacing the 8 letters “ubernete” with “8”.
What is Kubernetes
Per the Kubernetes website, this is what Kubernetes is:
Kubernetes is a portable, extensible open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. It has a large, rapidly growing ecosystem. Kubernetes services, support, and tools are widely available.
When I first read a little about Kubernetes I asked myself, “but I’m not a developer, why would I need to care about this?” This is a legitimate question coming from the “DBA point-of-view.”
The answer is simple. Microsoft is taking huge steps in growing SQL Server into an all encompassing big data “data hub” so to speak. In SQL Server 2017, Microsoft introduced SQL on Linux. At the time, I wondered, “why would anyone want to install SQL on Linux?” It all became more clear in SQL Server 2019. Not only can you create a Big Data Cluster (more on this in a future blog post), but you can also create an Availability Group on a K8s cluster.
The future of SQL Server is “OS agnostic”, as it won’t matter what the underlying operating system is anymore. It won’t matter whether you’re running Windows or Linux. What will matter is that everything will be containerized and in order to “orchestrate” those containers, you will need K8s.
Consider K8s like the “brains” behind everything. K8s controls network flow, storage, nodes, scaling, etc.
Picture this: You have a K8s cluster with a bunch of nodes. One of those nodes goes down for some reason (hardware failure, etc.), K8s will automatically create a new replacement node within a few seconds. This is just a small fraction of the possibilities.
This is all a learning process for me. As I learn more, I will blog about it. In a future blog post I will go into the specific architecture of K8s. I hope you are as excited as I am with the road map that Microsoft has laid down for the future of SQL Server. The future is looking bright.