Today,
orchestrating containerized applications through Kubernetes has become the first choice for most people. Kubernetes can help users easily achieve enterprise-level deployment. However, before installing
Kubernetes, you need to know one more thing: the Kubernetes distribution. In most cases, users will not install Kubernetes directly from the source code, but choose among the many Kubernetes distributions provided by software companies and cloud vendors.
So, what is a Kubernetes distribution? What are the current outstanding Kubernetes distributions?
What is Kubernetes?
Before discussing the Kubernetes distribution, let's review what Kubernetes is.
Kubernetes is an open source platform for
container orchestration. It automates many tasks required for container deployment applications, including starting and stopping individual containers, and determining which servers in the cluster should host which containers.
Kubernetes is one of the container orchestration platforms in the container ecosystem. The other two container orchestration tools are Docker Swarm and Mesos Marathon, which we will not elaborate on in this article. When we mention the container orchestration platform, the first thing we think of is Kubernetes—because Kubernetes enjoys the highest market attention and perhaps the largest market share.
What is a Kubernetes distribution?
As an open source project, users can get the source code of Kubernetes for free on GitHub. Anyone can use this source code to download, orchestrate and install Kubernetes on the infrastructure of their choice. However, most people who want to install Kubernetes will not choose to download and arrange the source code, mainly for the following three reasons:
Time-consuming and laborious: The amount of Kubernetes source code is very large, and it takes a lot of time and effort to build them from scratch. In addition, whenever you want to update the installation, you must rebuild everything.
Multiple components: Kubernetes is not a single application, but a set of different applications and tools. If you install it from source code, then you must install these components separately on all servers that build the Kubernetes cluster.
Complex configuration: Since Kubernetes does not have an installation wizard or automatic configuration script, you must also manually configure all components of Kubernetes.
Most people choose a Kubernetes distribution to meet their container orchestration needs. The Kubernetes distribution is a software package that provides a pre-built version of Kubernetes. Most Kubernetes distributions also provide installation tools to make the installation process easier. Some Kubernetes distributions also integrate other software that can handle tasks such as cluster monitoring and security.
In this sense, you can think of the Kubernetes distribution as a kind of Linux distribution. When most people want to install Linux on a PC or server, the distribution they use is a pre-built Linux kernel that is integrated with various other software packages. Few people will choose to download Linux source code from scratch.
What are the main Kubernetes distributions?
Technically, any package or platform that contains a pre-built version of Kubernetes can be counted as a Kubernetes distribution. Just like anyone can build their own Linux distribution, anyone can build a Kubernetes distribution.
image
However, if you want to use the Kubernetes distribution to accomplish important work, you can choose among the following major distributions:
Rancher: The Rancher
container management platform is built on Kubernetes, and multi-cluster Kubernetes deployment is the focus of Rancher's Kubernetes distribution. If you want to deploy Kubernetes across multiple clouds, or do not want to use namespaces to isolate Kubernetes workloads for some reason, Rancher will be your first choice. Rancher can be deployed on local data centers and clouds, and can even work on cross-infrastructure architectures that include both. The similarity between Rancher and OpenShift is that it integrates a variety of tools on Kubernetes, but Rancher is more flexible. Based on Rancher, you can choose components freely.
OpenShift: OpenShift is a containerized platform that includes Kubernetes and various other tools needed to run, deploy, and manage containers. This is a relatively inflexible Kubernetes distribution. When you are using tools and platforms to build a complete containerized stack, it will not give you too many choices. On the other hand, OpenShift provides almost all the tools you may need out of the box, you will get as close to complete Kubernetes as possible. OpenShift was developed by Red Hat and can run in both the local data center and the cloud.
Canonical Kubernetes: Canonical, which developed Ubuntu Linux, provides a powerful and well-supported Kubernetes distribution. In addition to requiring you to use Ubuntu, Canonical's Kubernetes distribution is relatively "pure". If you want to install components, you can integrate it with any components you need. It can be run in a local data center or in the cloud.
Google Kubernetes Engine: When other cloud vendors focused on their orchestration tools, Google Cloud was already betting on Kubernetes. This is not uncommon. From the beginning of the Kubernetes project, Google has been the main supporter of Kubernetes. Today, Google Kubernetes Engine is a flexible and simple Kubernetes distribution. Because it runs in Google Cloud, you don’t need to worry about installation issues.
Azure Kubernetes Service: Azure used to bet on
Docker Swarm, but Azure Kubernetes Service (AKS) is now the main orchestration solution for Azure Cloud. This is a Kubernetes distribution that only runs on the cloud.
AWS Elastic Kubernetes Service: Although Elastic Container Service (ECS) on the AWS cloud has its own orchestrator, AWS also provides Elastic Kubernetes Service (EKS), which is an alternative built around Kubernetes. Like AKS, EKS only runs on the cloud.
Conclusion
Kubernetes is a complex container orchestration platform, and not everyone can digest it. Fortunately, the Kubernetes distribution can easily realize the advantages of Kubernetes without having to build Kubernetes from scratch. For most use cases, the Kubernetes distribution mentioned above is the most practical solution for installing and running Kubernetes.